图书目录

目    录

第1篇  新 手 入 门

第1章  初识PHP 2

 视频讲解:7分钟

1.1  PHP概述 3

1.1.1  PHP是什么 3

1.1.2  PHP 5的新特性 3

1.1.3  PHP的语言优势 3

1.1.4  PHP语言的发展 4

1.2  PHP与其他语言的比较 5

1.3  PHP语言相关术语 5

1.4  资深程序员谈如何学习PHP 7

1.5  常用代码编辑工具 8

1.6  学习资源 9

1.6.1  PHP参考手册 10

1.6.2  PHP学习讨论 10

1.7  成功案例 10

1.8  本章小结 11

第2章  PHP环境搭建 12

 视频讲解:75分钟

2.1  搭建PHP开发环境的准备工作 13

2.1.1  在Windows下搭建PHP开发环境的

准备工作 13

2.1.2  在Linux下搭建PHP开发环境的准备工作 13

2.2  Apache服务器的安装和配置 13

2.2.1  在Windows下安装Apache服务器 13

2.2.2  在Linux下安装Apache服务器 16

2.3  PHP的安装和配置 17

2.3.1  在Windows下安装PHP 17

2.3.2  在Linux下安装PHP 17

2.4  MySQL服务器的安装和配置 18

2.4.1  在Windows下安装MySQL服务器 18

2.4.2  在Linux下安装MySQL服务器 21

2.5  初学者--应用组合包快速搭建

PHP环境 22

2.6  第一个PHP程序 24

2.6.1  使用Macromedia Dreamweaver 8编写

源程序 24

2.6.2  发布和运行PHP程序 25

2.7  环境安装常见问题 25

2.7.1  Apache安装常见问题 25

2.7.2  PHP安装常见问题 26

2.7.3  MySQL安装常见问题 27

2.8  实战 27

2.8.1  输出系统的当前时间 27

2.8.2  输出"明日科技欢迎你" 29

2.8.3  输出一张漂亮的图片 29

2.8.4  更改Apache服务器的端口号为82 30

2.8.5  Apache服务器的端口号修改后运行

第一个PHP程序 30

2.9  本章小结 31

2.10  学习成果检验 31

第3章  PHP语言基础 32

 视频讲解:125分钟

3.1  学习语言基础的重要性 33

3.2  PHP语法基础 33

3.2.1  PHP标识符 33

3.2.2  PHP的注释 34

3.3  PHP的数据类型 34

3.3.1  整型 35

3.3.2  布尔型 35

3.3.3  浮点型 36

3.3.4  字符串型 36

3.3.5  null型 38

3.3.6  数据类型的转换 39

3.4  PHP常量 40

3.4.1  声明和使用常量 40

3.4.2  预定义常量 41

3.5  PHP变量 42

3.5.1  变量声明及使用 42

3.5.2  变量作用域 44

3.5.3  可变变量 45

3.5.4  预定义变量 46

3.5.5  变量的生存周期 47

3.6  PHP运算符 47

3.6.1  字符串运算符 47

3.6.2  算术运算符 47

3.6.3  赋值运算符 48

3.6.4  递增或递减运算符 49

3.6.5  位运算符 50

3.6.6  逻辑运算符 50

3.6.7  比较运算符 51

3.6.8  条件运算符 52

3.6.9  运算符的使用规则 53

3.7  PHP的表达式 53

3.8  实战 54

3.8.1  判断指定的年份是否为闰年 54

3.8.2  检测变量是否为整型 55

3.8.3  输出姚明的个人信息 55

3.8.4  计算长方形的面积 56

3.8.5  比较某一天的产品销量 56

3.9  本章小结 57

3.10  学习成果检验 57

第4章  流程控制语句 58

 视频讲解:80分钟

4.1  学前导读 59

4.1.1  什么是算法 59

4.1.2  算法的描述方法 59

4.1.3  程序的3种控制结构 60

4.2  条件控制语句 61

4.2.1  if条件语句 62

4.2.2  switch...case分支控制语句 64

4.3  循环控制语句 65

4.3.1  while循环语句 65

4.3.2  do...while循环语句 66

4.3.3  for循环语句 67

4.3.4  foreach循环语句 68

4.4  跳转控制语句 69

4.4.1  应用break语句跳出循环 69

4.4.2  应用continue语句跳出循环 70

4.5  实战 71

4.5.1  过滤留言信息中的敏感词 71

4.5.2  图书信息显示 73

4.5.3  应用switch语句设计网站主页 74

4.5.4  应用continue语句计算100以内奇数的和 76

4.5.5  应用for语句制作一个乘法口诀表 76

4.6  本章小结 77

4.7  学习成果检验 77

第5章  函数 78

 视频讲解:75分钟

5.1  自定义函数 79

5.1.1  函数的命名规则 79

5.1.2  自定义函数格式 79

5.1.3  调用自定义函数 80

5.1.4  函数的参数 80

5.1.5  函数返回值 81

5.1.6  嵌套调用 82

5.1.7  递归调用 82

5.2  内建函数 83

5.3  输出语句 83

5.3.1  应用print语句输出字符 83

5.3.2  应用echo语句输出字符 84

