




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第21章用PHPAjax制作论坛,本章将使用PHP与MySQL的知识结合Ajax技术,来实现一个简易的论坛程序。本章所介绍的论坛程序将使用到很多的PHP知识和通过PHP来操作MySQL数据库的技巧,同时也使用部分Ajax的内容。该程序是对全书所学知识的一个很好的总结,通过对本章内容的学习,对读者使用PHP开发大型Web应用程序是一次很好的演习。,21.1系统综合分析,论坛(BBS电子公告板)程序在网上有着广泛的应用,大到大型商业网站,小到个人用户都在提供着不同的论坛的服务。同时论坛也是一个较为复杂的程序,与留言簿程序不同论坛有着分论坛及用户的概念。所以在正式开始整个论坛的创建之前有必要先对系统进行综合的分析。,21.1.1实现功能,虽然说本章所介绍的论坛程序只是一个简单的论坛,但也需要具备通常论坛程序所要求的基本功能。本章所要介绍的论坛程序具有以下功能:1、论坛用户的注册与登录;2、论坛版块(包括主版与分版)的显示;3、注册用户可以发表主题以及对存在的主题进行回复;4、普通用户有权利编辑自己所发表的主题及贴子;5、注册用户可以更改除用户名之外的其他注册信息。6、管理员可以对论坛版块进行增加、修改以及创建的操作(通常不涉及对论坛版块的删除操作)。7、管理员还可以对所有用户发表的贴子进行编辑、删除等操作。以上几条为本论坛程序所要实现的基本功能。本章将把以上所列举的要实现的功能分成各个模块来逐个为读者介绍。,21.2开始前的准备工作,本节将介绍在正式对论坛各个模块进行创建之前所要做的准备工作。包括以下几项内容:1、连接数据库的配置文件的创建;2、设计程序运行所需要的数据表;3、为论坛程序制作一个简易的安装文件。,21.2.1创建配置文件,由于本章所介绍的论坛程序是以数据库为载体的,所以需要对MySQL数据库进行连接。这里把数据库连接的内容单独放在一个文件中,供其他论坛模块调用。这样做的好处,在前几章所介绍的程序中已经有所提及,这里不再赘述。本小节先来创建论坛系统运行所需要的配置文件。该文件具体内容如以下代码所示:,21.2.2创建样式表文件,创建完配置文件之后,还需要创建一个样式表文件,以便于其他功能模块可以调用该样式表文件,使用样式。该样式表文件的内容如以下代码所示:(详细内容请参照本书)将以上代码保存为:style.css以便其他功能模块可以调用该样式文件。,21.3设计数据表,本节对简易论坛程序的所有数据表进行设计。这些表包括:用户记录表、论坛版块记录表、论坛所有贴子记录表等。一个稍微复杂的论坛程序,通常包含有丰富的功能与大量的数据表。由于本章所介绍的论坛只实现21.1.1小节所列举的功能。所以本着简单、够用的原则,只需要三个表就可以满足要求了。这三个表为:用户表、论坛表、贴子表。下面分别对这三个表的具体情况向读者作一一介绍。,21.3.1创建用户表,通常论坛都有很多的注册用户,用户表中存储着用户的各项信息。所以用户表应该包括如下内容:ID、用户名、密码、昵称、性别、电子信箱、论坛图像、个性签名、发贴数量、注册时间、权限等。基于以上要求,用户数据表采用如下设计:表名为bbs_user,包括11个字段。,21.3.2创建论坛分类数据表,论坛通常包括很多栏目。如一个娱乐论坛可能会采用如下所示的分级结构:,21.3.3创建帖子记录表,论坛是由用户所发表的的贴子组成,贴子是构成论坛的灵魂。贴子表通常采用的结构:ID、所属论坛ID、回复ID、作者ID号、贴子的标题、贴子的内容、发贴时间、最后回复时间等。下面来完成贴子数据表的设计:表名为bbs_post,包含10个字段。具体内容如表所示。,21.4创建安装文件,本节来创建整个系统的安装文件。该文件所要实现的功能:接收用户输入内容,创建系统运行所需要的三个表,并向其中添加初始化的内容。用户输入内容有:管理员相关信息:管理员名称、管理员密码、管理员电子信箱以及管理员的昵称等内容。论坛初始化信息:初始化的主论坛名称、主论坛的介绍、初始化的分论坛名称以及该分论坛的介绍。,21.5用户的注册与登录,论坛离不开各种类型的贴子,而贴子都是由论坛用户所发的。一个论坛中不可能只有一个管理员。普通浏览者要想成为论坛用户,必须通过注册系统。用户进入论坛必须通过登录系统。本节就为读者来介绍一个简易的论坛注册与登录系统。,21.5.1用户注册页,用户注册页功能相对单一,获取用户所输入的内容,并在后台进行处理。先遍历表中是否存在同名用户,如果存在就给出提示,要求用户更换姓名再次注册。这样可以保证用户登录名称的唯一性。如果不存在同名用户,就将用户所输入的内容插入到用户记录表中,完成注册过程。该代码的前台还使用了Ajax技术,对用户的输入进行动态提示。当用户没有输入用户名、密码以及密码与重复密码不一致时将会给予动态提示。,21.5.2用户登录页,新用户在成功注册之后,还不能马上进入论坛系统,必须通过登录页面进行登录才可以。本节就向读者介绍如何实现用户的登录。用户要登录到系统中,必须提供两个要素:用户名、密码。只有同时提供了进入系统的这两个要素才有可能进入系统。在用户输入用户名与密码之后,在后台对用户所输入的用户名与密码进行校验。即遍历用户数据表中是否存在用户名与密码与用户所提供内容完全一致的记录。如果存在则注册用户名为Cookie并进入系统,反之则给出出错提示。该页面中使用了与用户注册页相同的Ajax动态提示技术。同时还利用Ajax异步传输的特点实现了,不刷新页面而显示登录状态提示的功能。,21.6论坛首页、分论坛显示页,进入论坛的用户,首先需要进入论坛首页,而查看相关版面还需要进入相应的主论坛或者分论坛的显示页面。本节就来向读者介绍如何创建论坛首页、主论坛以及分论坛的显示页面。,21.6.1论坛首页显示页面,论坛首页显示页面是用户登录后可以直接看到的页面。该页面将会显示所有的主论坛以及主论坛下的分论坛的信息,主要有主题数、贴子数。除此之外还需要显示分论坛的最后一个主题标题、发贴者、发表时间等。本节就来介绍论坛首页显示页面的创建。,21.6.2主论坛显示页面,主论坛显示页面与论坛首页显示页面不同,该显示页面只显示某一主论坛下的分论坛的内容。所以,该页面只需要查看特定主论坛内容即可。本节就向读者介绍如何创建主论坛显示页面。,21.6.3分论坛显示页面,前两小节分别为读者介绍了论坛首页、主论坛显示页的创建。本节继续介绍分论坛显示页面的创建。与论坛首页和主论坛显示页面不同,分论坛显示页要直接与贴子打交道,需要显示所有的贴子的内容。如果贴子数多于某一个数如10,则需要使用分页显示。所以该页相对于主论坛显示页来说相对复杂。,21.7贴子的操作,贴子是信息是重要承载者,是构成论坛的灵魂,发表与回复贴子是注册用户对贴子最基本的操作。本节就来向读者介绍如何实现:发表新主题、显示已有主题以及回复主题等与论坛贴子相关的操作。,21.7.1发表新主题,注册用户在进入一个分论坛之后,就可以在该分论坛中发表新的主题。用户点击相应的连接,打开发表新主题页面。用户可以在前台输入新主题的相关内容,如标题、内容、发贴类型等等。转到后台之后,除了要把贴子内容保存到表bbs_post中之外,还要更新论坛类型表bbs_type与用户表bbs_user。可以说后台的处理复杂度要远远高于前台的输入。另外该模块同时也考虑到了回复已有主题的内容。,21.7.2显示已有主题,显示已经存在的主题就需要遍历主题的内容,如作者名称、发贴时间、主题标题、主题内容等。而通常一个主题还包括回复,所以相关的回复贴子也要一并显示。要显示回复贴子需要再次对表进行查找,查找所有re_id值为请求主题id的贴子内容并显示即可。在显示主题之后,还需要更新该条主题的浏览量。因为每显示一次主题相当于浏览一次主题,所以其浏览量也要随之增加。除此之外,该代码还使用了Ajax的动态提示技术。对于发贴者只显示其用户名,而把鼠标指针移动到用户名上时,可以从动态提示框中看到此用户的详细信息。这样一方面节省了页面空间的占用,另一方面也整个页面更加美观。,21.7.3主题的回复,主题的回复实际上是在发表主题的基础上增加了回复主题的ID值即:re_id。这样即可对主题进行回复。代码.php中已经包括了对主题进行回复的内容。对主题进行回复之后的结果如图所示:,21.8论坛的管理,这一节来向读者介绍如何使用管理员的超级权限,对论坛进行增加、修改的操作。通过这些内容,管理员可以轻松实现增加新论坛、修改已有论坛等内容。通过新的论坛与内容为论坛注入新的生机和活力。,21.8.1增加主/分论坛,论坛在成功创建后,仅有系统默认论坛是远远不够的。管理员应该拥有创建新论坛的权利,本节就来介绍如何创建新论坛。创建新论坛分为三步进行:第一步选择所建立的论坛类型,是主论坛还是分论坛;第二步,输入论坛名称与论坛介绍,如果是分论坛还要选择分论坛所属的主论坛;第三步把所有用户输入内容进行整理,将指定内容加入到数据库的bbs_type表中完成论坛的创建。,21.8.2修改已有论坛,论坛在创建之后并不是一成不变的,可以对论坛名称、论坛介绍等内容进行修改。要实现这样的效果,只需显示已有内容,等待用户输入新的内容。然后在系统后台用新的内容对表中记录进行更新即可。,21.9贴子的管理,上一节介绍了对论坛版块的管理,本节向读者介绍对论坛贴子的管理。用户所发表的贴子可能有输入错误的内容,对于这些内容应该允许用户对其进行修改。而如果用户发表贴子中包含大量非法或者无意义的内容,则必须对这些内容进行删除。本节所介绍的贴子管理就包括:贴子的编辑与删除两种,21.9.1编辑贴子,编辑贴子管理模块获取用户所输入的ID,然后判断登录用户是否为管理员或者为所编辑贴子的作者。如果这两知都不满足,则给出错误提示。如果满足两条中的一条(即管理员可以编辑任何贴子,普通用户只能编辑自己发表的贴子),显示贴子原来的标题与内容,用户可以对其进行编辑。然后将内容提交到后台进行处理,后台只需用用户输入内容更新记录即可。,21.9.2删除贴子,删除贴子也是论坛管理中的一项重要职能。如果用户输入太多无意义的内容或者广告内容,则需要对这样的贴子进行删除操作。删除贴子又分两种情况,一种是要删除的贴子不是主题,只需要删除该贴子即可。如果需要删除的贴子是主题就相对复杂了。这里采用这样的机制:当主题被删除时,将其标记为已删除状态。所有主题及内容都不可见了,但其位置仍将保留。,21.10用户的管理,用户是论坛中最为活跃的因素,贴子的发表都通过用户来完成。注册用户的信息都存储在表bbs_user中。最后一节来介绍一下论坛中用户的管理。本节内容包括:用户信息如何显示、用户信息如何修改、已登录用户如何退出系统等。,21.10.1显示用户信息,显示用户信息相对简单,只需读出用户的所有信息(除登录用户名与密码)显示出来即可。,21.10.2修改普通信息,用户在注册之后,也允许用户对一些信息如:昵称、性别、签名等内容进行修改。而对于登录用户名与ID一样是确认用户身份的唯一标识,不允许用户进行修改。另外密码项也要单独进行修改。而注册日期、发贴数这些系统自动生成的内容也不允许用户进行修改。,21.10.3修改密码,用户登录密码是用户登录系统最重要的依据,通常密码项都会单独进行修改。本章所介绍的简易论坛系统也采用这种模式。,21.10.4用户退出系统,用户退出系统模块可以满足用户随时从系统中退出的需要。执行该模块将会清空用户所注册的Cookie值,然后给出转向链接即可。执行该页面不需要数据库的支持。至此,整个简易论坛的功能模块全部为读者介绍完毕。这些模块能够满足一个简易论坛的需要。,21.11本章小结,本章用8节内容向读者介绍了如何使用PHP与MySQ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国邮政2025拉萨市秋招电商运营岗位面试模拟题及答案
- 山南市烟草公司2025秋招系统运维岗位面试模拟题及答案
- 杭州数控水幕施工方案
- 中国邮政2025廊坊市秋招大堂经理岗位面试模拟题及答案
- 中国邮政2025来宾市秋招数据分析岗位面试模拟题及答案
- 中国邮政2025韶关市秋招合规审计岗位面试模拟题及答案
- 辽宁省烟草公司2025秋招品牌推广岗位面试模拟题及答案
- 中国邮政2025南充市秋招数据库管理岗位面试模拟题及答案
- 威海市烟草公司2025秋招系统运维岗位面试模拟题及答案
- 眉山市烟草公司2025秋招物流调度岗位高频笔试题库含答案
- 销售商务礼仪培训课程
- 三七销售培训课件
- 《中国尖锐湿疣临床诊疗指南(2021版)》解读
- 租金费用收取管理制度
- 建筑垃圾处理技术标准(CJJT 134-2019)
- 五年级美术素养测评模拟测试
- 木工课堂安全管理制度
- 【《基于Matlab的电力系统电压稳定L指标计算与灵敏度分析》18000字】
- 小班语言活动《笑嘻嘻》
- 《AIGC应用实战:写作、绘图、视频制作、直播》-课件 第七章 即梦的使用方法;第八章 AI直播
- NHSS系列钢丝绳手扳葫芦
评论
0/150
提交评论