
本书以会议记录管理系统、留言本、在线投票系统、个人网络日记、在线论坛、博客、物流管理系统、在线考试管理系统、明日编程词典、明日科技企业网站、明日软件导航系统、播客、在线音乐系统、电子邮件系统、BCTY365网上社区、易查供求信息网、图书馆管理系统、办公自动化管理系统、电子商务网站、明日知道网站和新闻发布系统21个实际项目开发程序为案例,从软件工程的角度出发,按照项目的开发顺序,系统、全面地介绍了程序的开发流程。从开发背景、需求分析、系统功能分析、数据库分析、数据库结构、系统开发到系统的编译发行,每一过程都进行了详细的介绍。 本书所附配套光盘提供了书中所有案例的全部源代码,所有源代码都经过精心调试,在Windows XP、Windows Server 2003和Windows 7下全部通过,能够正常运行。 本书案例涉及行业广泛,实用性非常强。通过对本书的学习,读者可以了解各个行业的特点,能够针对某一行业进行软件开发;也可以通过光盘中提供的案例源代码和数据库进行二次开发,以减少开发系统所需要的时间。
前 言 PHP 是一种在服务器端执行的嵌入HTML文档的脚本语言,自1994年诞生至今,已成为全球十分普及的互联网开发语言之一。随着PHP技术的成熟和完善,PHP已经从一种针对网络开发的计算机语言发展成为一个适合于企业级部署的技术平台,IBM、Cisco、西门子、Adobe等公司均在使用PHP技术。在权威机构的调查报告中,PHP技术在全球互联网社区领域的应用位居第一。在Alexa中文网站500强中,394家网站全部或部分应用着PHP技术。 『成书缘由』 俗话说“巧妇难为无米之炊”,作为一名有经验的程序开发人员,都有自己积累的编程资源。在软件开发过程中,他们可以借助编程资源每天写出上万行代码,还可以利用已有的项目资源,迅速完成一个新产品的开发。可以说,编程资源是开发高手的“左膀右臂”。离开了这些编程资源,开发高手的功力将大大降低。 目前初学编程者普遍缺乏编程资源,尤其是项目开发资源和项目开发经验。为此,我们编写了本书。本书精选了21个实用软件项目,涵盖了ThinkPHP框架应用项目、Zend Framework框架应用项目、PHP+MySQL实战开发项目,是进行Web项目开发必备的参考书。通过本书,读者不但可以快速提升开发能力和经验,还可以快速组建自己的项目资源库。 『本书内容』 本书分为3篇21章内容,共计21个实践项目。所选项目均来源于开发一线,具有很好的实践价值。 第一篇:初级项目篇。这一篇介绍了会议记录管理系统、留言本、在线投票系统、个人网络日记等4个初级项目。 第二篇:中级项目篇。这一篇介绍了在线论坛、博客、物流管理系统、在线考试管理系统、明日编程词典、明日科技企业网站、明日软件导航系统、播客、在线音乐系统、电子邮件系统等10个中级项目。 第三篇:高级项目篇。这一篇介绍了BCTY365网上社区、易查供求信息网、图书馆管理系统、办公自动化管理系统、电子商务网站、明日知道网站、新闻发布系统等7个高级项目。 『本书特色』 项目丰富,实用、超值。本书精选了21个项目,涵盖了项目开发中应用的各方面技术,将这些项目稍加修改,即可形成一个完整的商业系统项目。 易学、易用。本书中的每个项目都提供了关键代码解析(对代码中重要的对象、方法、语句等进行重点介绍),读者在阅读时可以透彻理解相关代码,活学活用。 编码规范,注释详尽。本书程序编码规范,几乎所有代码都提供了详细注释。 提供15小时视频录像。本书提供了15小时的项目开发视频录像,读者可以边看边学,快速提高。 『超值DVD光盘』 为了帮助读者学习和使用书中的实例,本书附带1张DVD光盘。光盘中不但提供了书中所有项目的源代码、素材,还提供多个项目的视频开发录像。为帮助零基础者使用本书,我们精心录制了15小时的基础知识学习视频和项目开发过程视频,读者可以根据自身需要选择学习。 为方便读者使用,光盘中提供了光盘使用说明文档,指导读者配置和使用光盘中的源程序。 『本书适用人群』 本书非常适合以下人员阅读: 从事PHP编程行业的开发人员 有一定编程基础,想进一步提高技能的人员 大、中专院校的老师和学生 即将走向相关工作岗位的大学毕业生 相关培训机构的老师和学员 PHP编程爱好者 『学习答疑』 如果您在学习或使用本书的过程中遇到问题,可以通过如下方式与我们联系。 服务网站:www.mingribook.com 服务QQ:4006751066 服务信箱:mingrisoft@mingrisoft.com 服务电话:0431-84978981/84978982 学习社区:www.mrbccd.com 我们承诺将在5个工作日内给您提供解答。 『本书作者』 本书由明日科技组织编写,参加编写的有徐康明、辛洪郁、刘佳、高春艳、王小科、张金辉、苗春义、刘志铭、赛奎春、张世辉、王国辉、陈丹丹、杨丽、王敬洁、陈英等。由于作者水平有限,疏漏和不足之处在所难免,请广大读者朋友批评指正。 软件开发工作是相当复杂的,对于已经做完或者正在做着的开发工作,永远都有一种更好、更聪明或更快的方法来完成它。我们虽然提供了这些项目的开发思路、方法和完整开发过程,但希望读者不要拘泥于这些已提供的方法,要不断演进并寻找更好的方法,学会享受挑战,并将之看作臻于精熟、成为高手的通道。 明日科技 2014年1月
目 录 第一篇 初级项目篇 第1章 会议记录管理系统 (PHP+ADODB+Access实现) 2 1.1 开发背景 3 1.2 需求分析 3 1.3 系统分析 3 1.3.1 系统目标 3 1.3.2 系统功能结构 4 1.3.3 系统预览 4 1.3.4 开发环境 5 1.3.5 文件夹组织结构 6 1.4 数据库设计 6 1.4.1 数据库分析 6 1.4.2 创建数据库和数据表 8 1.4.3 数据库连接文件 9 1.5 登录模块设计 9 1.5.1 登录模块概述 9 1.5.2 用户权限判断技术 10 1.5.3 用户登录实现过程 10 1.6 首页设计 12 1.6.1 首页概述 12 1.6.2 首页设计技术 12 1.6.3 首页实现过程 13 1.7 用户个人信息模块设计 15 1.7.1 用户个人信息模块概述 15 1.7.2 用户个人信息模块技术 15 1.7.3 用户个人信息实现过程 16 1.7.4 安全退出 17 1.8 会议记录添加模块 17 1.8.1 会议记录添加模块概述 17 1.8.2 会议记录信息验证技术 18 1.8.3 上传文件处理技术 18 1.8.4 会议记录添加的实现过程 20 1.9 浏览会议记录模块设计 22 1.9.1 浏览会议记录模块概述 22 1.9.2 WebBrowser打印技术 22 1.9.3 Excel报表生成技术分析 23 1.9.4 文本文件中数据的获取 技术分析 24 1.9.5 浏览会议记录实现过程 24 1.9.6 会议记录详细信息浏览 实现过程 25 1.10 查找会议记录模块设计 27 1.10.1 查找会议记录模块概述 27 1.10.2 分类查找技术 27 1.10.3 查找会议记录实现过程 28 1.11 ADODB连接数据库技术专题 29 1.11.1 ADODB简介 30 1.11.2 ADODB的安装 30 1.11.3 ADODB常用函数及说明 30 1.11.4 不同数据库之间的转换 32 1.12 开发总结 32 第2章 留言本 (PHP 5.3+MySQL 5.5实现) 33 2.1 开发背景 34 2.2 系统分析 34 2.2.1 程序业务流程 34 2.2.2 系统预览 34 2.2.3 文件夹组织结构 36 2.3 数据库设计 36 2.3.1 数据库概要说明 36 2.3.2 数据库概念设计 37 2.3.3 数据库逻辑设计 38 2.4 公共模块设计 39 2.4.1 数据库连接文件 39 2.4.2 将文本中的字符转换为 HTML标识符 40 2.4.3 JavaScript脚本 41 2.5 首页模块设计 42 2.5.1 首页设计概述 42 2.5.2 switch和include语句 43 2.5.3 首页实现过程 44 2.6 用户注册模块设计 46 2.6.1 用户注册模块概述 46 2.6.2 JavaScript脚本验证表单元素 46 2.6.3 用户注册模块实现过程 48 2.7 添加留言模块设计 49 2.7.1 添加留言模块概述 49 2.7.2 mysql_query()函数执行 SQL语句 50 2.7.3 添加留言模块实现过程 50 2.8 查看留言模块设计 51 2.8.1 查看留言模块概述 51 2.8.2 验证数据类型与取整 52 2.8.3 查看留言模块实现过程 52 2.9 编辑留言模块设计 55 2.9.1 编辑留言模块概述 55 2.9.2 JavaScript脚本控制弹出 对话框 55 2.9.3 编辑留言模块实现过程 56 2.10 查询留言模块设计 57 2.10.1 查询留言模块概述 57 2.10.2 通过mysql_fetch_array 函数返回结果集 57 2.10.3 查询留言模块实现过程 58 2.11 版主模块设计 58 2.11.1 版主模块概述 58 2.11.2 验证登录用户是否是版主 59 2.11.3 版主管理模块实现过程 60 2.12 开发技巧与难点分析 61 2.12.1 过滤敏感词 61 2.12.2 分页显示留言信息 62 2.13 开发总结 64 第3章 在线投票系统(PHP+ Jpgraph+ MySQL 5.5实现) 65 3.1 系统设计思路 66 3.1.1 功能阐述 66 3.1.2 程序业务流程 66 3.1.3 系统预览 66 3.1.4 文件夹组织结构 67 3.2 数据库设计 68 3.2.1 数据库概要说明 68 3.2.2 数据库概念设计 68 3.2.3 数据库逻辑设计 70 3.3 投票模块设计 71 3.3.1 投票模块概述 71 3.3.2 创建数据库操作类 71 3.3.3 投票模块实现过程 72 3.4 分析投票结果模块设计 75 3.4.1 分析投票结果模块概述 75 3.4.2 Jpgraph类库技术 75 3.4.3 分析投票结果模块实现过程 76 3.5 留言板模块设计 77 3.5.1 留言板模块概述 77 3.5.2 如何调用数据库操作类 78 3.5.3 留言板模块实现过程 78 3.6 主题搜索模块设计 79 3.6.1 主题搜索及其结果页面 运行效果 79 3.6.2 模糊查询技术 80 3.6.3 主题搜索模块实现过程 81 3.7 Jpgraph类库技术专题 83 3.7.1 创建饼形图分析2013年 图书销量 83 3.7.2 创建折线图分析图书销 售走势 84 3.8 开发总结 85 第4章 个人网络日记 (PHP+Access实现) 86 4.1 开发背景 87 4.2 系统设计 87 4.2.1 系统目标 87 4.2.2 系统功能结构 87 4.2.3 系统预览 88 4.2.4 文件夹组织结构 89 4.3 网络日记数据库设计 89 4.3.1 数据库概念设计 89 4.3.2 创建数据库及表 91 4.3.3 数据库逻辑结构设计 93 4.4 技术公关 95 4.4.1 PHP连接Access数据库 95 4.4.2 通过SESSION变量获取 用户名来修改密码 95 4.4.3 通过密保方式找回密码 96 4.4.4 通过证件方式找回密码 96 4.5 网络日记模块设计 97 4.5.1 网络日记模块概述 97 4.5.2 日期、时间处理技术 97 4.5.3 FCK编辑器技术 99 4.5.4 网页闹钟功能实现过程 101 4.5.5 事物标题添加实现过程 101 4.5.6 日记记录功能实现过程 102 4.5.7 个人资料功能实现过程 104 4.5.8 修改密码功能实现过程 106 4.6 Access数据库专题 107 4.6.1 PHP与Access数据库的 连接 107 4.6.2 PHP连接带密码的Access 数据库 108 4.7 开发总结 109 第二篇 中级项目篇 第5章 在线论坛 (PHP 5.3+MySQL 5.5实现) 112 5.1 系统设计思路 113 5.1.1 功能阐述 113 5.1.2 程序业务流程 113 5.1.3 系统预览 114 5.1.4 文件夹组织结构 116 5.2 数据库设计 117 5.2.1 数据库概要说明 117 5.2.2 数据库概念设计 117 5.2.3 数据库逻辑设计 118 5.3 用户注册模块设计 119 5.3.1 用户注册模块概述 119 5.3.2 JavaScript脚本和include() 包含语句 120 5.3.3 用户注册模块实现过程 122 5.4 用户登录模块设计 124 5.4.1 用户登录模块概述 124 5.4.2 通过JavaScript脚本判断 用户名和密码是否为空 124 5.4.3 系统登录模块实现过程 125 5.5 帖子分类管理模块设计 126 5.5.1 帖子分类管理模块概述 126 5.5.2 使用SQL语句查询数据 技术 127 5.5.3 帖子分类管理模块实现 过程 128 5.6 发帖模块设计 130 5.6.1 发帖模块概述 130 5.6.2 while循环语句技术 131 5.6.3 发帖模块实现过程 131 5.7 回帖模块设计 133 5.7.1 回帖模块概述 133 5.7.2 MySQL函数处理技术 134 5.7.3 回帖模块实现过程 134 5.8 后台管理模块设计 136 5.8.1 后台管理模块概述 136 5.8.2 URL编码和switch框架 技术 136 5.8.3 后台主页实现过程 137 5.8.4 栏目管理模块实现过程 139 5.9 加密技术专题 142 5.9.1 URL编码加密技术 142 5.9.2 base64编码加密技术 142 5.9.3 crypt()加密技术 143 5.9.4 md5()加密技术 143 5.10 开发总结 144 第6章 博客 (PHP+MySQL+mysqli实现) 145 6.1 开发背景 146 6.2 需求分析 146 6.3 系统设计 146 6.3.1 系统目标 146 6.3.2 系统功能结构 147 6.3.3 系统功能预览 148 6.3.4 文件夹组织结构 150 6.4 数据库设计 150 6.4.1 数据库概念设计 151 6.4.2 数据库物理结构设计 151 6.5 数据库操作类、配置文件及公共 函数文件 155 6.5.1 数据库操作类 155 6.5.2 配置文件 158 6.5.3 公共函数 158 6.6 博客空间个人首页设计 159 6.6.1 首页模块概述 159 6.6.2 文件包含技术 160 6.6.3 首页模块实现过程 161 6.7 我的文章模块设计 163 6.7.1 我的文章模块概述 163 6.7.2 SQL语句查询技术 164 6.7.3 我的文章模块实现过程 165 6.7.4 文章浏览模块实现过程 166 6.8 文章管理模块设计 168 6.8.1 文章管理模块概述 168 6.8.2 会话处理技术 169 6.8.3 发表文章模块实现过程 170 6.8.4 文章列表模块实现过程 173 6.8.5 文章类别模块实现过程 177 6.9 用户管理模块设计 180 6.9.1 用户管理模块概述 180 6.9.2 冻结、解冻技术 180 6.9.3 用户管理模块实现过程 181 6.10 开发总结 185 第7章 物流管理系统 (PHP+MySQL实现) 186 7.1 开发背景 187 7.2 系统分析 187 7.2.1 需求分析 187 7.2.2 可行性分析 187 7.3 系统设计 188 7.3.1 系统目标 188 7.3.2 系统功能结构 188 7.3.3 系统预览 189 7.3.4 文件夹组织结构 192 7.4 数据库设计 192 7.4.1 数据库分析 192 7.4.2 数据库概念设计 192 7.4.3 创建数据库及数据表 194 7.5 网站首页设计 196 7.5.1 网站首页概述 196 7.5.2 网站首页设计技术 197 7.5.3 网站首页的实现过程 198 7.6 车源信息查询模块设计 199 7.6.1 车源信息查询模块概述 199 7.6.2 模糊查询技术 199 7.6.3 车源信息查询模块的实 现过程 201 7.7 发货单管理模块设计 202 7.7.1 发货单管理模块概述 202 7.7.2 发货单编号生成技术 202 7.7.3 发货单填单的实现过程 205 7.7.4 发货单查询的实现过程 207 7.7.5 发货单打印的实现过程 209 7.8 回执单验收管理模块设计 210 7.8.1 回执单模块概述 210 7.8.2 MySQL函数库函数应用 技术 210 7.8.3 回执单验收模块的实现 过程 212 7.9 基础信息管理模块设计 214 7.9.1 基础信息管理模块概述 214 7.9.2 面向对象封装密码修改类 214 7.9.3 客户信息管理的实现过程 215 7.9.4 车源信息管理的实现过程 217 7.10 开发技巧与难点分析 220 7.10.1 应用存储过程实现管理 员登录 220 7.10.2 应用正则表达式验证电话 号码 222 7.11 报表打印技术专题 223 7.12 开发总结 226 第8章 在线考试管理系统(PHP+AJAX+ MS SQL Server 2000实现) 227 8.1 开发背景 228 8.2 系统分析 228 8.2.1 需求分析 228 8.2.2 可行性分析 228 8.3 系统设计 229 8.3.1 系统目标 229 8.3.2 系统功能结构 229 8.3.3 系统流程图 230 8.3.4 系统预览 231 8.3.5 文件夹组织结构 232 8.4 数据库设计 233 8.4.1 数据库分析 233 8.4.2 数据库概念设计 233 8.4.3 数据库物理结构 234 8.5 前台首页设计 236 8.5.1 前台首页概述 236 8.5.2 PHP连接MS SQL Server 数据库技术 237 8.5.3 前台首页的实现过程 237 8.6 考生信息模块设计 238 8.6.1 考生信息模块概述 238 8.6.2 AJAX无刷新技术 239 8.6.3 考生注册的实现过程 241 8.7 在线考试模块设计 245 8.7.1 在线考试模块的概述 245 8.7.2 考试题的输出和答案的 判断技术 246 8.7.3 应用AJAX在线答题的 实现过程 247 8.7.4 分数统计和成绩保存的 实现过程 250 8.8 后台首页设计 251 8.8.1 后台首页概述 251 8.8.2 后台首页的设计技术 252 8.8.3 后台首页的实现过程 252 8.9 考题信息管理模块设计 253 8.9.1 考题信息管理模块的概述 253 8.9.2 动态输出考题类别技术 253 8.9.3 考题信息添加的实现过程 254 8.9.4 查询考题信息的实现过程 256 8.10 开发技巧与难点分析 260 8.10.1 考生登录编号的获取 260 8.10.2 通过AJAX技术实现计 时与显示剩余时间 260 8.11 AJAX无刷新技术专题 262 8.11.1 AJAX概述 262 8.11.2 AJAX的优点 263 8.11.3 AJAX的工作原理 263 8.11.4 AJAX的工作流程 265 8.11.5 AJAX中的核心技术 XMLHttpRequest 265 8.12 开发总结 266 第9章 明日编程词典——在线体验版 (PHP+Smarty+PDO+MS SQL Server 2000实现) 267 9.1 明日编程词典概述 268 9.2 开发背景 268 9.3 需求分析 268 9.4 系统设计 269 9.4.1 系统功能结构 269 9.4.2 系统功能预览 269 9.4.3 文件夹架构 271 9.5 数据库设计 272 9.5.1 创建数据库 272 9.5.2 创建数据表 273 9.5.3 分离、附加数据库 274 9.6 技术攻关 276 9.6.1 树状导航菜单设计 276 9.6.2 向Flash中传递参数 279 9.6.3 Smarty注册模板函数—— 读取文件 281 9.7 Smarty模板 282 9.8 PDO数据库抽象层 283 9.9 首页设计 285 9.9.1 首页概述 285 9.9.2 Frame框架技术 285 9.9.3 首页的实现过程 286 9.10 网站模块导航设计 287 9.10.1 网站模块导航概述 287 9.10.2 超链接中的图片切换技术 288 9.10.3 网站模块导航实现过程 288 9.11 内容树状导航设计 290 9.11.1 内容树状导航概述 290 9.11.2 Smarty模板技术 291 9.11.3 内容树状导航实现过程 293 9.12 内容展示区设计 297 9.12.1 内容展示区概述 297 9.12.2 文件检测技术 298 9.12.3 内容展示区实现过程 298 9.13 开发问题解析 298 9.14 开发总结 299 第10章 明日科技企业网站 (ThinkPHP+MySQL实现) 300 10.1 开发背景 301 10.2 系统设计 301 10.2.1 系统目标 301 10.2.2 系统功能结构 301 10.2.3 系统预览 302 10.3 数据库设计 304 10.3.1 数据库概要说明 304 10.3.2 数据库概念设计 304 10.3.3 数据库逻辑设计 305 10.4 主页面设计 306 10.4.1 主页面概述 306 10.4.2 jQuery照片轮显技术 307 10.4.3 主页面实现过程 308 10.5 业界新闻页面设计 309 10.5.1 业界新闻页面概述 309 10.5.2 ThinkPHP框架的导包 和加载技术 310 10.5.3 业界新闻页面实现过程 311 10.6 图书开发页面设计 312 10.6.1 图书开发页面概述 312 10.6.2 图片平滑滚动技术 312 10.6.3 图书开发模块实现过程 313 10.7 后台登录模块 318 10.7.1 后台登录模块概述 318 10.7.2 管理员权限控制技术 318 10.7.3 后台登录模块实现过程 319 10.8 后台管理模块设计 320 10.8.1 后台管理模块概述 320 10.8.2 Framework框架技术 320 10.8.3 后台模块实现过程 322 10.9 ThinkPHP框架技术专题(一) 326 10.9.1 基础概念 326 10.9.2 下载ThinkPHP框架 327 10.9.3 环境要求 327 10.9.4 使用ThinkPHP框架开发 的目录结构 327 10.9.5 自动生成目录 328 10.10 开发总结 329 第11章 明日软件导航系统 (ThinkPHP+MySQL实现) 330 11.1 开发背景 331 11.2 系统设计 331 11.2.1 系统目标 331 11.2.2 系统功能结构 331 11.2.3 系统预览 332 11.3 数据库设计 333 11.3.1 数据库概念设计 333 11.3.2 数据库逻辑设计 334 11.4 主页面设计 335 11.4.1 主页面概述 335 11.4.2 按钮动态变色技术 336 11.4.3 主页面实现过程 337 11.5 软件下载设计 340 11.5.1 软件下载概述 340 11.5.2 软件下载技术 340 11.5.3 软件下载实现过程 341 11.6 后台登录模块 341 11.6.1 后台登录模块概述 341 11.6.2 后台登录模块技术 342 11.6.3 后台登录模块实现过程 342 11.7 后台管理模块设计 344 11.7.1 后台管理模块概述 344 11.7.2 动画效果技术 344 11.7.3 动画效果实现过程 346 11.7.4 无刷新技术分析 347 11.7.5 后台管理模块的实现过程 348 11.8 ThinkPHP框架技术专题(二) 350 11.8.1 Model模型 351 11.8.2 配置文件conf.php 352 11.9 开发总结 353 第12章 播客(PHP+Smarty+ MySQL 5.5+PDO实现) 354 12.1 系统设计思路 355 12.1.1 功能阐述 355 12.1.2 程序业务流程 356 12.1.3 系统预览 357 12.1.4 文件夹组织结构 359 12.2 数据库设计 359 12.2.1 数据库概念设计 359 12.2.2 数据库逻辑设计 360 12.3 在线播放模块设计 361 12.3.1 在线播放模块概述 361 12.3.2 视频文件播放技术 362 12.3.3 在线播放模块实现过程 363 12.4 热播排行模块设计 364 12.4.1 热播排行模块概述 364 12.4.2 自定义数据查询技术 365 12.4.3 热播排行模块实现过程 366 12.5 站内订阅模块设计 368 12.5.1 站内订阅模块概述 368 12.5.2 RSS订阅文件生成技术 368 12.5.3 站内订阅模块实现过程 370 12.6 播客个人主页模块设计 371 12.6.1 播客个人主页模块概述 371 12.6.2 分页技术 372 12.6.3 播客个人主页模块实现 过程 373 12.7 上传视频管理模块设计 377 12.7.1 上传视频管理模块概述 377 12.7.2 数据的删除、更新技术 378 12.7.3 上传视频管理模块实现 过程 378 12.8 开发技巧与难点分析 380 12.8.1 Smarty中的URL编码 380 12.8.2 PDO数据库抽象层的 应用 381 12.8.3 控制播放器窗口状态 383 12.8.4 AJAX无刷新评论 384 12.8.5 更多相关视频搜索 387 12.8.6 利用cookie技术实现浏 览记录 388 12.9 开发总结 390 第13章 在线音乐系统(PHP+Smarty+ PDO+MySQL实现) 391 13.1 开发背景 392 13.2 系统设计 392 13.2.1 系统目标 392 13.2.2 系统功能结构 392 13.2.3 系统预览 393 13.2.4 文件夹组织结构 394 13.3 数据库设计 394 13.3.1 数据库概要说明 394 13.3.2 数据库概念设计 395 13.3.3 数据库操作类与配置文件 395 13.4 在线音乐前台设计 396 13.4.1 前台页面概述 396 13.4.2 音乐的在线播放技术 397 13.4.3 音乐的同步播放技术 398 13.4.4 无刷新删除.m3u格式 文件技术 402 13.4.5 应用PDO连接MySQL 数据库 403 13.4.6 上传音频文件功能的 实现 405 13.4.7 在线试听功能的实现 410 13.4.8 循环和连续播放音乐 功能的实现 411 13.4.9 播放列表功能的实现 416 13.4.10 音乐下载功能的实现 418 13.4.11 收藏和播放其他网站 音乐功能的实现 419 13.5 在线音乐后台管理设计 421 13.5.1 后台页面概述 421 13.5.2 管理员权限设置技术 421 13.5.3 权限分配的实现过程 422 13.6 开发技巧与难点分析 424 13.7 开发总结 425 第14章 电子邮件系统(PHP+Zend Framework实现) 426 14.1 电子邮件系统概述 427 14.1.1 电子邮件简介 427 14.1.2 电子邮件基本原理 427 14.2 系统分析 428 14.2.1 需求分析 428 14.2.2 可行性分析 428 14.3 系统设计 429 14.3.1 系统目标 429 14.3.2 系统预览 429 14.3.3 文件夹组织结构 431 14.4 技术公关 432 14.4.1 安装、配置WinWebMail 邮件服务器 432 14.4.2 载入Zend框架 435 14.4.3 无刷新删除邮件地址 435 14.4.4 AJAX无刷新统计邮件 封数 436 14.5 邮件服务器登录模块设计 437 14.5.1 邮件服务器登录功能 概述 437 14.5.2 通过POP3服务器读取 指定用户的邮件 437 14.5.3 邮件服务器登录功能 实现 438 14.6 邮件发送模块设计 439 14.6.1 邮件发送功能概述 439 14.6.2 邮件发送技术 440 14.6.3 邮件群发技术 440 14.6.4 邮件中附件的发送技术 441 14.6.5 SMTP邮件发送功能实现 441 14.6.6 网络版邮件发送功能 实现 444 14.7 邮件接收模块设计 445 14.7.1 邮件接收功能概述 445 14.7.2 邮件操作技术 446 14.7.3 统计邮件数量功能的 实现 446 14.7.4 查看邮件功能的实现 447 14.7.5 删除邮件功能的实现 450 14.8 开发总结 451 第三篇 高级项目篇 第15章 BCTY365网上社区(PHP+ MySQL 5.5实现) 454 15.1 系统设计思路 455 15.1.1 系统功能结构 455 15.1.2 系统预览 456 15.1.3 文件夹组织结构 458 15.2 数据库设计 458 15.2.1 数据库概要说明 459 15.2.2 数据库概念设计 459 15.2.3 数据库逻辑设计 461 15.3 前台首页设计 463 15.3.1 前台首页概述 463 15.3.2 公告信息的滚动输出 技术 465 15.3.3 前台首页的实现过程 467 15.4 注册模块设计 468 15.4.1 注册模块概述 468 15.4.2 通过JavaScript脚本验 证表单元素 469 15.4.3 注册模块的实现过程 471 15.5 技术支持模块设计 472 15.5.1 技术支持模块概述 472 15.5.2 分页技术 472 15.5.3 常见问题的实现过程 474 15.5.4 客户反馈的实现过程 475 15.6 在线订购模块设计 476 15.6.1 在线订购模块概述 476 15.6.2 订单的预览及打印技术 476 15.6.3 购物车的实现过程 479 15.6.4 商品订单的实现过程 481 15.7 社区论坛模块设计 483 15.7.1 社区论坛模块概述 483 15.7.2 页面跳转技术 484 15.7.3 论坛分类的实现过程 485 15.7.4 论坛帖子浏览的实现 过程 487 15.7.5 论坛帖子发布的实现 过程 490 15.7.6 论坛帖子回复的实现 过程 492 15.8 后台首页设计 494 15.8.1 后台首页概述 494 15.8.2 switch框架技术 495 15.8.3 后台首页的实现过程 496 15.9 编程词典管理模块设计 497 15.9.1 编程词典管理模块概述 497 15.9.2 图片上传技术 498 15.9.3 添加编程词典的实现 过程 499 15.9.4 编辑编程词典的实现 过程 501 15.10 软件升级管理模块设计 503 15.10.1 软件升级管理模块概述 503 15.10.2 动态输出下拉列表框 的值 503 15.10.3 软件升级包上传的实现 过程 505 15.10.4 软件升级包删除的实现 过程 506 15.11 开发技巧与难点分析 507 15.11.1 管理员权限的设置 507 15.11.2 帖子置顶的设置 508 15.12 在线支付技术专题 509 15.13 开发总结 513 第16章 易查供求信息网(Apache+ PHP+MySQL 5.5实现) 514 16.1 开发背景 515 16.2 系统分析 515 16.2.1 需求分析 515 16.2.2 可行性分析 515 16.3 系统设计 516 16.3.1 系统目标 516 16.3.2 系统功能结构 517 16.3.3 系统预览 518 16.3.4 文件夹组织结构 520 16.4 数据库设计 521 16.4.1 数据库分析 521 16.4.2 数据库概念设计 521 16.4.3 创建数据库及数据表 522 16.5 前台首页设计 524 16.5.1 前台首页概述 524 16.5.2 超链接技术 525 16.5.3 前台首页的实现过程 527 16.6 免费供求信息发布模块设计 528 16.6.1 免费供求信息发布模块 概述 528 16.6.2 MySQL数据库连接技术 529 16.6.3 免费供求信息发布模块 的实现过程 531 16.7 信息检索模块设计 533 16.7.1 信息检索模块概述 533 16.7.2 模糊查询技术 534 16.7.3 信息检索模块的实现 过程 535 16.8 后台首页设计 539 16.8.1 后台首页概述 539 16.8.2 Frame框架技术 539 16.8.3 后台首页的实现过程 542 16.9 付费供求信息发布模块设计 543 16.9.1 付费供求信息发布模块 概述 543 16.9.2 计算供求信息的有效 时间 544 16.9.3 付费供求信息发布模块 的实现过程 544 16.10 付费信息管理模块设计 546 16.10.1 付费信息管理模块 概述 546 16.10.2 数据的更新和删除 技术 547 16.10.3 付费信息显示的实现 过程 548 16.10.4 付费信息审核的实现 过程 551 16.10.5 付费信息删除的实现 过程 552 16.10.6 单元测试 552 16.11 开发技巧与难点分析 554 16.11.1 查询关键字描红功能 554 16.11.2 表单数据的提交方式 555 16.12 开发总结 557 第17章 图书馆管理系统(Apache+ PHP+MySQL 5.5实现) 558 17.1 开发背景 559 17.2 需求分析 559 17.3 系统设计 559 17.3.1 系统目标 559 17.3.2 系统功能结构 560 17.3.3 系统流程图 560 17.3.4 系统预览 561 17.3.5 文件夹组织结构 562 17.4 数据库设计 563 17.4.1 数据库分析 563 17.4.2 数据库概念设计 563 17.4.3 创建数据库及数据表 564 17.5 首页设计 566 17.5.1 首页概述 566 17.5.2 权限设置技术 567 17.5.3 首页的实现过程 568 17.6 管理员模块设计 568 17.6.1 管理员模块概述 568 17.6.2 控制文件的访问权限 569 17.6.3 系统登录的实现过程 570 17.6.4 查看管理员的实现过程 572 17.6.5 添加管理员的实现过程 573 17.6.6 设置管理员权限的实现 过程 574 17.6.7 删除管理员的实现过程 576 17.7 图书档案管理模块设计 577 17.7.1 图书档案管理模块概述 577 17.7.2 图书档案管理中的多表 查询技术 577 17.7.3 查看图书信息列表的实 现过程 578 17.7.4 添加图书信息的实现 过程 579 17.7.5 修改图书信息的实现 过程 581 17.7.6 删除图书信息的实现 过程 582 17.8 图书借还模块设计 582 17.8.1 图书借还模块概述 582 17.8.2 图书借还模块中的多表 查询技术 583 17.8.3 图书借阅的实现过程 583 17.8.4 图书续借的实现过程 586 17.8.5 图书归还的实现过程 588 17.8.6 图书借阅查询的实现过程 589 17.9 开发技巧与难点分析 592 17.9.1 如何自动计算图书归还 日期 592 17.9.2 如何对图书借阅信息进 行统计排行 592 17.10 连接语句技术专题 593 17.10.1 内连接语句 593 17.10.2 外连接语句 594 17.11 开发总结 595 第18章 办公自动化管理系统(PHP+Smarty+ MS SQL Server+PDO实现) 596 18.1 开发背景 597 18.2 需求分析 597 18.3 系统设计 597 18.3.1 系统目标 597 18.3.2 系统功能结构 598 18.3.3 系统预览 599 18.3.4 系统流程图 601 18.3.5 文件夹组织结构 602 18.4 数据库设计 602 18.4.1 数据库概念设计 602 18.4.2 数据库物理结构设计 603 18.5 公共模块设计 604 18.5.1 数据库连接、操作类的 封装 604 18.5.2 Smarty类库的封装 606 18.5.3 类的实例化 606 18.5.4 JavaScript脚本 607 18.5.5 自定义函数 607 18.6 前台首页设计 608 18.6.1 前台首页概述 608 18.6.2 前台首页框架技术 609 18.6.3 前台首页的实现过程 611 18.7 人事消息模块设计 611 18.7.1 人事消息模块概述 612 18.7.2 $_GET[]和$_POST[]全 局数组 612 18.7.3 消息管理的实现过程 613 18.8 考勤管理模块设计 617 18.8.1 考勤管理模块概述 617 18.8.2 Smarty模板中的if语句 嵌套技术 618 18.8.3 上下班登记的实现过程 619 18.8.4 设置时间的实现过程 624 18.9 后台主页设计 625 18.9.1 后台主页概述 626 18.9.2 后台主页框架技术 626 18.9.3 后台主页的实现过程 627 18.10 部门管理模块设计 628 18.10.1 部门管理模块概述 628 18.10.2 部门功能结构的动态 输出技术 629 18.10.3 部门查看的实现过程 631 18.10.4 部门添加的实现过程 635 18.11 系统管理模块设计 637 18.11.1 系统管理模块概述 637 18.11.2 通过文件存储数据技术 637 18.11.3 系统日志的实现过程 638 18.12 开发技巧与难点分析 639 18.12.1 使用JavaScript关联多 选列表框 639 18.12.2 用户组设置 641 18.13 开发总结 643 第19章 电子商务网站(PHP+Smarty+ MySQL+PDO实现) 644 19.1 开发背景 645 19.2 需求分析 645 19.3 系统分析 645 19.3.1 系统目标 645 19.3.2 系统功能结构 646 19.3.3 系统预览 647 19.3.4 文件夹组织结构 648 19.4 数据库设计 649 19.4.1 数据库分析 649 19.4.2 创建数据库和数据表 650 19.5 公共文件设计 651 19.5.1 数据库连接、管理和分 页类文件 652 19.5.2 Smarty模板配置类文件 654 19.5.3 执行类的实例化文件 654 19.6 前台首页设计 655 19.6.1 前台首页概述 655 19.6.2 Smarty模板页中的框架 技术 656 19.6.3 前台首页实现过程 656 19.7 登录模块设计 658 19.7.1 登录模块概述 658 19.7.2 AJAX无刷新验证技术 658 19.7.3 用户注册 660 19.7.4 用户登录 662 19.7.5 找回密码 664 19.8 会员信息模块设计 669 19.8.1 会员信息模块概述 669 19.8.2 会员信息查询技术 669 19.8.3 会员中心 670 19.8.4 安全退出 672 19.9 商品展示模块设计 673 19.9.1 商品展示模块概述 673 19.9.2 分页技术 673 19.9.3 商品展示模块的实现 过程 674 19.10 购物车模块设计 675 19.10.1 购物车模块概述 675 19.10.2 购物车中的商品添加 技术 676 19.10.3 购物车展示 678 19.10.4 更改商品数量 680 19.10.5 删除商品 681 19.10.6 保存购物车 683 19.11 收银台模块设计 685 19.11.1 收银台模块概述 685 19.11.2 PDO操作MySQL数据库 技术 685 19.11.3 显示订单 686 19.11.4 填写订单 686 19.11.5 处理订单 687 19.12 后台首页设计 688 19.12.1 后台首页概述 688 19.12.2 后台网页布局技术 689 19.12.3 后台首页实现过程 691 19.13 开发技巧与难点分析 693 19.13.1 解决AJAX的乱码问题 693 19.13.2 使用JS脚本获取、输出 标签内容 693 19.13.3 在新窗口中使用 SESSION 693 19.13.4 判断上传文件格式 694 19.14 开发总结 694 第20章 明日知道网站(PHP+Zend Framework+MySQL实现) 695 20.1 开发背景 696 20.2 需求分析 696 20.3 功能结构 696 20.4 系统预览 697 20.5 数据库设计 698 20.5.1 数据库分析 698 20.5.2 数据库概念设计 699 20.5.3 创建数据库及数据表 700 20.6 技术攻关 702 20.6.1 类似于Google搜索引擎 的搜索条 702 20.6.2 使用空格分隔多关键字 707 20.6.3 关键字描红 710 20.6.4 制作在线编辑器 712 20.7 MVC框架结构搭建 716 20.7.1 MVC开发模式介绍 716 20.7.2 Zend Framework框架的 MVC目录结构 716 20.7.3 Zend Framework框架的 MVC结构创建过程 717 20.8 首页设计 720 20.8.1 首页概述 720 20.8.2 语言选项卡技术 720 20.8.3 首页的实现过程 721 20.9 用户模块设计 724 20.9.1 用户模块概述 724 20.9.2 验证码技术 725 20.9.3 用户注册的实现过程 727 20.9.4 用户登录的实现过程 729 20.10 发表问题模块设计 732 20.10.1 发表问题模块概述 732 20.10.2 文件上传技术 733 20.10.3 发表问题模块实现过程 734 20.11 回复问题模块设计 736 20.11.1 回复问题模块概述 736 20.11.2 问题引用技术 737 20.11.3 回复问题模块实现过程 737 20.12 开发技巧与难点分析 739 20.12.1 项目开发过程中的常 见错误及解决方法 739 20.12.2 自定义错误页面 740 20.13 开发总结 741 第21章 新闻发布系统(PHP+Zend Framework+MySQL实现) 742 21.1 新闻发布系统概述 743 21.2 开发背景 743 21.3 需求分析 743 21.3.1 功能分析 743 21.3.2 运行环境 744 21.4 功能结构 744 21.5 系统预览 745 21.6 数据库设计 747 21.6.1 数据库概念设计 747 21.6.2 创建数据库及数据表 748 21.7 MVC框架结构搭建 750 21.7.1 MVC开发模式介绍 750 21.7.2 Zend Framework框架的 MVC目录结构 750 21.7.3 Zend Framework框架的 MVC结构创建过程 751 21.8 技术攻关 754 21.8.1 站内搜索——使用空格 分隔多关键字 754 21.8.2 关键字描红 759 21.8.3 隐藏PHP文件后缀—— 伪静态技术 760 21.9 前台首页设计 762 21.9.1 前台首页概述 762 21.9.2 jQuery实现广告轮换 特性 762 21.9.3 前台首页的实现过程 764 21.10 后台管理模块设计 767 21.10.1 后台管理模块概述 767 21.10.2 Zend Framework框架 中的文件上传技术 768 21.10.3 管理员登录实现过程 769 21.10.4 新闻管理模块实现过程 771 21.10.5 用户管理模块实现过程 772 21.11 程序调试与错误处理技术专题 772 21.11.1 语法错误 772 21.11.2 语义错误 775 21.11.3 注释错误 776 21.11.4 运行错误 776 21.11.5 逻辑错误 778 21.11.6 错误提示页面 778 21.12 开发总结 779