5.3.3  应用printf语句格式化输出字符 85

5.3.4  应用sprintf语句格式化输出字符 86

5.4  引用文件 87

5.4.1  应用include语句引用文件 87

5.4.2  应用require语句引用文件 88

5.4.3  应用include_once语句引用文件 88

5.4.4  应用require_once语句引用文件 89

5.4.5  include语句和require语句的使用区别 90

5.4.6  include_once语句和require_once语句的

使用区别 90

5.5  实战 90

5.5.1  通过自定义函数防止新闻主题信息出现

中文乱码 90

5.5.2  应用include语句构建在线音乐网站主页 92

5.5.3  对关键字进行高亮显示 93

5.5.4  获取上传文件的后缀名 93

5.5.5  自定义一个为数字取绝对值的函数 94

5.6  本章小结 94

5.7  学习成果检验 95

第6章  字符串 96

 视频讲解:76分钟

6.1  字符串简介 97

6.2  单引号与双引号 97

6.3  定界符 98

6.4  连接字符串 99

6.5  转义、还原字符串 100

6.5.1  手动转义、还原字符串 100

6.5.2  自动转义、还原字符串 101

6.6  获取字符串长度 102

6.7  截取字符串 103

6.8  比较字符串 104

6.8.1  按字节比较 105

6.8.2  按自然排序法比较 105

6.8.3  指定从源字符串的位置比较 106

6.9  检索字符串 106

6.9.1  应用strstr()函数检索指定的关键字 106

6.9.2  应用substr_count()函数检索子串

出现的次数 107

6.10  替换子字符串 109

6.11  去除字符串中空白字符和特殊字符 112

6.11.1  去除字符串左边空白字符和特殊字符 113

6.11.2  去除字符串右边空白字符和特殊字符 113

6.11.3  去除字符串两边空白字符和特殊字符 113

6.12  格式化字符串 114

6.13  分割字符串 115

6.14  字符串与HTML相互转换 116

6.15  实战 117

6.15.1  超长文本的分页显示 117

6.15.2  控制页面中输出字符串的长度 119

6.15.3  应用explode()函数和implode()函数

分割和合成字符串 120

6.15.4  应用substr()函数截取超长字符串 121

6.15.5  统一英文注册用户首字母大写 122

6.16  本章小结 122

6.17  学习成果检验 123

第7章  正则表达式 124

 视频讲解:82分钟

7.1  正则表达式是什么 125

7.2  正则表达式常用术语 125

7.3  正则表达式语法规则 125

7.3.1  行定位符(^和$) 125

7.3.2  字符类([]) 126

7.3.3  选择字符(|) 126

7.3.4  连字符(-) 126

7.3.5  排除字符(^) 127

7.3.6  限定符(? * + {n,m}) 127

7.3.7  点字符(.) 127

7.3.8  转义字符(\) 128

7.3.9  反斜杠(\) 128

7.3.10  括号字符(()) 129

7.3.11  反向引用 129

7.4  POSIX扩展正则表达式函数 130

7.4.1  查找字符串 130

7.4.2  替换字符串 130

7.4.3  分割字符串 130

7.5  PCRE兼容正则表达式函数 131

7.5.1  查找字符串 131

7.5.2  替换字符串 132

7.6  实战 133

7.6.1  通过正则表达式无刷新验证用户注册

信息是否合理 133

7.6.2  验证E-mail地址格式是否正确 135

7.6.3  验证文本框输入的是否为整数 135

7.6.4  验证IP地址是否有效 136

7.6.5  验证注册信息是否符合要求 137

7.7  本章小结 138

7.8  学习成果检验 139

第8章  PHP数组 140

 视频讲解:90分钟

8.1  数组是什么 141

8.2  声明数组 141

8.2.1  数组命名规则 141

8.2.2  通过PHP函数创建数组 142

8.2.3  通过数组标识符"[]"创建数组 143

8.3  数组的类型 143

8.3.1  数字索引数组 143

8.3.2  关联数组 144

8.4  输出数组 144

8.5  数组的构造 145

8.5.1  创建一维数组 145

8.5.2  创建二维数组 146

8.6  遍历数组 146

8.6.1  foreach结构遍历数组 146

8.6.2  each()函数遍历数组 147

8.6.3  list()函数遍历数组 147

8.6.4  for语句遍历数组 148

8.7  合并数组 149

8.8  字符串与数组的转换 150

8.8.1  应用explode()函数将字符串转换成数组 150

8.8.2  应用implode()函数将数组转换成一个

新字符串 150

8.9  统计数组元素个数 150

8.10  数组排序 151

8.10.1  数字数组排序 151

8.10.2  关联数组排序 153

8.11  实战 153

8.11.1  向投票系统添加投票选项 153

8.11.2  用foreach结构遍历二维数组 154

8.11.3  生成在线考试题 155

8.11.4  判断元素值是否在数组中 155

8.11.5  向数组中添加元素 156

8.12  本章小结 157

8.13  学习成果检验 157

第9章  日期和时间 158

 视频讲解:93分钟

9.1  系统时区设置 159

9.1.1  时区的划分 159

9.1.2  PHP中的时区设置 159

