
《PHP典型模块开发全程实录》以注册登录模块、网页计数器模块、上传与下载模块、FTP管理系统、假日公告管理模块、分页显示模块、论坛模块、在线支付模块、留言本模块、博客模块、创建PDF文档模块、邮件发送系统12个实际模块开发程序为案例,从软件工程的角度出发,按照模块的开发顺序,系统、全面地介绍了程序开发流程。从开发背景、需求分析、系统功能分析、数据库分析、数据库建模、模块开发到模块的编译与发布,对每一过程都进行了详细的介绍。
本书及光盘特色还有:12套项目开发完整案例,项目开发案例的同步视频和其源程序。登录网站还可获取各类资源库(模块库、题库、素材库)等项目案例常用资源,网站还提供技术论坛支持等。
本书案例涉及行业广泛,实用性非常强。通过本书的学习,读者可以了解各个行业的特点,能够针对某一行业进行软件开发,也可以通过光盘中提供的案例源代码和数据库进行二次开发,以减少开发系统所需要的时间。
本书适合各级PHP网站开发人员学习使用,也可供大、中专院校师生学习参考。
编辑推荐
《软件项目开发全程实录》丛书是一套以展现项目开发完整过程为主,同时配备完整教学视频和源程序的软件开发“案例类”图书。该丛书第一版自2008年出版以来,受到广大读者,尤其是高校师生和求职人员的热烈欢迎,2011年进行了改版,截至目前,该丛书已经累计销售近16万册,成为近年来最畅销的编程案例类丛书之一。应读者朋友的要求,我们根据最新的市场变化并结合广大读者的建议,编写了该丛书的第3版。本书的特点有:
10套完整项目开发案例,项目开发全程展现
10个项目开发案例涵盖了常用的不同类别的应用系统,每个案例都从需求分析到程序实现,基本完整地展现了项目开发全过程。
20小时教学视频,让学习更加轻松、快捷
几乎涵盖了本书全部内容,先看教学视频,再对照图书操作,学习一定更加轻松、更加快捷。
提供模块库、题库、素材库等海量学习资料
本书服务网站提供了模块库、题库、素材库等海量学习资料,读者可以索取、查阅相关资料。
提供多种形式技术支持,让学习畅通无阻 目录
第1章注册登录模块(PHP+Ajax+Zend_Mail实现) 1
视频讲解:45分钟
1.1注册及登录模块概述 2
1.1.1用户注册流程 2
1.1.2用户登录流程 2
1.1.3找回密码流程 3
1.1.4程序预览 3
1.2数据库设计 4
1.2.1数据库设计概述 5
1.2.2封装数据库连接-操作类 5
1.3用户注册 8
1.3.1用户注册功能概述 8
1.3.2注册页面设计 9
1.3.3检测用户名是否被占用 14
1.3.4注册信息处理 14
1.3.5注册用户激活 15
1.3.6免激活用户注册 16
1.4用户登录 18
1.4.1用户登录功能概述 18
1.4.2登录页面设计 18
1.4.3登录处理页 21
1.4.4生成及刷新验证码 22
1.5找回密码 23
1.5.1找回密码功能概述 23
1.5.2找回密码功能实现过程 23
1.6技术提炼 25
1.6.1防SQL注入技术 25
1.6.2Ajax无刷新验证技术 26
1.6.3验证码技术 27
1.6.4E-mail激活技术 30
1.6.5应用键盘响应事件验证信息是否合法 31
1.6.6PHP中操作Cookie技术 33
1.6.7在JavaScript中操作Cookie技术 33
1.6.8用户自动登录技术 34
1.7本章小结 35
第2章网页计数器模块(Apache+PHP+MySQL 5.0实现) 36
视频讲解:50分钟
2.1网页计数器模块概述 37
2.2简单数字计数器 37
2.3图形数字计数器 40
2.4GD2图形计数器 42
2.5数据库数字计数器 44
2.6网站访问量统计分析 45
2.6.1通过数据库记录网站访问量 46
2.6.2网站访问量统计分析 47
2.6.3柱形图分析网站月访问量比重 49
2.7技术提炼 51
2.7.1防止重复计数 51
2.7.2通过array_unique()函数获取网站当月IP访问量 52
2.7.3将数组中的数据写入到字符串中 53
2.7.4动态生成柱形图分析网站访问量 54
2.8本章小结 54
第3章上传与下载模块(PHP+Ajax+MySQL实现) 55
视频讲解:38分钟
3.1上传与下载模块概述 56
3.1.1模块概述 56
3.1.2功能结构 56
3.1.3程序预览 56
3.2数据库设计 58
3.2.1数据库分析 58
3.2.2创建数据表 59
3.2.3数据库连接文件 59
3.3用户注册 60
3.3.1注册模块概述 60
3.3.2注册页面设计 61
3.3.3Ajax无刷新技术验证注册信息 62
3.3.4注册信息处理 63
3.4用户登录 64
3.4.1登录模块概述 64
3.4.2用户权限输出以及空间使用
计算 64
3.4.3为用户划分个人空间文件目录 65
3.4.4防止用户文件目录的非法访问 66
3.5找回密码 66
3.5.1找回密码概述 66
3.5.2找回密码页面设计 67
3.5.3找回密码处理 68
3.6文件上传 69
3.6.1文件上传概述 69
3.6.2文件上传表单设计 70
3.6.3文件上传处理 70
3.7文件下载 72
3.7.1功能概述 72
3.7.2通过下载码下载文件 73
3.7.3同步删除文件以及释放用户空间 75
3.8后台管理 76
3.8.1后台管理概述 76
3.8.2用户权限管理页面设计 76
3.8.3更改用户权限表单设计 77
3.8.4执行权限更改操作 78
3.9技术提炼 79
3.9.1php.ini配置文件 79
3.9.2上传表单设置 80
3.9.3预定义变量$_FILES 81
3.9.4上传文件函数 82
3.9.5多文件上传 82
3.9.6文件下载 83
3.10本章总结 84
第4章FTP管理系统(PHP+Session实现) 85
视频讲解:8分钟
4.1FTP管理系统概述 86
4.1.1模块概述 86
4.1.2功能结构 86
4.1.3程序预览 86
4.2FTP环境搭建 88
4.2.1FTP服务器端概述 88
4.2.2Serv-U的安装和配置 88
4.3用户登录 91
4.3.1用户登录功能概述 91
4.3.2登录页面设计 92
4.3.3系统连接公共文件 93
4.4根目录操作 93
4.4.1根目录功能概述 93
4.4.2遍历文件根目录 94
4.4.3删除文件目录 95
4.4.4在根目录中创建新目录 96
4.4.5上传文件到根目录下 97
4.5子目录操作 97
4.5.1子目录功能概述 97
4.5.2浏览子目录下的文件 98
4.5.3远程文件下载 99
4.5.4文件移动 101
4.5.5更改文件名称 101
4.6技术提炼 102
4.6.1FTP文件操作技术 102
4.6.2循环输出技术 107
4.6.3应用CSS设置屏幕滚动条技术 108
4.7本章小结 109
第5章假日公告管理模块(PHP+jQuery+MySQL实现) 110
视频讲解:12分钟
5.1假日公告管理模块概述 111
5.1.1功能结构 111
5.1.2程序预览 111
5.2关键技术 113
5.2.1数据库的连接与数据操作 113
5.2.2通过超链接传递值 114
5.2.3单文件上传 115
5.2.4多图片上传 116
5.2.5读取指定目录中的目录及文件 116
5.2.6使用jQuery控制弹出公告信息 117
5.3数据库设计 120
5.3.1数据库分析 120
5.3.2创建数据库和数据表 120
5.4用户登录 121
5.4.1用户登录概述 121
5.4.2用户登录功能实现过程 121
5.5假日公告发布 122
5.5.1假日公告发布概述 122
5.5.2假日公告信息发布实现过程 123
5.6假日公告取消 125
5.6.1假日公告取消概述 125
5.6.2浏览公告信息 125
5.6.3取消假日公告 126
5.7假日公告信息管理 126
5.7.1假日公告信息管理概述 126
5.7.2假日公告信息管理实现过程 127
5.8本章小结 129
第6章分页显示模块(PHP+Ajax+Smarty+PDO实现) 130
视频讲解:48分钟
6.1分页显示模块概述 131
6.1.1模块概述 131
6.1.2功能结构 131
6.1.3程序预览 131
6.2面向对象分页 132
6.2.1Smarty模板的安装和配置 132
6.2.2加载PDO数据库抽象层 133
6.2.3分页类模块的页面设计 134
6.2.4分页类模块的程序开发 134
6.3超长文本分页 135
6.3.1超长文本分页功能概述 135
6.3.2超长文本分页功能实现过程 136
6.4Ajax无刷新分页 137
6.4.1Ajax无刷新分页功能概述 137
6.4.2Ajax无刷新分页功能实现过程 137
6.5标准分页 139
6.5.1PHP标准分页功能概述 139
6.5.2PHP标准分页功能实现过程 139
6.6跳转分页 142
6.6.1PHP跳转分页功能概述 142
6.6.2PHP跳转分页功能的实现过程 143
6.7上下分页 146
6.7.1PHP上下分页功能概述 146
6.7.2PHP上下分页功能的实现过程 147
6.8技术提炼 148
6.8.1自定义函数替换超长文本中的特殊字符技术 148
6.8.2自定义函数控制超长文本的输出技术 149
6.8.3连接数据库类的创建 150
6.8.4操作数据库类的创建 151
6.8.5分页类的创建 151
6.8.6类的实例化 153
6.9本章小结 154
第7章论坛模块(PHP+MySQL实现) 155
视频讲解:4小时22分钟
7.1论坛模块概述 156
7.1.1系统功能结构 156
7.1.2程序预览 157
7.2热点关键技术 160
7.2.1树状导航菜单 160
7.2.2帖子置顶 161
7.2.3帖子引用 163
7.2.4帖子收藏 164
7.2.5屏蔽回帖 165
7.2.6连接远程MySQL数据库 166
7.2.7小纸条信息的无刷新输出 168
7.2.8清除个人站内邮件 168
7.3数据库设计 171
7.3.1数据库分析 171
7.3.2创建数据库中的数据表 171
7.4帖子的发布、浏览和回复 172
7.4.1帖子的发布、浏览和回复概述 172
7.4.2帖子发布功能实现 174
7.4.3帖子浏览功能实现 177
7.4.4帖子回复功能实现 182
7.5帖子搜索 185
7.5.1帖子搜索概述 185
7.5.2帖子搜索功能实现 186
7.6帖子管理 187
7.6.1帖子管理概述 187
7.6.2结帖功能实现 188
7.6.3设置帖子类别 189
7.6.4顶帖管理功能的实现 192
7.7个人信息管理 193
7.7.1个人信息管理概述 193
7.7.2我的信箱管理 194
7.7.3我的好友管理 198
7.8后台管理 200
7.8.1后台管理概述 200
7.8.2后台登录 200
7.8.3后台管理主页设计 202
7.9本章小结 204
第8章在线支付模块(PHP+Smarty+MySQL实现) 205
视频讲解:24分钟
8.1在线支付模块概述 206
8.1.1功能概述 206
8.1.2在线支付操作流程 206
8.1.3程序预览 207
8.2数据库设计 208
8.2.1创建数据库 208
8.2.2创建数据表 209
8.3会员信息模块设计. 210
8.3.1会员信息模块概述 210
8.3.2会员中心 210
8.3.3安全退出 212
8.4收银台模块设计 212
8.4.1收银台模块概述 212
8.4.2显示订单 213
8.4.3填写订单 213
8.4.4处理订单 214
8.4.5生成订单 216
8.4.6订单预览、打印 217
8.5订单查询 219
8.5.1订单查询功能概述 219
8.5.2订单查询功能的实现 219
8.6技术提炼 221
8.6.1收货人信息验证 221
8.6.2动态生成订单号 224
8.6.3WebBrowser打印 224
8.6.4支付宝支付 225
8.7本章小结 226
第9章留言本模块(PHP+MySQL 5.0实现) 227
视频讲解:30分钟
9.1留言本模块概述 228
9.1.1模块概述 228
9.1.2功能结构 228
9.1.3程序预览 229
9.2数据库和数据表设计 230
9.2.1数据库设计 230
9.2.2数据表设计 231
9.2.3连接数据库 231
9.3发表留言 231
9.3.1发表留言概述 231
9.3.2发表留言页面设计 232
9.3.3将用户留言内容保存到数据库中 234
9.4查看留言 235
9.4.1查看留言概述 235
9.4.2查看留言页面设计 235
9.4.3在页面中输出留言信息 236
9.4.4将留言信息进行分页显示 237
9.5编辑留言 238
9.5.1编辑留言概述 238
9.5.2编辑留言页面设计 239
9.5.3编辑留言内容功能实现 240
9.6删除留言 241
9.6.1删除留言概述 241
9.6.2删除留言页面设计 242
9.6.3删除留言内容功能实现 243
9.7查询留言 243
9.7.1查询留言概述 243
9.7.2查询留言页面设计 244
9.7.3查询留言内容 244
9.8技术提炼 245
9.8.1将数据保存到数据库中 245
9.8.2通过JavaScript实现弹出窗口 245
9.8.3包含文件函数 246
9.8.4MySQL数据库的函数 247
9.9本章小结 247
第10章博客模块(PHP+MySQL+mysqli实现) 248
视频讲解:14分钟
10.1博客模块概述 249
10.1.1模块概述 249
10.1.2功能结构 249
10.1.3程序预览 249
10.2数据库设计 251
10.2.1创建数据库与数据表 252
10.2.2数据库操作类 254
10.3博客空间个人首页 257
10.3.1博客空间个人首页概述 257
10.3.2首页模块实现过程 258
10.4我的文章 260
10.4.1我的文章概述 260
10.4.2我的文章功能实现过程 261
10.4.3文章浏览功能实现过程 262
10.5文章管理 264
10.5.1文章管理概述 264
10.5.2发表文章功能实现过程 265
10.5.3文章列表功能实现过程 267
10.5.4文章类别功能实现过程 271
10.6用户管理 274
10.6.1用户管理概述 274
10.6.2用户管理功能实现过程 274
10.6.3查询博客功能实现过程 276
10.6.4推荐博客功能实现过程 277
10.7技术提炼 278
10.7.1文件包含技术 278
10.7.2SQL查询技术 279
10.7.3会话处理技术 280
10.7.4冻结、解冻技术 281
10.7.5配置文件 282
10.7.6公共函数 282
10.8本章小结 283
第11章创建PDF文档模块(PHP+MySQL实现) 284
视频讲解:30分钟
11.1创建PDF文档模块概述 285
11.1.1模块概述 285
11.1.2功能结构 285
11.1.3程序预览 285
11.2数据库设计 287
11.2.1创建数据库 287
11.2.2创建数据表 287
11.2.3连接数据库 288
11.3模块国际化设置 288
11.4文章浏览 289
11.4.1文章浏览概述 289
11.4.2文章列表实现过程 290
11.4.3文章浏览实现过程 291
11.4.4PDF文档创建和下载 293
11.5文章添加 294
11.5.1文章添加概述 294
11.5.2文章添加实现过程 294
11.6技术提炼 295
11.6.1FPDF概述 296
11.6.2创建简单的PDF文档 296
11.6.3在PDF中插入图片 298
11.6.4设置PDF文档的页眉与页脚 298
11.6.5在PDF文档中绘制表格 300
11.6.6在PDF文档中输出中文 301
11.6.7PDF文档下载 302
11.7本章小结 303
第12章邮件发送系统 (PHP+Zend_Mail组件实现) 304
视频讲解:45分钟
12.1邮件发送系统概述 305
12.1.1电子邮件简介 305
12.1.2功能结构 305
12.1.3程序预览 305
12.2邮件收发的原理 307
12.3通过WinWebMail配置邮件服务器 308
12.4登录邮件服务器 310
12.5邮件收发 311
12.5.1邮件收发模块概述 311
12.5.2发送邮件 311
12.5.3接收邮件 314
12.5.4查看邮件详细内容 317
12.5.5下载附件 320
12.5.6删除邮件 321
12.5.7查找邮件 321
12.6注销系统 325
12.7技术提炼 325
12.7.1利用mail()函数发送电子邮件 325
12.7.2带附件的邮件发送 326
12.7.3利用fsockopen()函数接收电子邮件 327
12.7.4封装邮件操作类 328
12.8本章小结 334
序言
编写目的与背景
众所周知,当前社会需求和高校课程设置严重脱节,一方面企业找不到可迅速上手的人才,另一方面大学生就业难。如果有一些面向工作应用的案例参考书,让大学生得以参考,并能亲手去做,势必能缓解这种矛盾。本书就是这样一本书:项目开发案例型的、面向工作应用的软件开发类图书。编写本书的首要目的就是架起让学生从学校走向社会的桥梁。
其次,本书以完成小型项目为目的,让学生切身感受到软件开发给工作带来实实在在的用处和方便,并非只是枯燥的语法和陌生的术语,从而激发学生学习软件的兴趣,让学生变被动学习为自主自发学习。
第三,本书的项目开发案例过程完整,不但适合在学习软件开发时作为小型项目开发的参考书,而且可以作为毕业设计的案例参考书。
第四,丛书第1版于2008年6月出版,于2011年1月改版,因为编写细腻,配备全程视频备受读者瞩目,丛书累计销售16万册,成为近年来最受欢迎的软件开发项目案例类丛书之一。
在以上背景下,我们根据读者朋友的反馈,与时俱进,对丛书进行了改版。
本书特点
视频讲解
对于初学者来说,视频讲解是最好的导师,它能够引导初学者快速入门,使初学者感受到编程的快乐和成就感,增强进一步学习的信心。鉴于此,本书为每一个案例都配备了视频讲解,初学者可以通过视频讲解实现案例中的功能。
典型案例
本书案例均从实际应用角度出发,应用了当前流行的技术,涉及的知识广泛,读者可以从每个案例中积累丰富的实战经验。
代码注释
为了便于读者阅读程序代码,书中的代码均提供了详细的注释,并且整齐地纵向排列,可使读者快速领略作者意图。
? 代码贴士
案例类书籍通常会包含大量的程序代码,冗长的代码往往令初学者望而生畏。为了方便读者阅读和理解代码,本书避免了连续大篇幅的代码,将其分割为多个部分,并对重要的变量、方法和知识点设计了独具特色的代码贴士。
? 知识扩展
为了增加读者的编程经验和技巧,书中每个案例都标记有注意、技巧等提示信息,并且在每章中都提供有一项专题技术。
本书约定
由于篇幅有限,本书每章并不能逐一介绍案例中的各模块。作者选择了基础和典型的模块进行介绍,对于功能重复的模块,由于技术、设计思路和实现过程基本雷同,因此没有在书中体现。读者在学习过程中若有相关疑问,请登录本书官方网站。本书中涉及的功能模块在光盘中都附带有视频录像,方便读者学习。
适合读者
本书适合作为计算机相关专业的大学生、软件开发相关求职者和爱好者的毕业设计和项目开发的参考书。
本书服务
为了给读者提供更为方便快捷的服务,读者可以登录本书官方网站:www.rjkflm.com,或者加入QQ:6751066进行交流。
本书作者
本书由明日科技软件开发团队组织编写,主要由辛洪郁、张鑫执笔,如下人员也参与了本书的编写工作,他们是:王雨竹、王小科、王国辉、杨丽、顾彦玲、赛奎春、高春艳、陈英、宋禹蒙、刘佳、刘莉莉、陈丹丹、隋光宇、郭鑫、刘志铭、李伟、张金辉、李慧、刘欣、李继业、潘凯华、赵永发、寇长梅、赵会东、王敬洁、李浩然、苗春义、刘清怀、张世辉、张领等,在此一并感谢!
在编写本书的过程中,我们本着科学、严谨的态度,力求精益求精,但错误、疏漏之处在所难免,敬请广大读者批评指正。
感谢您购买本书,希望本书能成为您的良师益友,成为您步入编程高手之路的踏脚石。
宝剑锋从磨砺出,梅花香自苦寒来。祝读书快乐!
编者
| ISBN | |
|---|---|
| 出版社 | 清华大学出版社 |
| 作者 | 于国槐 |
| 尺寸 | 16 |