PHP范例精解 创建,修改,重用。每一个实例都非常值得学习。Top Sage. comwww.topsage.com我很惊讶于 Internet在过去的十余年间所取得的发展和进步。它已从一个通过少量超链接相互连接的静态文本集发展成为一个能支持功能丰富的分布式程序的平台。通常,在开发这些基于Web的应用程序时,许多程序员都会选择使用PHP和 MySQL。在本书中,将介绍12个可以按照您的意愿使用和扩展的PHP实例。我尽力按照可重用标准来编写这些代码,在一些例子中甚至整个程序都可以被重用。很高兴能有这个机会来编写并和您共享这些程序,同时我也希望您能在阅读和学习这些代码的过程中得到乐趣。更重要的一点是,我希望您能从这本书中得到有价值的并且实用的代码本书面向对象在本书中,我将给出一些基础但功能强大的程序代码。您可以按照自己认为合适的方式实现和扩展这些代码。但前提是您需要懂得一些关于PHP和通用Web开发技术的基础知识。本书不是一本教科书。然而,您并不需要具备髙级PH程序员的资格才能深入理解本书。初学者会发现这本书很实用,因为它能指导他们编写各种类型的程序。本书中的12个实例可以激发他们的兴趣来编写更多的属于自己的程序。中级的和更有经验的程序员也能从本书中获益,因为他们可以对书中提供的程序源代码进行一些修改,然后在实际程序中使用。书中的一些程序是在前面程序的基础上构建的,因此虽然不需要从头至尾通读此书,但是不管读者编程水平如何,我都建议阅读所有相关章节。比如,在第7章中,介绍了个在线相册程序,但是其中的图片上传功能就使用了第6章所介绍的AJAX文件管理器书中所有项目都是按照第1章确定的代码结构进行设计的。本书涵盖内容本书的代码基于 MySQL50 Community Server和PHP525,也支持更高版本的服务器。如果想要在低版本的服务器中运行本书代码,可能需要根据实际情况做一些修改本书组织结构书中所有章节都是按照特定顺序组织的,以便后面章节中的程序利用前面章节所做的www.topsage.comPHP&MySαL范例精解—一创建、修改、重用工作。下面是本书的纲要介绍。第1章:用户注册系统创建基本的用户注册系统可重用组件: configuration/ include文件,401php,User类第2章:社区论坛扩展用户注册系统,创建一个具有用户权限和按话题发帖功能的社区论坛可重用组件: Jpeg Thumbnail类, BBCode类第3章:邮件列表创建一个具有控制地址和邮件摘要功能的邮件列表可重用组件:POP3 Client类第4章:搜索引擎为个人网站定制搜索引擎可重用组件:整个程序第5章:个人日历编写一个个人日历工具以使生活变得更有计划可重用组件:整个程序第6章:AAX文件管理器创建一个基于AJAX的文件上传和目录查看器可重用组件:整个程序(这个项目介绍了后面章节中将用到的AJAX技术)第7章:在线相册创建一个基于文件的图库,能自动生成PEG和 QuickTime格式文件的缩略图可重用组件: Moy Thumbnail类第8章:购物车编写一个分类购物车可重用组件: Shopping Cart类第9章:网站统计记录网站流量和登录用户的信息以帮助做出更好的商业决策可重用组件: Piechart类, BarChan类第10章:新闻博客系统开发一个支持评论和RSS反馈的新闻或博客系统可重用组件:整个程序项目中也介绍了一些第三方的可重用组件,如YUⅠ日程表和TinyMCE富文本控件)www.topsage.com第11章:she脚本Top Sage. com编写和运行管理控制脚本程序可重用组件: CommandLine类, recurs copy函数第12章:安全和日志介绍SoL注入、路径模式发掘攻击、弱认证和跨站脚本攻击以及如何修复这些安全漏洞可重用组件: write log0函数, view log. php,痕迹删除脚本本书学习要求在学习本书的过程中需要编写PHP程序,因此需要一个编辑器来输入代码。可根据个人喜好选择适合自己的编辑器。此外,还需要一个能支持PHP和 MySQL的服务器来运行示例程序。当然,访问这些程序的浏览器也必不可少。至于使用何种服务器和浏览器则由个人决定。为了方便读者阅读本书,在必要的时候,书中将分别给出在UNX和 Windows平台下运行本书演示程序的说明,比如第3章的邮件列表,它将作为 Windows系统的一个计划任务运行。就个人而言,我喜欢使用ⅵ编写代码,在 Slackware Linux服务器上运行程序,并通过 Windows XP系统上的 Firefox浏览器访问这些程序。虽然尽力避免,但本书中的一些程序还是调用了PHP中的扩展函数。例如,第4章的搜索引擎程序使用了 spell扩展。对于那些只在扩展中才有的功能,本书没有采用第三方的非标准扩展,因此读者在安装扩展时只需要参考www.php.net中的官方文档。这些扩展将在相关章节中进行详细介绍。源代码在读者学习本书中的示例时,可以手工输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点ht:/w. Wrox con/或www.tupwk.com.cn/downpage上下载。登录到站点htt:/WW.WTOx.com/,使用Search工具或使用书名列表就可以找到本书。接着单击本书细目页面上的 Download Code链接,就可以获得所有的源代码。注释由于许多图书的标题都很类似,所以按ISBN搜索是最简单的,本书英文版的ISBN是978-0-470-192429。在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入htp:/ww. WrOX. com/ ynamic/books/download. aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。www.topsage.coPHP&MysαL范例精解—一创建、修改、重用勘误表尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。请给 wkservice@vip.163cm发电子邮件,我们就会检查您的反馈信息,如果是正确的,我们将在本书的后续版本中采用。要在网站上找到本书英文版的勘误表,可以登录htp:/www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击 Book errata链接。在这个页面上可以査看到Wroκ编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtmlp2p wrox. com要与作者和同行讨论,请加入p2 p Wrox. com上的P2P论坛。这个论坛是一个基于web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题在htt:/12 O wrOX. com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:(1)进入p2 o wrox. com,单击 Register链接(2)阅读使用协议,并单击 Agree按扭。(3)填写加入该论坛所需要的信息和自己希望提供的其他信息,单击 Submit按扭(4)您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程注释不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须加入该论坛加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的 Subscribe to this forum图标。关于使用 Wrox Pi2P的更多信息,可阅读P2PFAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。www.topsage.com目录342配置文件72第1章用户注册系统343账号管理…7311目录结构设计………………1344邮件处理12数据库设计34.5邮件摘要处理…………………8213编写共享代码…………35邮件列表安装曹香。专14User类36小结………………851.5 CAPTCHA1.6模板…11第4章搜索引擎……8717注册新用户4.1搜索引擎设计………………871.8发送确认链接1842全文检索的缺陷……8819登录和退出…204.3数据库设计…………………891.10更改用户信息…2544代码文件和代码文件描述……911.11密码遗失………………2844.1管理界面文件……………911.12小结30442爬行检索器………9744.3用户界面104第2章社区论坛45小结11021论坛设计………3122数据库设计……31第5章个人日历11323权限操作与位操作……3351程序设计11324升级User类52数据库设计………………11425代码文件和代码文件描述53代码文件和代码文件解释……11526增加新版块415.31创建月视图………11527增加新帖………4353,2创建日视图11928显示版块和帖子………47533添加和显示事件……12029分页………55534发送提醒信息129210用户头像…………………56535输出日历信息………1302.11 BBCode……5954小结………………………135212小结…………62第6章AJAX文件管理器…137第3章邮件列表……………………636.1AJAX文件管理器设计………1373.1邮件列表设计…………6362 Javascript和AJAX……13832选择POP3协议6463代码文件和代码文件解释……14233数据库设计…………………65631主用户界面…………………14234代码文件和代码文件描述……65632客户端功能模块……………147341POP3客户端介绍…………65633服务器端功能模块………160www.topsage.comPHP& MySQL范例精解创建、修改、重用1之64小结……““非176第10章新闻博客系统y265第7章在线相册…17710.1数据库表…26571在线相册设计17710.2发布帖子…26672代码文件和代码文件介绍……17810.3生成RSS2787.21视图……………17810.4显示帖子……282722帮助文件………………18710.5添加评论…………28573 QuickTime缩略图…19010.6小结,和福29074缩略图缓存……19175小结第11章she脚本291F…………1931.1脚本设计…………"292第8章购物车……195112通用shel|脚本编写建议29281购物车设计…………1951.3代码文件和代码文件解释…29482数据库设计…………………19611.3.1 CommandLine类……2948.3代码文件和代码文件解释1971132命令行参数…………294831 Shopping Cart类…………197133读取配置文件……………297832与购物车一起工作……201134提示输入……………298833虚拟店面创建……………20911.3.5 startproject…302834添加库存………………217113.6复制文件…………………305835服务器端处理流程2201.3.7替换占位符………307836客户端支持…………24114程序骨架………31384小结…中··虚中世238115小结…………313第9章网站统计………………239第12章安全和日志…………31591确定收集的内容…239121跨站脚本攻击……31592数据库设计……241122路径模式发掘攻击………31893获取统计数据…日日=241123注入攻击……32094代码文件和代码文件解释……2431231SQL注入攻击…132094.1饼图…………2431232命令行注入攻击………323942柱形图24724弱认证安全风险325943报表………………252125日志……………3269.5小结……26312.6预防意外删除操作………329127小结………………30www.topsage.co第1章用户注册系统在网站中,账号注册和用户登录是让用户体验个性化服务和查看感兴趣内容的重要方式。身份认证功能在许多社区和电子商务网站中都发挥着重要作用。因此,本书介绍的第个应用程序就是用户注册系统。从功能上来看,用户使用注册系统可以创建新账号。在注册过程中,用户必须提供个电子邮箱来确认注册信息。在以后的使用过程中,用户还需要更改密码和电子邮箱地址,以及重新设置忘记的用户密码。这些都是目前注册系统必须提供的标准功能,也是用户认为一个完善的注册系统应该拥有的基本功能。从程序结构方面来看,必须合理地设计程序代码的目录结构。例如,支持文件和引用文件( (support and include files)不能保存在公众可以访问的目录中。而用户信息则应该存储在数据库中。这是因为目前有大量工具支持查看和操作关系数据库(如MSQL)中的数据,这为数据访问提供了透明性和灵活性。11目录结构设计在开发过程中,第一步是设计程序的目录结构。建议创建三个主文件夹:第一个是public files,用来保存所有可以公共访间的页面;第二个是ib,用来保存可以被其他文件调用的引用文件;最后一个是 templates,用于保存页面显示文件。虽然PHP可以调用程序目录下的所有文件,但是Wb服务器应该只允许外界访问pbs目录中的文件把副支持文件保存在外界可以访问的文件夹之外可以增强系统的安全性。在 public files中,创建cs子目录来保存样式表,js子目录保存 JavaScript文件以及ing孑目录保存图片文件。可能还需要创建其他文件夹来保持代码结构的清晰性。例如可以创建用于保存 MySQL文件的sq目录、保存文档和开发笔记的doc目录,以及包含冒烟测试和单元测试代码的 tests目录。www.topsage.com