9.2  UNIX时间戳 160

9.2.1  什么是时间戳 160

9.2.2  UNIX时间戳 160

9.2.3  获取指定日期的时间戳 160

9.2.4  获取当前时间戳 161

9.2.5  将英文文本的日期时间描述解析为UNIX

时间戳 162

9.3  PHP日期和时间的处理 162

9.3.1  格式化日期和时间 163

9.3.2  获取日期和时间信息 164

9.3.3  获取本地化的日期和时间 165

9.3.4  检验日期和时间的有效性 167

9.4  实战 168

9.4.1  实现倒计时的功能 168

9.4.2  实现生日提示功能 168

9.4.3  计算在线考试用时和剩余时间 170

9.4.4  网页闹钟 173

9.4.5  输出中文格式的日期和时间 173

9.5  本章小结 174

9.6  学习成果检验 174

第10章  综合实例(一)--注册登录 175

 视频讲解:46分钟

10.1  注册及登录验证概述 176

10.1.1  用户注册流程 176

10.1.2  用户登录流程 176

10.1.3  找回密码流程 176

10.1.4  程序预览 176

10.2  热点关键技术 177

10.2.1  防SQL注入技术 177

10.2.2  Ajax无刷新验证技术 177

10.2.3  验证码技术 178

10.2.4  E-mail激活技术 181

10.2.5  应用键盘响应事件验证信息是否合法 181

10.2.6  PHP中操作Cookie技术 183

10.2.7  在JavaScript中操作Cookie技术 183

10.2.8  用户自动登录技术 184

10.3  数据库设计 184

10.3.1  数据库设计概述 184

10.3.2  封装数据库连接-操作类 184

10.4  用户注册 187

10.4.1  用户注册功能概述 187

10.4.2  注册页面设计 187

10.4.3  检测用户名是否被占用 191

10.4.4  注册信息处理 191

10.4.5  注册用户激活 192

10.4.6  免激活用户注册 193

10.5  用户登录 194

10.5.1  用户登录功能概述 194

10.5.2  登录页面设计 194

10.5.3  登录处理页 197

10.5.4  生成及刷新验证码 198

10.6  找回密码 198

10.6.1  找回密码功能概述 198

10.6.2  找回密码功能实现过程 198

  

第2篇  数 据 库 篇

第11章  MySQL数据库基本操作 202

 视频讲解:70分钟

11.1  MySQL简介 203

11.1.1  MySQL是什么 203

11.1.2  MySQL特点 203

11.1.3  MySQL 5支持的特性 204

11.2  启动、连接、断开和停止MySQL

服务器 204

11.2.1  启动MySQL服务器 204

11.2.2  连接和断开MySQL服务器 205

11.2.3  停止MySQL服务器 205

11.3  使用MySQL命令行操作数据库 206

11.3.1  创建数据库 206

11.3.2  查看数据库 207

11.3.3  选择数据库 207

11.3.4  删除数据库 207

11.4  使用MySQL命令行操作数据表 207

11.4.1  创建数据表 207

11.4.2  查看表结构 208

11.4.3  修改表结构 209

11.4.4  重命名表 210

11.4.5  删除表 210

11.5  MySQL语句操作 210

11.5.1  插入记录 210

11.5.2  浏览数据库记录 211

11.5.3  修改记录 211

11.5.4  删除记录 212

11.6  实战 212

11.6.1  管理MySQL数据库及数据表 212

11.6.2  创建db_book图书数据库以及图书

信息表tb_mrbook 213

11.6.3  向tb_mrbook表中添加、修改和删除

数据 214

11.6.4  用mysqldump命令导出数据库 214

11.6.5  用mysql命令将数据库文件导入数据库 215

11.7  本章小结 215

11.8  学习成果检验 215

第12章  phpMyAdmin图形化管理工具 216

 视频讲解:57分钟

12.1  phpMyAdmin简介 217

12.2  phpMyAdmin的安装和配置 217

12.2.1  Windows系统下phpMyAdmin的

安装配置 217

12.2.2  Linux系统下phpMyAdmin的安装配置 218

12.3  phpMyAdmin的使用 219

12.3.1  管理数据库 219

12.3.2  管理数据表 220

12.3.3  管理数据记录 221

12.3.4  导入/导出数据 224

12.4  实战 225

12.4.1  通过phpMyAdmin图形化管理工具修改

数据库密码 225

12.4.2  使用phpMyAdmin设置编码格式 225

12.4.3  通过phpMyAdmin添加服务器新用户 226

12.4.4  在phpMyAdmin中删除MySQL服务器

登录密码 226

12.4.5  手动备份、恢复MySQL数据库 227

12.5  本章小结 228

12.6  学习成果检验 228

第13章  使用MySQL函数操作数据库 229

 视频讲解:182分钟

13.1  PHP访问MySQL数据库的一般

步骤 230

13.2  使用MySQL函数库 230

13.2.1  连接MySQL服务器 231

13.2.2  选择数据库 231

13.2.3  执行SQL语句 232

13.2.4  应用mysql_fetch_array()函数获取结果集 233

13.2.5  应用mysql_fetch_object()函数获取结果集 235

