标题：PHP典型模块精解
作者：潘凯华、李慧等
图书详细信息：ISBN：9787302272052  PHP典型模块精解定价：49.8元
印次：1-1
装帧：平装
印刷日期：2011-12-29
图书简介：本书以注册登录、分页显示、上传与下载、网页计数器、购物车、在线支付、假日公告管理、投票系统、留言本、在线论坛、博客、在线编程词典、邮件发送系统、FTP管理系统和创建PDF文档15个模块为案例，从Web项目开发的角度出发，打造点、线、面一体化的学习架构，让读者既能够学习到子功能模块的实现方法、开发技巧，同时又能够合理地运用子功能模块，打造出完整的项目。
本书模块涉及面广，实用性强。通过对本书的学习，读者可以了解Web开发中各个环节的特点、功能，以及如何合理地连接各个环节，打造出完整的项目。另外，本书中所提供的模块不仅包括常用功能模块，还包含目前比较流行的热点模块，既可达到读者二次开发的目的，同时亦可满足读者对流行、热点内容的好奇心。
本书提供了大量的自学视频、源程序、素材，提供了相关的模块库、案例库、素材库、题库等多种形式的辅助学习资料，还提供迅速及时的微博、QQ、论坛等技术支持。
本书模块丰富，讲解细致，非常适合作为零基础学习人员的学习用书和大中专院校师生的学习教材，也适合作为相关培训机构的师生和软件开发人员的参考资料。前言：众里寻她千百度，蓦然回首，那人却在灯火阑珊处！
每个想要成为程序员的、已经是初级程序员的，或者已经是中级程序员的读者，都有这样一个梦想，期待着自己有一天能够成为一名高级程序设计大师。
每个人都在为这个理想而奋斗着，不断地付出，开发着各种各样的项目、模块，以此来积累经验，提高技术水平。当有一天梦想实现的时候，回想起自己是如何做到的，蓦然发现正是那些各种各样的项目、模块成就了自己。
正所谓，众里寻她千百度，蓦然回首，那人却在灯火阑珊处！
本书精选了15个模块，直接将这灯火阑珊处的“她”呈现给诸位读者，希望读者能够早日成就梦想。
本书内容
本书分为15章，包含80项开发技术、经验，涵盖注册登录、分页显示、上传与下载、网页计数器、购物车、在线支付、假日公告管理、投票系统、留言本、在线论坛、博客、在线编程词典、邮件发送系统、FTP管理系统和创建PDF文档等多个模块的内容。所选模块均来源于一线开发人员的第一手资料，各个模块在实际开发中所占的比重如下图所示。
本书特色
* 纵向延伸。本书精选了15个模块，涵盖项目开发中应用的各方面技术和数据库，体现了从小到大、从易到难的学习过程。
* 横向连接。属于PHP系列图书的一部分，是PHP入门学习、范例练习的延伸，以模块开发的形式锻炼读者Web开发的能力，并且逐步向更高级别的项目开发迈进。
* 易学、易用。本书中的每个模块都通过“技术提炼”栏目，对代码中重要的对象、方法、语句和重点知识等进行说明，以便于读者在阅读代码时透彻理解代码的含义和相关技术、技巧。
* 赠送所有模块源代码。书中所有模块均提供源代码，用户在开发中可以快速借鉴或应用。
* 提供72集（节）视频录像。本书提供了72集（节）视频录像，读者可以边看边学，快速提高。
本书配套资源
本书提供了内容丰富的配套资源，包括自学视频、源程序、素材，以及模块库、案例库、题库、素材库等多项辅助内容，读者朋友可以通过如下方式获取。
第1种方式：
（1）登录清华大学出版社的网站，在网页右上角的搜索文本框中输入本书书名（注意区分大小写和留出空格），或者输入本书关键字，或者输入本书ISBN号（注意去掉ISBN号间隔线“-”），单击“搜索”按钮。
（2）找到本书后单击超链接，在该书的网页下侧单击“网络资源”超链接，即可下载。
第2种方式：
访问本书的新浪微博PHPbook，找到配套资源的链接地址进行下载。
配套资源目录如下图所示。
本书约定
* 项目使用方法
在学习本书的过程中，可以从配套资源中复制模块，去掉其只读属性。有些模块需要使用相应的数据库或第三方资源，此类模块在使用前需要进行相应配置，详细使用方式参见配套资源中的使用说明。此外，如果直接将本书内容用于商业用途，由此产生的不良后果由用户自己承担。
* 部分项目只给出关键代码
由于篇幅限制，书中有些模块只给出了关键代码，完整代码参见配套资源中的对应程序。
读者人群
本书非常适合以下人员阅读：
* 从事PHP编程行业的开发人员
* 有一定语言基础，想进一步提高技能的人员
* 大中专院校的老师和学生
* 即将走上工作岗位的大学毕业生
* 相关培训机构的老师和学员
* PHP编程爱好者目录：第1章  注册登录模块
（ 自学视频、源程序：
配套资源\mr\1\） 1
1.1  注册及登录验证概述 2
1.1.1  用户注册流程 2
1.1.2  用户登录流程 2
1.1.3  找回密码流程 3
1.1.4  程序预览 4
1.2  数据库设计 4
1.2.1  数据库设计概述 5
1.2.2  封装数据库连接、操作类 5
1.3  用户注册 8
1.3.1  用户注册功能概述 8
1.3.2  注册页面设计 8
1.3.3  检测用户名是否被占用 13
1.3.4  注册信息处理 14
1.3.5  注册用户激活 15
1.3.6  免激活用户注册 16
1.4  用户登录 17
1.4.1  用户登录功能概述 17
1.4.2  登录页面设计 18
1.4.3  登录处理页 21
1.4.4  生成及刷新验证码 22
1.5  找回密码 22
1.5.1  找回密码功能概述 22
1.5.2  找回密码功能的实现过程 23
1.6  技术提炼 25
1.6.1  防SQL注入技术 25
1.6.2  Ajax无刷新验证技术 26
1.6.3  验证码技术 27
1.6.4  E-mail激活技术 30
1.6.5  应用键盘响应事件验证信息
是否合法 31
1.6.6  在PHP中操作Cookie技术 33
1.6.7  在JavaScript中操作Cookie
技术 34
1.6.8  用户自动登录技术 34
第2章  分页显示模块
（ 自学视频、源程序：
配套资源\mr\2\） 36
2.1  分页显示概述 37
2.1.1  模块概述 37
2.1.2  功能结构 37
2.1.3  程序预览 37
2.2  面向对象分页 39
2.2.1  Smarty模板的安装和配置 39
2.2.2  加载PDO数据库抽象层 40
2.2.3  分页类模块的页面设计 40
2.2.4  分页类模块的程序开发 41
2.3  超长文本分页 42
2.3.1  超长文本分页功能概述 42
2.3.2  超长文本分页功能实现过程 43
2.4  Ajax无刷新分页 44
2.4.1  Ajax无刷新分页功能概述 44
2.4.2  Ajax无刷新分页功能实现过程 44
2.5  标准分页 46
2.5.1  PHP标准分页功能概述 46
2.5.2  PHP标准分页功能实现过程 46
2.6  跳转分页 49
2.6.1  PHP跳转分页功能概述 49
2.6.2  PHP跳转分页功能的实现
过程 50
2.7  上下分页 53
2.7.1  PHP上下分页功能概述 53
2.7.2  PHP上下分页功能的实现
过程 54
2.8  技术提炼 55
2.8.1  自定义函数替换超长文本中
特殊字符技术 55
2.8.2  自定义函数控制超长文本的
输出技术 56
2.8.3  连接数据库类的创建 57
2.8.4  操作数据库类的创建 58
2.8.5  分页类的创建 58
2.8.6  类的实例化 60
第3章  上传与下载模块
（ 自学视频、源程序：
配套资源\mr\3\） 61
3.1  上传、下载模块概述 62
3.1.1  模块概述 62
3.1.2  功能结构 62
3.1.3  程序预览 62
3.2  数据库设计 64
3.2.1  数据库分析 64
3.2.2  创建数据表 64
3.2.3  数据库连接文件 65
3.3  用户注册 66
3.3.1  注册模块概述 66
3.3.2  注册页面设计 67
3.3.3  Ajax无刷新技术验证注册
信息 68
3.3.4  注册信息处理 69
3.4  用户登录 70
3.4.1  登录模块概述 70
3.4.2  用户权限输出以及空间
使用计算 70
3.4.3  为用户划分个人文件目录 71
3.4.4  防止用户文件目录的非法
访问 72
3.5  找回密码 73
3.5.1  找回密码概述 73
3.5.2  找回密码页面设计 73
3.5.3  找回密码处理 75
3.6  文件上传 75
3.6.1  文件上传概述 75
3.6.2  文件上传表单设计 76
3.6.3  文件上传处理 77
3.7  文件下载 79
3.7.1  功能概述 79
3.7.2  通过下载码下载文件 79
3.7.3  同步删除文件以及释放用户
空间 82
3.8  后台管理 83
3.8.1  后台管理概述 83
3.8.2  用户权限管理页面设计 83
3.8.3  更改用户权限表单设计 84
3.8.4  执行权限更改操作 85
3.9  技术提炼 86
3.9.1  php.ini配置文件 86
3.9.2  上传表单设置 87
3.9.3  预定义变量$_FILES 88
3.9.4  上传文件函数 89
3.9.5  多文件上传 89
3.9.6  文件下载 90
第4章  网页计数器模块
（ 自学视频、源程序：
配套资源\mr\4\） 92
4.1  网页计数器模块概述 93
4.1.1  模块概述 93
4.1.2  业务流程图 93
4.2  简单数字计数器 93
4.3  图形数字计数器 96
4.4  GD2图形计数器 98
4.5  数据库数字计数器 100
4.6  网站访问量统计分析 102
4.6.1  通过数据库记录网站访
问量 103
4.6.2  统计分析网站访问量 103
4.6.3  柱形图分析网站月访问量
比重 105
4.7  技术提炼 107
4.7.1  防止重复计数 107
4.7.2  通过array_unique()函数
获取网站当月IP访问量 109
4.7.3  将数组中的数据写入到字符
串中 110
4.7.4  动态生成柱形图分析网站
访问量 111
第5章  购物车模块
（ 自学视频、源程序：
配套资源\mr\5\） 112
5.1  购物车模块概述 113
5.1.1  功能概述 113
5.1.2  购物车操作流程 113
5.1.3  程序预览 114
5.2  数据库设计 115
5.2.1  创建数据库 115
5.2.2  创建数据表 115
5.3  首页设计 116
5.3.1  首页概述 116
5.3.2  首页实现过程 117
5.4  登录模块设计 119
5.4.1  登录模块概述 119
5.4.2  用户注册 119
5.4.3  用户登录 121
5.5  商品展示模块设计 123
5.5.1  商品展示模块概述 123
5.5.2  商品展示模块 123
5.6  购物车模块设计 125
5.6.1  购物车模块概述 125
5.6.2  购物车展示 125
5.6.3  更改商品数量 127
5.6.4  删除商品 128
5.6.5  保存购物车 130
5.7  技术提炼 132
5.7.1  数据库连接、管理和分页类
文件 132
5.7.2  Smarty模板配置类文件 135
5.7.3  执行类的实例化文件 135
5.7.4  Smarty模板页中的框架技术 136
5.7.5  Ajax无刷新验证技术 136
5.7.6  分页技术 138
5.7.7  购物车中商品添加技术 139
第6章  在线支付模块
（ 自学视频、源程序：
配套资源\mr\6\） 141
6.1  在线支付模块概述 142
6.1.1  功能概述 142
6.1.2  在线支付操作流程 142
6.1.3  程序预览 143
6.2  数据库设计 144
6.2.1  创建数据库 145
6.2.2  创建数据表 145
6.3  会员信息模块设计 146
6.3.1  会员信息模块概述 146
6.3.2  会员中心 146
6.3.3  安全退出 148
6.4  收银台模块设计 149
6.4.1  收银台模块概述 149
6.4.2  显示订单 149
6.4.3  填写订单 150
6.4.4  处理订单 151
6.4.5  生成订单 152
6.4.6  订单预览、打印 154
6.5  订单查询 155
6.5.1  订单查询功能概述 155
6.5.2  订单查询功能的实现 155
6.6  技术提炼 158
6.6.1  收货人信息验证 158
6.6.2  动态生成订单号 160
6.6.3  WebBrowser打印 160
6.6.4  支付宝支付 161
第7章  假日公告管理模块
（ 自学视频、源程序：
配套资源\mr\7\） 163
7.1  假日公告管理概述 164
7.1.1  模块概述 164
7.1.2  系统功能结构 164
7.1.3  程序预览 164
7.2  数据库设计 166
7.2.1  创建数据库 166
7.2.2  创建数据表 167
7.3  用户登录 167
7.3.1  用户登录概述 167
7.3.2  用户登录功能实现过程 167
7.4  假日公告发布 168
7.4.1  假日公告发布概述 168
7.4.2  假日公告信息发布实现
过程 169
7.5  假日公告取消 171
7.5.1  假日公告取消概述 171
7.5.2  浏览公告信息 171
7.5.3  取消假日公告 172
7.6  假日公告管理 172
7.6.1  假日公告管理概述 172
7.6.2  假日公告管理实现过程 173
7.7  技术提炼 175
7.7.1  数据库的连接与数据操作 175
7.7.2  通过超链接传递值 177
7.7.3  单文件上传 177
7.7.4  多图片上传 178
7.7.5  读取指定目录中的目录及
文件 179
7.7.6  jQuery控制弹出公告信息 180
第8章  投票系统模块
（ 自学视频、源程序：
配套资源\mr\8\） 183
8.1  投票系统概述 184
8.1.1  模块概述 184
8.1.2  功能结构 184
8.1.3  程序预览 184
8.2  数据库设计 186
8.2.1  数据库设计 186
8.2.2  数据表设计 187
8.2.3  连接数据库 187
8.3  投票 188
8.3.1  用户注册 188
8.3.2  用户登录 190
8.3.3  投票主题浏览 191
8.3.4  投票内容提交 192
8.4  投票管理 198
8.4.1  投票管理概述 198
8.4.2  动态生成投票主题及选项 199
8.4.3  删除投票主题与投票内容 202
8.4.4  刷新投票结果 203
8.5  技术提炼 205
8.5.1  通过3D饼图分析投票结果 205
8.5.2  通过柱形图分析投票结果 206
8.5.3  通过Cookie控制重复投票 208
8.5.4  通过IP限制重复投票 209
第9章  留言本模块
（ 自学视频、源程序：
配套资源\mr\9\） 211
9.1  留言本模块概述 212
9.1.1  模块概述 212
9.1.2  功能结构 212
9.1.3  程序预览 213
9.2  数据库设计 214
9.2.1  数据库设计 214
9.2.2  数据表设计 215
9.2.3  连接数据库 215
9.3  发表留言 215
9.3.1  发表留言概述 215
9.3.2  发表留言页面设计 216
9.3.3  将用户留言内容保存到
数据库中 218
9.4  查看留言 218
9.4.1  查看留言概述 218
9.4.2  查看留言页面设计 219
9.4.3  在页面中输出留言信息 220
9.4.4  将留言信息进行分页显示 221
9.5  编辑留言 222
9.5.1  编辑留言概述 222
9.5.2  编辑留言页面设计 223
9.5.3  编辑留言内容功能实现 224
9.6  删除留言 225
9.6.1  删除留言概述 225
9.6.2  删除留言页面设计 226
9.6.3  删除留言内容功能实现 227
9.7  查询留言 227
9.7.1  查询留言概述 227
9.7.2  查询留言页面设计 228
9.7.3  查询留言内容 228
9.8  技术提炼 229
9.8.1  将数据保存到数据库中 229
9.8.2  通过JavaScript实现弹出
窗口 230
9.8.3  包含文件函数 230
9.8.4  MySQL数据库的函数 231
第10章  在线论坛模块
（ 自学视频、源程序：
配套资源\mr\10\） 232
10.1  在线论坛概述 233
10.1.1  模块概述 233
10.1.2  功能结构 233
10.1.3  权限分配 233
10.1.4  程序预览 234
10.2  数据库设计 236
10.2.1  数据库设计 236
10.2.2  数据表设计 236
10.2.3  连接数据库 238
10.3  用户注册 238
10.3.1  用户注册概述 238
10.3.2  检测用户名是否被占用 239
10.3.3  用户注册的实现 239
10.4  在线论坛前台 240
10.4.1  帖子浏览功能概述 240
10.4.2  分页显示回复信息 241
10.4.3  帖子的发布 245
10.4.4  注销用户 247
10.5  后台管理 247
10.5.1  在线论坛后台管理概述 247
10.5.2  通过switch和include语句
设计后台首页框架 248
10.5.3  栏目管理 249
10.6  技术提炼 253
10.6.1  分页技术 253
10.6.2  网页访问权限设置 255
10.6.3  页面刷新技术 255
第11章  博客模块
（ 自学视频、源程序：
配套资源\mr\11\） 256
11.1  博客概述 257
11.1.1  模块概述 257
11.1.2  功能结构 257
11.1.3  程序预览 258
11.2  数据库设计 260
11.2.1  创建数据库与数据表 260
11.2.2  数据库操作类 262
11.3  博客空间个人首页 264
11.3.1  博客空间个人首页概述 264
11.3.2  首页实现过程 265
11.4  我的文章 267
11.4.1  “我的文章”概述 267
11.4.2  “我的文章”功能实现
过程 268
11.4.3  文章浏览功能实现过程 269
11.5  文章管理 272
11.5.1  文章管理概述 272
11.5.2  添加文章功能实现过程 272
11.5.3  文章列表功能实现过程 274
11.5.4  文章类别功能实现过程 278
11.6  用户管理 281
11.6.1  用户管理概述 281
11.6.2  用户管理功能实现过程 282
11.6.3  查询博客功能实现过程 283
11.6.4  推荐博客功能实现过程 285
11.7  技术提炼 286
11.7.1  文件包含技术 286
11.7.2  SQL查询技术 286
11.7.3  会话处理技术 287
11.7.4  冻结、解冻技术 288
11.7.5  配置文件 289
11.7.6  公共函数 289
第12章  在线编程词典模块
（ 自学视频、源程序：
配套资源\mr\12\） 291
12.1  在线编程词典概述 292
12.1.1  模块概述 292
12.1.2  系统功能结构 292
12.1.3  文件夹架构 293
12.1.4  程序预览 293
12.2  数据库设计 294
12.2.1  创建数据库 294
12.2.2  创建数据表 295
12.2.3  分离、附加数据库 297
12.3  首页设计 298
12.3.1  首页概述 298
12.3.2  首页的实现过程 298
12.4  网站模块导航设计 299
12.4.1  网站模块导航概述 300
12.4.2  网站模块导航实现过程 300
12.5  内容树状导航设计 302
12.5.1  内容树状导航概述 302
12.5.2  内容树状导航实现过程 303
12.6  内容展示区设计 307
12.6.1  内容展示区概述 307
12.6.2  内容展示区实现过程 308
12.7  技术提炼 308
12.7.1  Smarty模板 308
12.7.2  PDO数据库抽象层 309
12.7.3  树状导航菜单设计 311
12.7.4  向Flash中传递参数 314
12.7.5  Smarty注册模板函数——
读取文件 316
12.7.6  FRAME框架技术 317
12.7.7  超链接中的图片切换技术 318
12.7.8  Smarty模板技术 319
12.7.9  文件检测技术 320
第13章  邮件发送系统模块
（ 自学视频、源程序：
配套资源\mr\13\） 322
13.1  邮件发送系统概述 323
13.1.1  电子邮件简介 323
13.1.2  功能结构 323
13.1.3  程序预览 323
13.2  邮件收发的原理 325
13.3  通过WinWebMail配置邮件
服务器 325
13.4  登录邮件服务器 329
13.5  邮件收发 330
13.5.1  邮件收发模块概述 330
13.5.2  发送邮件 330
13.5.3  接收邮件 333
13.5.4  查看邮件详细内容 336
13.5.5  下载附件 338
13.5.6  删除邮件 339
13.5.7  查找邮件 340
13.6  注销系统 344
13.7  技术提炼 344
13.7.1  利用mail()函数发送电子
邮件 344
13.7.2  带附件的邮件发送 345
13.7.3  利用fsockopen()函数接收
电子邮件 346
13.7.4  封装邮件操作类 347
第14章  FTP管理系统模块
（ 自学视频、源程序：
配套资源\mr\14\） 354
14.1  FTP管理系统概述 355
14.1.1  模块概述 355
14.1.2  功能结构 355
14.1.3  程序预览 355
14.2  FTP环境搭建 357
14.2.1  FTP服务器端概述 357
14.2.2  Serv-U的安装和配置 357
14.3  用户登录 361
14.3.1  用户登录功能概述 361
14.3.2  登录页面设计 362
14.3.3  系统连接公共文件 362
14.4  根目录操作 363
14.4.1  根目录功能概述 363
14.4.2  遍历文件根目录 364
14.4.3  删除文件目录 365
14.4.4  在根目录中创建新目录 365
14.4.5  上传文件到根目录下 366
14.5  子目录操作 367
14.5.1  子目录功能概述 367
14.5.2  浏览子目录下的文件 368
14.5.3  远程文件下载 369
14.5.4  文件移动 370
14.5.5  更改文件名称 371
14.6  技术提炼 372
14.6.1  FTP文件操作技术 372
14.6.2  循环输出技术 376
14.6.3  应用CSS设置屏幕滚动条
技术 377
第15章  创建PDF文档模块
（ 自学视频、源程序：
配套资源\mr\15\） 379
15.1  创建PDF文档概述 380
15.1.1  模块概述 380
15.1.2  功能结构 380
15.1.3  程序预览 380
15.2  数据库设计 382
15.2.1  创建数据库 382
15.2.2  创建数据表 382
15.2.3  连接数据库 383
15.3  模块国际化设置 383
15.4  文章浏览 384
15.4.1  文章浏览概述 384
15.4.2  文章列表实现过程 385
15.4.3  文章浏览实现过程 386
15.4.4  PDF文档的创建和下载 388
15.5  文章添加 389
15.5.1  文章添加概述 389
15.5.2  文章添加实现过程 389
15.6  技术提炼 391
15.6.1  FPDF概述 391
15.6.2  创建简单的PDF文档 391
15.6.3  在PDF中插入图片 393
15.6.4  设置PDF文档的页眉与
页脚 394
15.6.5  在PDF文档中绘制表格 395
15.6.6  在PDF文档中输出中文 396
15.6.7  PDF文档下载 398