第1篇 新手入门 2
第1章 初识PHP 2
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
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
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
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
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- onee语句和require- onee语句的使用区别 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
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
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
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
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
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.2Ajax无刷新验证技术 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篇 数据库篇 202
第11章 MySQL数据库基本操作 202
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
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
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 rows()函数获取结果集 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
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
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 errorlnfo()方法 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
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篇 核心技术 336
第17章 会话管理 336
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
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
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
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
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使用shal ()函数进行加密 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
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
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前端开发 470
第24章 PHP与Web页面交互 470
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
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
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
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
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篇 框架应用 578
第29章 Smarty模板技术 578
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
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
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篇 项目实战 668
第32章 博客管理系统 668
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
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