13.2.6  应用mysql_fetch_row()函数获取结果集 236

13.2.7  应用mysql_num_rows()函数获取记录数 237

13.2.8  关闭连接 238

13.3  PHP操作MySQL数据库 239

13.3.1  应用insert命令动态添加公告信息 239

13.3.2  应用select命令查询公告信息 241

13.3.3  解决截取公告主题乱码问题 243

13.3.4  分页显示公告信息 244

13.3.5  应用update命令动态编辑公告信息 246

13.3.6  应用delete命令动态删除公告信息 248

13.4  实战 249

13.4.1  输入页码跳转到指定页 249

13.4.2  图片的分栏分页显示 251

13.4.3  留言板 253

13.4.4  高级查询 256

13.4.5  分组统计 258

13.4.6  使用下拉菜单跳转页面 260

13.5  本章小结 262

13.6  学习成果检验 263

第14章  ADODB类库 264

 视频讲解:96分钟

14.1  ADODB类库是什么 265

14.2  ADODB支持的数据库 265

14.3  ADODB下载与安装 266

14.4  ADODB类库 267

14.4.1  连接数据库函数 267

14.4.2  操作数据库函数 268

14.4.3  控制结果集存取方式函数 272

14.4.4  操作结果集函数 273

14.4.5  处理事务函数 275

14.4.6  生成HTML表格函数 275

14.4.7  生成下拉列表框函数 276

14.4.8  实现分页功能函数 277

14.4.9  错误处理函数 278

14.5  实战 278

14.5.1  实现分页 278

14.5.2  处理事务 279

14.5.3  缓存函数+ADODB动态生成静态页 280

14.5.4  添加商品信息 284

14.5.5  删除图书信息 287

14.6  本章小结 289

14.7  学习成果检验 289

第15章  PDO数据库抽象层 290

 视频讲解:60分钟

15.1  什么是PDO 291

15.1.1  PDO概述 291

15.1.2  PDO特点 291

15.1.3  安装PDO 291

15.2  PDO连接数据库 292

15.2.1  PDO构造函数 292

15.2.2  DSN详解 292

15.3  PDO中执行SQL语句 292

15.3.1  exec()方法 293

15.3.2  query()方法 293

15.3.3  预处理语句--prepare()和execute() 294

15.4  PDO中获取结果集 295

15.4.1  fetch()方法 295

15.4.2  fetchAll()方法 296

15.4.3  fetchColumn()方法 297

15.5  PDO中捕获SQL语句中的错误 299

15.5.1  使用默认模式--PDO::

ERRMODE_SILENT 299

15.5.2  使用警告模式--PDO::

ERRMODE_WARNING 300

15.5.3  使用异常模式--PDO::

ERRMODE_EXCEPTION 301

15.6  PDO中错误处理 302

15.6.1  errorCode()方法 302

15.6.2  errorInfo()方法 303

15.7  PDO中事务处理 304

15.8  PDO中存储过程 305

15.9  实战 306

15.9.1  明日书店会员注册 306

15.9.2  添加留言信息 308

15.9.3  查询图书信息 309

15.9.4  删除会员信息 310

15.9.5  修改商品信息 312

15.10  本章小结 316

15.11  学习成果检验 316

第16章  综合实例(二)--在线论坛 317

 视频讲解:25分钟

16.1  在线论坛概述 318

16.1.1  模块概述 318

16.1.2  功能结构 318

16.1.3  权限分配 318

16.1.4  程序预览 319

16.2  数据库设计 320

16.2.1  数据库设计 320

16.2.2  数据表设计 320

16.2.3  连接数据库 321

16.3  用户注册 321

16.3.1  用户注册概述 321

16.3.2  检测用户名是否被占用 321

16.3.3  用户注册的实现 322

16.4  在线论坛前台 323

16.4.1  帖子浏览功能概述 323

16.4.2  分页显示回复信息 323

16.4.3  帖子的发布 326

16.4.4  注销用户 328

16.5  后台管理 328

16.5.1  在线论坛后台管理概述 328

16.5.2  通过switch和include语句设计后台

首页框架 328

16.5.3  栏目管理 329

16.6  技术提炼 332

16.6.1  分页技术 332

16.6.2  网页访问权限设置 334

16.6.3  页面刷新技术 334

  

  

第3篇  核 心 技 术

第17章  会话管理 336

 视频讲解:117分钟

17.1  Cookie管理 337

17.1.1  了解Cookie 337

17.1.2  创建Cookie 338

17.1.3  读取Cookie 339

17.1.4  删除Cookie 340

17.1.5  Cookie应用的注意事项 340

17.1.6  Cookie的综合应用--自动登录 341

17.2  Session管理 343

17.2.1  了解Session 343

17.2.2  启动Session 343

17.2.3  应用Session 344

17.2.4  删除Session 345

17.2.5  Session的综合应用--通过Session

控制页面访问权限 345

17.3  Session与Cookie的比较 347

17.4  实战 347

17.4.1  通过Cookie实现单点登录 347

17.4.2  Session购物车 349

17.4.3  防止页面刷新 353

17.4.4  通过Session变量屏蔽刷新页面对

计数器的影响 354

17.4.5  应用Session变量控制用户登录时间 355

17.5  本章小结 357

17.6  学习成果检验 357

第18章  图形图像 358

 视频讲解:106分钟

18.1  了解GD2函数库 359

18.2  参数设置 359

18.3  Jpgraph类库 359

18.3.1  Jpgraph类库简介 360

18.3.2  Jpgraph的安装 360

18.3.3  Jpgraph的配置 360

18.4  常用图像处理 361

18.4.1  创建画布 361

18.4.2  颜色处理 361

18.4.3  输出图像 362

18.4.4  绘制基本图形 362

18.4.5  填充几何图形 363

18.4.6  输出文字 364

18.5  实战 365

18.5.1  创建一个简单的图像 365

18.5.2  应用GD2函数在照片上添加文字 366

18.5.3  应用图像处理技术生成验证码 366

18.5.4  Jpgraph创建柱状图展示年度收支情况 368

18.5.5  Jpgraph创建折线图统计图书销售走势 369

18.5.6  Jpgraph创建3D饼形图展示部门

业绩比较 371

18.6  本章小结 371

18.7  学习成果检验 372

第19章  文件系统 373

 视频讲解:74分钟

19.1  文件处理 374

19.1.1  打开文件 374

19.1.2  读取文件 375

19.1.3  写入文件 377

19.1.4  操作文件 378

19.1.5  关闭文件 379

19.2  文件上传 379

19.2.1  配置php.ini文件 379

19.2.2  预定义变量$_FILES 379

19.2.3  文件上传函数 380

19.3  文件处理的高级应用 381

19.3.1  远程文件的访问 381

19.3.2  文件指针 382

19.3.3  锁定文件 383

19.4  目录处理 384

19.4.1  打开目录 384

19.4.2  浏览目录 384

19.4.3  操作目录 384

19.4.4  关闭目录 385

19.5  实战 385

19.5.1  多图片上传 385

19.5.2  通过文本文件统计页面访问量 387

19.5.3  规范化的文件上传 388

19.5.4  文本文件的分页输出 389

19.5.5  从文本文件中读取注册服务条款 390

19.6  本章小结 391

19.7  学习成果检验 391

第20章  面向对象 392

 视频讲解:160分钟

20.1  面向对象的基本概念 393

20.1.1  类 393

20.1.2  对象 393

20.1.3  面向对象编程的三大特点 393

20.2  类与对象 393

20.2.1  定义类 394

20.2.2  实例化类 394

20.2.3  使用对象 395

20.2.4  成员变量 396

20.2.5  成员函数 396

20.3  类的权限修饰符 397

20.3.1  public(公有成员) 397

20.3.2  private(私有成员) 398

20.3.3  protected(保护成员) 398

20.4  构造函数 399

20.4.1  创建构造函数 399

20.4.2  调用父类构造函数 400

20.5  析构函数 400

20.6  使用$this变量访问方法和属性 401

20.7  static关键字 402

20.8  final关键字 403

20.9  抽象类 403

20.10  接口的使用 405

20.11  实战 406

20.11.1  面向对象的用户登录身份验证 406

20.11.2  面向对象的数据分页显示 407

20.11.3  封装一个数据库操作类 409

20.11.4  用面向对象生成图像验证码 410

20.11.5  封装一个显示页码的分页类 411

20.11.6  数据统计类中定义求数字平均值的方法 413

20.11.7  封装特殊字符转义类 414

20.12  本章小结 414

20.13  学习成果检验 414

第21章  PHP加密技术 415

 视频讲解:8分钟

21.1  加密技术简介 416

21.1.1  MD5算法 416

21.1.2  SHA1算法 417

21.1.3  DES算法 417

21.1.4  MIME/BASE64的算法 417

21.2  PHP内置加密函数 417

21.2.1  使用crypt()函数进行加密 418

21.2.2  使用md5()函数进行加密 419

21.2.3  使用sha1()函数进行加密 419

21.2.4  使用base64_encode()函数进行编码 420

21.2.5  使用base64_decode()函数进行解码 420

21.3  PHP加密扩展库 420

21.3.1  Mcrypt扩展库 420

21.3.2  Mhash扩展库 422

21.4  实战 423

21.4.1  用户注册密码的MD5加密 423

21.4.2  用户注册密码的crypt加密 424

21.4.3  用自定义函数对用户密码进行加密 425

21.4.4  隐藏PHP文件扩展名 427

21.4.5  禁止用户输入敏感字符 428

21.5  本章小结 430

21.6  学习成果检验 430

第22章  程序调试与异常处理 431

 视频讲解:70分钟

22.1  程序基本调试流程 432

22.2  PHP中的错误类型 432

22.2.1  语法错误 432

22.2.2  语义错误 434

22.2.3  逻辑错误 434

22.2.4  注释错误 435

22.2.5  运行错误 435

22.3  PHP错误的调试 435

22.3.1  PHP的错误报告 436

22.3.2  启动错误报告 436

22.3.3  使用print语句调试程序 436

22.3.4  应用前缀字符@屏蔽PHP脚本错误

提示 437

22.3.5  使用错误处理器记录日志 437

22.4  SQL错误的调试 438

22.4.1  PHP与MySQL连接错误 438

22.4.2  SQL语句错误 439

22.5  实战 441

22.5.1  分析、解决PHP与MySQL连接错误 441

22.5.2  解决数据库乱码问题 442

22.5.3  封装异常处理类 444

22.5.4  使用错误处理器记录日志 445

22.5.5  通过phpMyAdmin调试SQL语句中

的错误 445

22.6  本章小结 446

22.7  学习成果检验 446

第23章  综合实例(三)--投票系统 447

 视频讲解:45分钟

23.1  投票系统概述 448

23.1.1  模块概述 448

23.1.2  功能结构 448

23.1.3  程序预览 448

23.2  数据库设计 449

23.2.1  数据库设计 449

23.2.2  数据表设计 450

23.2.3  连接数据库 450

23.3  投票 450

23.3.1  用户注册 450

23.3.2  用户登录 452

23.3.3  投票主题浏览 453

23.3.4  投票内容提交 453

23.4  投票管理 458

23.4.1  投票管理概述 458

23.4.2  动态生成投票主题及选项 458

23.4.3  删除投票主题与投票内容 461

23.4.4  刷新投票结果 462

23.5  技术提炼 463

23.5.1  通过3D饼形图分析投票结果 463

23.5.2  通过柱形图分析投票结果 464

23.5.3  Cookie投票限制 466

23.5.4  通过IP限制重复投票 467

  

第4篇  Web前端开发

第24章  PHP与Web页面交互 470

 视频讲解:124分钟

24.1  表单 471

24.1.1  创建表单 471

24.1.2  认识表单元素 471

24.2  在Web页中创建表单 474

24.3  在Web页中嵌入PHP脚本 475

24.3.1  在HTML标记中嵌入PHP脚本 475

24.3.2  为表单元素赋值 476

24.4  提交表单数据 476

24.4.1  POST方法提交表单数据 476

24.4.2  GET方法提交表单数据 477

24.4.3  POST方法与GET方法的使用区别 478

24.5  PHP全局变量 478

24.5.1  $_POST[]全局变量 478

24.5.2  $_GET[]全局变量 480

24.5.3  $_SESSION[]全局变量 480

24.6  对URL传递的参数进行编/解码 480

24.6.1  对URL传递的参数进行编码 480

24.6.2  对URL编码的字符串进行解码 481

24.7  实战 481

24.7.1  发布和查看公告信息 482

24.7.2  图书借阅 483

24.7.3  设计一个用户注册表单并获取用户

注册信息 484

24.7.4  限制多行文本域输入的字符个数 485

24.7.5  获取用户的个人信息 486

24.7.6  用户登录 489

24.7.7  设置文本框的只读属性 490

24.7.8  对超链接传递的数据进行编码 491

24.8  本章小结 491

24.9  学习成果检验 491

第25章  PHP与JavaScript交互 492

 视频讲解:81分钟

25.1  了解JavaScript 493

25.1.1  JavaScript是什么 493

25.1.2  JavaScript能做什么 493

25.2  JavaScript语言基础 493

25.2.1  JavaScript数据类型 493

25.2.2  JavaScript变量 494

25.2.3  JavaScript注释 495

25.3  自定义函数 496

25.4  JavaScript脚本嵌入方式 496

25.4.1  在HTML中嵌入JavaScript脚本 496

25.4.2  应用JavaScript事件调用自定义函数 497

25.4.3  在PHP动态网页中引用JS文件 498

25.4.4  解决浏览器不支持JavaScript的问题 499

25.5  实战 501

25.5.1  应用JavaScript脚本制作树状导航菜单 501

25.5.2  PHP与JavaScript脚本的交互应用 503

25.5.3  用JavaScript脚本实现年月日的联动 506

25.5.4  用JavaScript脚本实现几秒后跳转页面 507

25.5.5  确认框confirm()的应用 509

25.6  本章小结 511

25.7  学习成果检验 511

第26章  XML技术 512

 视频讲解:79分钟

26.1  XML概述 513

26.2  XML语法 513

26.2.1  XML文档结构 513

26.2.2  XML声明 513

26.2.3  XML处理指令 514

26.2.4  XML注释 514

26.2.5  XML元素 514

26.2.6  XML属性 516

26.3  创建XML文档 516

26.4  SimpleXML 517

26.4.1  创建SimpleXML对象 517

26.4.2  遍历所有子元素 518

26.4.3  遍历所有属性 519

26.4.4  访问特定节点元素和属性 520

26.4.5  修改XML数据 520

26.4.6  保存XML文档 521

26.5  实战 522

26.5.1  动态创建XML文档 522

26.5.2  动态读取XML文档 524

26.5.3  通过XPath查询XML中的数据 525

26.5.4  动态添加XML中的数据 527

26.5.5  动态删除XML中的数据 528

26.6  本章小结 531

26.7  学习成果检验 531

第27章  Ajax技术 532

 视频讲解:77分钟

27.1  Ajax概述 533

27.1.1  什么是Ajax 533

27.1.2  Ajax的开发模式 533

27.1.3  Ajax的优点 533

27.2  Ajax技术的组成 534

27.2.1  JavaScript脚本语言 534

27.2.2  XMLHttpRequest对象 534

27.2.3  XML语言 537

27.2.4  DOM 538

27.2.5  CSS 538

27.3  Ajax与PHP的交互 538

27.3.1  通过GET方式与PHP进行交互 538

27.3.2  通过POST方式与PHP进行交互 540

27.4  Ajax开发常见问题 542

27.5  实战 543

27.5.1  在PHP中应用Ajax技术检测用户名 543

27.5.2  在PHP中应用Ajax技术实现博客

文章类别添加 544

27.5.3  使用jQuery制作级联下拉列表框 546

27.5.4  应用Ajax技术删除数据 548

27.5.5  应用Ajax技术制作分类列表框 550

27.6  本章小结 552

27.7  学习成果检验 552

第28章  综合实例(四)--购物车 553

 视频讲解:45分钟

28.1  购物车模块概述 554

28.1.1  功能概述 554

28.1.2  购物车操作流程 554

28.1.3  程序预览 554

28.2  数据库设计 555

28.2.1  创建数据库 555

28.2.2  创建数据表 555

28.3  首页设计 556

28.3.1  首页概述 556

28.3.2  首页实现过程 557

28.4  登录模块设计 558

28.4.1  登录模块概述 558

28.4.2  用户注册 558

28.4.3  用户登录 560

28.5  商品展示模块设计 561

28.5.1  商品展示模块概述 561

28.5.2  商品展示模块 562

28.6  购物车模块设计 563

28.6.1  购物车模块概述 563

28.6.2  购物车展示 564

28.6.3  更改商品数量 565

28.6.4  删除商品 566

28.6.5  保存购物车 567

28.7  技术提炼 569

28.7.1  数据库连接、管理和分页类文件 569

28.7.2  Smarty模板配置类文件 571

28.7.3  执行类的实例化文件 571

28.7.4  Smarty模板页中的框架技术 572

28.7.5  Ajax无刷新验证技术 572

28.7.6  分页技术 574

28.7.7  购物车中商品添加技术 574

  

  

第5篇  框 架 应 用

第29章  Smarty模板技术 578

 视频讲解:102分钟

29.1  Smarty简介 579

29.1.1  Smarty模板引擎 579

29.1.2  开发模式与运行流程 579

29.2  Smarty的安装配置 580

29.2.1  Smarty下载和安装 580

29.2.2  Smarty配置 580

29.2.3  第一个Smarty程序 581

29.3  Smarty模板设计 582

29.3.1  Smarty模板文件 583

29.3.2  注释 583

29.3.3  变量 583

29.3.4  修饰变量 585

29.3.5  流程控制 586

29.3.6  内建函数 588

29.4  Smarty程序设计 590

29.4.1  Smarty中的常用方法 590

29.4.2  Smarty的配置变量 591

29.5  实战 591

29.5.1  通过Smarty实现网页的动静分离 591

29.5.2  Smarty分页类 593

29.5.3  网站公告 596

29.5.4  Smarty模板truncate()方法截取字符串 597

29.5.5  输出会员信息 600

29.6  本章小结 603

29.7  学习成果检验 603

第30章  ThinkPHP框架 604

 视频讲解:150分钟

30.1  ThinkPHP简介 605

30.1.1  ThinkPHP框架的特点 605

30.1.2  环境要求 605

30.1.3  下载ThinkPHP框架 605

30.2  ThinkPHP架构 606

30.2.1  ThinkPHP的目录结构 606

30.2.2  自动生成目录 606

30.2.3  项目目录部署方案 607

30.2.4  命名规范 608

30.2.5  项目构建流程 608

30.3  ThinkPHP的配置 610

30.3.1  配置格式 610

30.3.2  调试配置 611

30.4  ThinkPHP的控制器 611

30.4.1  控制器 611

30.4.2  跨模块调用 612

30.5  ThinkPHP的模型 615

30.5.1  模型的命名 615

30.5.2  实例化模型 616

30.5.3  属性访问 619

30.5.4  连接数据库 619

30.5.5  创建数据 622

30.5.6  连贯操作 623

30.5.7  CURD操作 624

30.6  ThinkPHP的视图 626

30.6.1  模板定义 627

30.6.2  模板赋值 627

30.6.3  指定模板文件 627

30.6.4  特殊字符串替换 628

30.7  内置ThinkTemplate模板引擎 629

30.8  实战 631

30.8.1  用户信息的查询、更新和删除 631

30.8.2  用户登录 633

30.8.3  商品信息的分页输出 636

30.8.4  新闻发布 637

30.8.5  带查询条件的分页 641

30.9  本章小结 645

30.10  学习成果检验 645

第31章  综合实例(五)--明日导航网 646

 视频讲解:39分钟

31.1  需求分析 647

31.2  系统设计 647

31.2.1  系统功能结构 647

31.2.2  系统预览 647

31.3  数据库设计 648

31.3.1  数据库设计 648

31.3.2  数据表设计 648

31.3.3  连接数据库 649

31.4  ThinkPHP架设项目结构 649

31.4.1  下载ThinkPHP框架 650

31.4.2  自动生成项目目录 650

31.5  明日导航前台页面设计 650

31.5.1  页面设计概述 651

31.5.2  控制器的创建 652

31.5.3  视图中应用到的模板标签 653

31.5.4  在视图中创建模板文件 655

31.6  明日导航后台管理设计 656

31.6.1  后台管理概述 656

31.6.2  通过系统配置文件存储后台登录数据 656

31.6.3  后台管理架构解析 657

31.6.4  ThinkPHP框架中的分页技术 657

31.6.5  后台管理视图中应用的模板标签 658

31.6.6  后台登录 659

31.6.7  后台管理主页 660

31.6.8  高级类别管理 661

31.6.9  判断访问用户的权限 664

31.6.10  操作提示页面 664

31.7  项目发布 665

31.8  本章小结 666

  

  

第6篇  项 目 实 战

第32章  博客管理系统 668

 视频讲解:169分钟

32.1  项目描述 669

32.2  系统分析 669

32.2.1  需求分析 669

32.2.2  系统目标 669

32.2.3  系统功能结构 670

32.2.4  系统流程图 670

32.3  软件开发环境 670

32.4  数据库与数据表的设计 671

32.4.1  数据库分析 671

32.4.2  数据库E-R图设计 671

32.4.3  创建数据库和数据表 672

32.5  首页设计 673

32.5.1  首页概述 673

32.5.2  首页技术分析 674

32.5.3  首页的实现过程 675

32.6  用户管理模块设计 676

32.6.1  用户管理模块概述 676

32.6.2  用户注册 676

32.6.3  用户登录 678

32.6.4  查询用户信息 679

32.6.5  浏览用户信息 680

32.7  文章管理模块设计 682

32.7.1  文章管理模块概述 682

32.7.2  文章管理模块技术分析 682

32.7.3  添加文章的实现过程 683

32.7.4  文章列表的实现过程 684

32.7.5  查看、评论文章的实现过程 686

32.7.6  删除文章或评论的实现过程 688

32.8  图片上传模块设计 688

32.8.1  图片上传模块概述 689

32.8.2  图片上传模块技术分析 689

32.8.3  图片上传的实现过程 692

32.8.4  图片浏览的实现过程 694

32.8.5  删除图片的实现过程 696

32.9  朋友圈模块设计 696

32.9.1  朋友圈模块概述 697

32.9.2  朋友圈模块技术分析 697

32.9.3  查询好友的实现过程 697

32.10  项目发布 699

32.10.1  通过个人服务器发布项目 699

32.10.2  通过租用空间发布项目 699

32.11  开发常见问题与解决 700

32.12  本章小结 701

第33章  应用Smarty模板开发

电子商务平台 702

 视频讲解:281分钟

33.1  项目描述 703

33.2  系统分析 703

33.2.1  需求分析 703

33.2.2  编写项目计划书 703

33.3  系统设计 703

33.3.1  系统目标 703

33.3.2  系统功能结构 704

33.3.3  系统流程图 704

33.4  系统开发环境 705

33.5  数据库与数据表的设计 705

33.5.1  数据库分析 705

33.5.2  创建数据库和数据表 706

33.6  搭建系统框架 707

33.7  公共文件设计 708

33.7.1  数据库连接文件 708

33.7.2  Smarty配置文件 708

33.7.3  XMLHttpRequest对象文件 709

33.7.4  表单样式文件 709

33.8  前台首页设计 711

33.9  登录模块设计 712

33.9.1  用户注册 713

33.9.2  用户登录 717

33.9.3  找回密码 719

33.10  会员信息模块设计 723

33.10.1  会员中心 723

33.10.2  安全退出 725

33.11  商品展示模块 726

33.11.1  创建PHP页 726

33.11.2  创建模板页 726

33.11.3  JavaScript脚本页面 727

33.12  购物车模块设计 728

33.12.1  添加商品 728

33.12.2  显示购物车 730

33.12.3  更改商品数量 731

33.12.4  删除商品 732

33.12.5  保存购物车 734

33.13  收银台模块设计 735

33.13.1  显示订单 736

33.13.2  填写订单 736

33.13.3  处理订单 737

33.13.4  反馈订单 739

33.13.5  查询订单 739

33.14  后台首页设计 741

33.14.1  后台首页布局 742

33.14.2  DIV+JavaScript+CSS实现树状菜单 742

33.15  类别管理模块设计 743

33.15.1  添加类别 743

33.15.2  查看类别 745

33.16  订单管理模块设计 749

33.17  开发的常见问题 751

33.17.1  解决Ajax的乱码问题 751

33.17.2  使用JS脚本获取、输出标签内容 751

33.17.3  使用浮动框架做关联菜单 752

33.17.4  禁用页面缓存 752

33.17.5  在新窗口中使用Session 752

33.17.6  防止站外链接 753

33.17.7  判断上传文件格式 753

33.18  网站运行错误分析 753

33.18.1  数据库导致的错误 754

33.18.2  Smarty模板的配置错误 754

33.19  本章小结 755

附录A  PHP编码规则 756

  

  

  

    PHP开发实战

  

目    录        

  

XVIII

  

  

XVII