

已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学文华学院毕业设计(论文)华中科技大学文华学院毕业设计(论文)题目:艾沃个人网站开发 个人论坛网站基本功能实现 学 生 姓 名: 学号:学 部 (系): 信息科学与技术学部 专 业 年 级: 09级计算机应用技术 指 导 教 师: 职称或学位: 教授 2012 年 4 月 25 日目 录摘 要2 abstract3 前 言41.可行性分析5 1.1 技术可行性分析5 1.2 网站功能分析52.开发环境和开发方法6 2.1 开发环境6 2.2 开发方法63.基于php的个人网站总体设计7 3.1 主要页面7 3.2 论坛功能设计74.基于php个人网站详细设计10 4.1 数据库设计10 4.2 具体功能实现145.测试23 5.1 测试环境23 5.2 测试内容23 结束语24 参考文献25 致 谢26艾沃个人网站开发摘 要随着互联网的高速发展,传统的web应用已经显得力不从心,而web2.0的出现极大改善了这一局面。所谓web2.0其核心就是用户不再只是被动的网页浏览者,他们既是网站浏览者,也是网站内容的制造者。未来的互联网趋势必然是web2.0。因此,以虚拟社区为主题,突出web2.0思想,构建一个由用户提供主要的网站内容,管理员只负责整理,发布用户提供的话题,然后供用户参与讨论的网站,比起传统的由管理员单一提供资源相比,有着提供资源更多,更全,网站与用户交互性更强等优势。本课题使用php技术设计一个具有web2.0特点的个人网站及其相应的功能模块。 开发环境结合了php,mysql和apache,利用这三种开源工具,来实现一个以虚拟社区为主的个人网站。关键词:web2.0网站;个人网站;php技术aiwo personal website developmentabstractwith the rapid development of internet, the traditional web applications have appeared to be inadequate, but the web2.0 appears greatly improved this situation. the so-called to web2.0 its core is the user is no longer just passive web browsing, they are both the website, the makers of web content. the future trend of the internet must be web2.0 the as the theme to the virtual community, highlighting the the web2.0 thinking, build a website content provided by the user, the administrator is only responsible for collating, disseminating the topic provided by the user, and then for website users to participate in the discussion than traditional management compared to members of a single-provided resources, with more resources and more comprehensive website with more user interaction and other advantages.this project using php technology to design a web2.0 characteristics of individual sites and their corresponding functional modules. development environment combined with php, mysql and apache, the use of these three open source tools to achieve a virtual community based website.key words:the web2.0 website; personal website; php technology前 言php是目前最流行的网站脚本语言之一,有着简单,轻便,开源免费且功能强大的优势。php支持目前主流的各种数据库如ms sql,mysql,orcale等,并具有很好的跨平台性,除了对windows有很好支持,还能在linux以及unix上使用,且不同平台间代码的转移十分简便,无需大量修改。以上的各种优点,使php同apache,mysql,linux组成的lmap成为了最具性价比的web系统。同时php有着成熟的面向对象体系,也能适应大型项目的开发。所谓web 2.0,并没有什么明确的定义,一般来说web2.0是相对web1.0的新一类互联网应用的统称。web2.0是一个新生的术语,它更注重用户的交互作用,用户既是网站内容的消费者,也是网站内容的制造者。也有人生动的将web2.0称作“大众的新智慧”,即利用网络来发掘大众的智慧。还有很多这种概念的支持者认为web2.0服务将取代传统桌面计算机应用。在web2.0时代互联网快速发展的背景下,建立网站已经不是专业的学术机构、大公司或者资深的计算机专家的专利了,网站变得越来越普及,越来越有亲和力,而越来越多的人也开始将自己交友,娱乐,获取信息的平台选择在了网络上。加上技术的进步,开源软件的发展,使得网站的成本逐渐降低,因此,大量由个人建设的网站出现在了网络世界中,并快速发展,预计2012年中国个人网站所占总网站数的比例是30%,个人网站的繁荣为网络世界的发展提供了动力。而虚拟社区这一典型的web2.0概念技术在与个人网站结合下,使得网站的内容和互动性得到了更好的表现。1.可行性分析1.1 技术可行性分析本课题网站制作的目标是建立一个具有虚拟社区功能的个人网站,这是一个具有典型的web 2.0特征的网站。网站的规模不会很大,网站内的内容主要通过用户之间的互动来跟新,而站长则主要负责管理。为了实现这样的设计目标,网站必须使用支持动态页面的开发语言,而目前流行的动态网页语言主要有三种sun的java jsp,微软的和zend的php。在分析了网站的规模需求和开发效率以及三种语言各自的特点后觉得采用php来完成本次的设计,php是目前最流行的网站脚本语言之一,有着简单,轻便,开源免费且功能强大的优势。相比于性能较低、跨平台性差的asp和繁琐的jsp,php有着轻便、简单、跨平台、安全等优点,十分适合个人网站这类中小型网站的开发7。数据库方面虽然sql server,oracle等大型商业化的数据库工具有着优异的性能,但对于个人网站这一类小型的项目,这类产品显得过于昂贵复杂。而功能强大体型小巧的mysql是一种完全开源免费的数据库工具,并且在许多开源项目的实践应用中展现出了不亚于大型商业化数据库的性能,因此mysql完全可以满足要求本次设计中对于数据库应用的需求。而web服务器的选择上是同样为开源软件的apache,一个目前使用最为广泛的web服务器产品,有着出色的兼容性和跨平台性。这样,本次设计中的网站开发运行环境就确定下来了。1.2 网站功能分析主界面(myindex.php) 提供各个界面的链接和站点综合信息。 日记浏览界面(view_diray.php) 普通用户可浏览站长的日记并发表评论。 站长可以通过管理员帐号写新日记或对旧的日记做修改。 论坛主界面(main_form.php) 提供论坛资源浏览。 供用户发表新话题。 普通用户有登录,注册,修改个人信息的功能。 提供发送站内短消息功能。 管理员界面(admin_main_form.php)站长可以管理日记,修改日记。站长可以在此修改用户信息,更改用户状态,删除用户。站长可以对用户发表新话题的进行审核,对话题状态进行修改,删除话题。2.开发环境和开发方法2.1 开发环境开发环境选择在windows环境下的php5.5+apache2.2+mysql5,浏览器为ie9,开发工具使用dreamweaver,图片处理使用fireworks和photoshop。php与apache,mysql的组合虽然有着诸多优势,但三种出自不同作者的开源软件要能很好的配合工作,需要很多手工配置,这往往会为编程人员造成一些不必要的麻烦,因此有php的爱好者将这三种开源软件结合发布了名为phpnow的环境套件包,只需要简单的安装配置后,phpnow就会为你将php的开发运行环境配置完成,为web开发人员带来了许多便利。2.1.1关于phpnowphpnow是由php的爱好者制作的集成环境包(下载地址/),目前phpnow的最新版本号为1.5.1,其中集成了apache2.0.63/ 2.2.11,php5.2.8,mysql5.0.77/ 5.1.31,zend optimizer3.3.3以及phpmyadmin3.1.2,包含了php开发运行所需的各种软件和工具,安装配置简便,是当前开发php的首选套件包。2.1.2其他开发工具dreamweaver是一种优秀的web设计,脚本编写工具,支持php,asp,jsp等多种脚本,还有着强大的javascript,css应用功能,编程、设计界面布局合理,非常适合用来设计网站界面、编写网页脚本程序。fireworks是一种功能强大的web图片编辑工具,对png,jpeg,gif等web主流应用图片有着很好的支持,更有着诸多web图片应用方面的功能,很适合本次设计的各种需求。2.2 开发方法原型法(prototyping)是20世纪80年代随着计算机软件技术的发展,特别是在关系数据库系统(relational data base system,rdbs)、第四代程序生成语言(4th generation language,4gl)和各种系统开发生成环境产生的基础上,提出的一种从设计思想、工具、手段都全新的系统开发方法。它扬弃了那种一步步周密细致地调查分析,然后逐步整理出文字档案,最后才能让用户看到结果的繁琐作法。它遵循了人们认识事物的客观规律,将模拟的手段引入系统分析的初始阶段,沟通了人们(用户和开发人员)的思想,易于掌握和接受,使系统开发的时间、费用大大地减少,效率、技术等方面都大大地提高。使用原型法来开发本次的设计十分适合,因为本次制作的个人网站规模较小,如果使用其他复杂的计算机工程方法开发,会带来许多不必要的步骤,增加了开发的周期而最后得到的效果却与原型法所差无几。但是系统开发中一些重要的环节仍是在设计过程中必须注意和努力完善的,如系统未来的拓展能力,代码的重用率,网站的安全程度,不同平台的兼容性,等等。3. 基于php的个人网站总体设计3.1 主要页面网站的页面主要分为:主界面,个人日记(博客),管理员界面,论坛界面四部分。不同的主界面有不同的功能模块和功能页面组成。3.1.1 主界面这是用户登录后浏览的第一个页面,主界面的色调,logo,各类功能选项,布局结构等是整个站点的基础,让用户对于整个站点的内容,结构以及功能有一个初步的了解。主页面提供用户前往其他页面的超链接,登录注册的窗口,以及一个新闻窗口,用来罗列站长选择的新闻资讯和站内热门话题等。3.1.2 个人日记这是一个简单的博客,站长可以在这里发表自己的文章或日记,而用户登录后可以对文章内容发表评论。3.1.3 管理员界面这是站长独有的功能界面,在这里站长可以对整个站点进行管理。用户的基本信息修改,用户论坛权限修改,论坛内容以及博客内容的修改都可以在这里实现。3.1.4 论坛界面论坛即是一个虚拟社区,它提供来到站点的用户互相交流的平台,这是整个网站的核心部分,用户在注册后来到这里可以通过发表话题和回复话题的方式进行交流,不同等级的用户在这里拥有不同的权限。管理员管理用户发表的话题以及用户在论坛里的回复内容。3.2 论坛功能设计论坛是本站点的主体。用户在注册登录后可以加入这个虚拟社区的交流中,但为防止恶意注册,或使用马甲进行人身攻击等行为,新用户注册必须获得注册码,注册码可以由管理员或高级用户提供,普通注册用户在获得一定积分或管理员给予高级用户权限后,可以获得一部分管理员权限。任何非禁言状态用户都可以在论坛内发表话题,经管理员审核后其他用户可以发表评论,若发现不合理言论,管理员可以屏蔽其评论情况严重的可以对其禁言。论坛还提供短消息功能,这是论坛内用户进行小范围交流的平台,用户可以互相发送只有发送双方才能看到的信息,可以作为一个简易的邮箱使用,也可以作为站长发送站内通知的工具。3.2.1 管理员界面主界面判断用户类型论坛界面普通用户功能: 发表新话题 收发站内短消息 回复 引用回复 修改个人信息管理员功能: 所有普通用户权限 审核新话题 禁言用户 锁定话题 发表新话题 回复 引用回复 修改普通用户信息用户登录(注册)退出主界面管理员界面 用户管理 个人日记管理 论坛话题管理 锁定话题 置顶话题 删除话题 删除用户 禁言用户 更改用户积分高级用户功能: 所有普通用户权限 部分管理员权限3.2.2 用户级别设计站点内的用户等级分为三类,其中管理员帐号拥有最高权限,高级用户其次,拥有部分的管理员权限,普通用户的权限最低。管理员高级用户普通用户发帖有权限有权限有权限回复有权限有权限有权限推荐有权限有权限需要一定积分修改主题有权限有权限可以修改自己的主题修改回复有权限有权限可以修改自己的回复查看用户信息有权限有权限有权限引用有权限有权限有权限为用户加分有权限有权限无权限屏蔽回复有权限有权限无权限审核主题有权限无权限无权限置顶主题有权限无权限无权限锁定主题有权限无权限无权限删除主题有权限无权限无权限禁言用户有权限无权限无权限提示用户等级有权限无权限无权限删除用户有权限无权限无权限4.基于php个人网站详细设计4.1 数据库设计整个站点的数据库使用8张表存放信息,admintextform存放博客文章,diaryreplyform用来存放用户在博客的留言,userform存放用户信息,usertextform存放用户发表的主题,userreplyform存放用户在论坛内的评论,hottextform记录用户对主题所作的置顶操作,messageform存放站内短消息,keyform存放注册码。4.1.1 博客文章表admintextform表用来存放博客文章,id是文章的编号为主键,这个值由数据库自动生成,title是文章的标题,content是文章的内容,datetime是文章完成的日期格式为年-月-日,view和reply分别是文章的被浏览数和回复数。idint(10)主键文章编号titleverchar(50)非主键标题contenttext非主键内容datetimedate非主键日期viewint(10)非主键浏览数replyint(10)非主键回复数4.1.2 博客评论表diaryreplyform用来存放用户在博客的留言,id是留言在表内的编号为主键,自动生成值,diaryid是用户回复文章的编号,username是回复者的称呼,content是回复内容,datetime是回复日期,格式为年-月-日,exacttime是回复时间,格式为时-分-秒。idint(10)主键回复编号usernameverchar(50)非主键用户名diaryidint(10)非主键回复文章编号contenttext非主键内容datetimedate非主键日期exacttimetime非主键时间4.1.3 用户表userform存放用户信息,id是用户的编号为主键,自动生成。username是用户称呼,usertype是用户类型,password是用户的密码,这三行的内容在注册时必须填写不能为空。email是用户的电子邮件地址,realname是用户的真实姓名,regedate是用户注册日期,格式为年-月-日。locked判断用户是否被锁定,0表示正常,1表示用户被锁定。img是用户自定义头像初始有默认值,writes是用户发表的主题数,reply是用户回复的统计,marks是用户的积分,sign是用户的签名。idint(10)主键用户编号usernameverchar(50)非主键用户名usertypeverchar(50)非主键用户类型passwordverchar(50)非主键密码emailverchar(50)非主键电子邮件realnameverchar(50)非主键真实姓名regdatedate非主键注册日期lockedint(2)非主键禁言imgverchar(255)非主键头像图片writesint(10)非主键发表主题数replyint(10)非主键回复数marksint(10)非主键积分signstext非主键签名4.1.4 用户文章表usertextform存放用户发表的主题,id用户文章的编号,自动生成为主键。title是文章的题目,content是文章的内容。username是用户的称呼。datetime和exacttime是注册的日期和时间,格式分别为年-月-日和时-分-秒。view和reply是主题的被浏览数和回复数。locked判断主题是否被锁定,0表示正常,1表示锁定。sticky判断主题是否置顶,0表示未置顶,1表示已被置顶。examine判断主题是否通过审核,0表示还未通过审核,1表示已通过审核。hot用来统计用户对主题执行的置顶操作数。editorname和editdate、edittime是修改主题的用户称呼和修改的是日期、时间,日期和时间的格式分别为年-月-日和时-分-秒。idint(10)主键文章编号titleverchar(50)非主键标题contenttext非主键内容usernameverchar(50)非主键作者datetimedate非主键日期exacttimetime非主键时间viewint(10)非主键浏览数replyint(10)非主键回复数lockedint(2)非主键锁定stickyint(2)非主键置顶examineint(2)非主键审查hotint(10)非主键推荐editornameverchar(50)非主键修改者editdatedate非主键修改日期edittimetime非主键修改时间4.1.5 用户文章评论表userreplyform存放用户在论坛内的评论,id是回复在表内的编号,自动生成为主键。replyid为回复的主题编号。content为回复内容,quote为引用的回复内容。username是用户的称呼,datetime、exacttime是回复的日期、时间。replyno为回复该主题时的次序。shut用来判断回复是否被屏蔽,0表示正常,1表示被屏蔽。editorname,edittime和edittime为修改回复的用户名,修改日期和修改时间。日期和时间的格式分别为年-月-日和时-分-秒。idint(10)主键回复编号replyidint(10)非主键回复主题编号contenttext非主键内容quotetext非主键引用usernameverchar(50)非主键作者datetimedate非主键日期exacttimetime非主键时间replynoint(10)非主键回复该主题的次序shutint(2)非主键屏蔽editornameverchar(50)非主键修改者editdatedate非主键修改日期edittimetime非主键修改时间4.1.6 短消息表messageform存放站内短消息,id是消息的编号,自动生成为主键。poster和receiver是消息的发送者和接收者。datetime、exacttime是短消息发送的日期和时间,日期和时间的格式分别为年-月-日和时-分-秒。idint(10)主键消息编号posterverchar(50)非主键发送者receiververchar(50)非主键接收者titleverchar(50)非主键标题contenttext非主键内容datetimedate非主键日期exacttimetime非主键时间4.2 具体功能实现为了能更好的说明网站的具体功能和实现方法,下面从网站的注册登陆开始,一步步的介绍站内的功能并说明功能实现的方法及其代码。4.2.1 用户注册登陆注册的链接点击有两处,分别在主界面my_index.php和论坛主页main_form.php上,点击链接后进入的页面相同为create_user.php。注册时必填的信息为用户名,密码,确认密码,电子邮件,真实姓名和注册码,将其中注册码的获得在后面说明。点击确认信息被传送到add_user.php,首先判断必要的信息是否正确输入,之后查询数据库内的用户名,查看新用户名是否已经存在,如果上述检查有一步没有通过,则终止注册,显示错误信息。在输入信息检查完成后,判断用户是否提交了自定义头像,签名这两项附加信息,根据不同输入情况分别使用四条sql语句将新用户的信息加入数据库。其中自定义头像需要专门的图像函数以及文件上传函数操作,将在下一节介绍。用户注册关键代码如下:$username=$_postusername; /用户名$password=$_postpassword; /密码$repassword=$_postrepassword; /重复密码$email=$_postemail; /电子邮件.输入信息判断.四种不同情况的sql语句if(!$signs&$img) /有自定义头像无签名$sql=insert intouserform (username,password,email,realname,regdate,img)values($username,$password,$email,$realname,now(),$img);else if(!$img&$signs) /有签名没有自定义头像$sql=insert into userform (username,password,email,realname,regdate,signs)values($username,$password,$email,$realname,now(),$signs); else if($img&$signs) /有签名且有头像$sql=insert into userform (username,password,email,realname,regdate,img,signs)values($username,$password,$email,$realname,now(),$img,$signs);else /既没有签名也没有头像$sql=insert into userform (username,password,email,realname,regdate)values($username,$password,$email,$realname,now();$result=mysql_query($sql); /执行sql语句注册后在主页面的登录框内输入用户名密码或点击论坛主页上的链接便可以登录网站了。其中主页面在每次加载时检查是否有登录数据传送,如果有则查询数据库判断用户的类型,并将用户名存入不同的全局变量中,管理员:$_sessionadminname;高级用户:$_sessionadminusername;普通用户:$_sessionusername;普通用户还要将用户是否被禁言的状态保存在全局变量$_sessionstate中之后刷新主页面。此时登录框内显示欢迎用户登录的信息。若未发现登录数据,则在登录框内显示输入栏由用户输入用户名密码后执行上述步骤登录。而论坛上的登录链接打开login_user.php页面,用户在输入用户名密码后,代码执行和主页面相同的判断,全局变量处理步骤后将页面转回到论坛主界面。关键判断部分的代码:if($_postsubmit)/sql查询userform表并将结果复制到变量$rows.if($rowsusertype=admin) /管理员$_sessionadminname=$rowsusername; /管理员session变量if($rowsusertype=adminuser) /高级用户$_sessionadminusername=$rowsusername; /高级用户session变量$_sessionusername=$rowsusername; /普通用户$_sessionstate=$rowslocked; /用户状态变量.4.2.2 用户个人信息管理用户在注册登录后便可以点击主界面和论坛主页上的链接进入个人管理中心edit_user.php查看管理自己的信息。修改后数据将被送到edit_user_data.php处理。其中大部分的代码和工作过程基本和注册时相同,只是将原来注册时的sql语句插入insert改为修改update。接下来介绍网站内自定义图片的操作及其代码。自定义图片设计到php文件上传函数和php图片操作函数。首先为了能实现文件的上传,需要在html表单的代码做修改如下:必须设置enctype属性为multipart/form-data,意思为设置表单的mime编码,这样才能完整的传送信息。之后使用php提供的$_file处理上传的图片文件,在上传文件时还要注意文件的类型,本次设计的网站上传图片支持jpeg,gif,png,上传后图片的大小必须有一定的限制,若超出了网站规定则需要使用php的图形函数对其做修改。4.2.3 管理员登陆本次设计的网站管理员帐号默认只有一个,管理员帐号无法申请注册,只有通过直接数据库操作才可以添加。管理员登录可以在主页面登录框输入管理员帐号密码或点击主页上的管理员按钮链接到专门的登录页面。在登录框内输入登录信息这种方式的后台代码和用户登录时完全一样,区别在于session变量的赋值不同上,而点击管理员按钮后页面将被转到login_admin.php,在这里输入正确的登录信息后将进入管理员功能界面admin_main_form.php。4.2.4 管理员功能进入管理与功能界面后,可以看到四个管理员操作的选项:写新文章,察看文章,论坛用户管理,论坛管理。写新文章时站长在write_diary.php页面输入文章标题和正文内容后信息将被发送到add_diary.php页面。在信息传送到add_diary.php之后首先对标题和内容进行检查,若发现有一项为空则停止报错,检查完后便将文章添加到数据库admintextform中。论坛用户管理界面提供管理员查看用户信息和删除,禁言,解禁,加分,扣分,提升等级,降低等级七项操作。删除用户时首先转入ask_delete_user.php页面,询问是否确认删除,确认后转入delete_user.php页面,在删除用户信息的同时删除该用户发表的主题、回复以及上传的自定义头像。$id=$_getid; /得到用户的编号$sql=select * from userform where id=$id; /查询用户名$result=mysql_query($sql); /执行查询$rows=mysql_fetch_assoc($result); /得到查询结果$username=$rowsusername; $sql=delete from userform where id=$id; /删除用户信息$result=mysql_query($sql);$sql=delete from usertextform where username=$username; /删除该用户的主题$result=mysql_query($sql);$sql=delete from userreplyform where username=$username; /删除该用户的回复$result=mysql_query($sql);if($rowsimg!=none.png) /删除该用户上传的头像图片unlink(d:/phpnow/htdocs./.$rowsimg); 论坛管理用来管理论坛内的主题,管理员可以审核新发表的主题,以及对主题进行置顶,锁定,删除,解除置顶,解除删除的操作,六项操作页面分别为examin_text.php,sticky_text.php,locked_text.php,delete_text.php,unsticky_text.php,unlocked_tsxt.php。这六项操作后台代码同样是以sql update为核心,因为代码工作方式与论坛用户功能中的操作类似,因此在这里不作详细说明。4.2.5 日志站长在点击管理员界面中的写新文章链接后就可以进入发表日志的界面write_diary.php,在这里输入标题和正文后信息被发送到add_diary.php页面,在这里首先检查标题或内容是否为空,如有问题则报错进行提示;检查无误之后使用sql add语句将文章信息插入到admintextform表中。点击主页面上的文章浏览按钮后,就可以进入查看日志的页面list_diary.php,这个页面列出了站长发表的文章的链接并提供以标题为关键字的搜索功能,搜索功能由select_diary.php,在信息被传送到select_diary.php页面后根据关键字查询admintextform表,并将查询内容显示在select_diary.php页面上。因为文章的数量可能较多,如果在一个页面全部列出可能会影响外观,因此每个页面的链接数要做一定限制,如10到15个,之后使用循环语句将admintextform中的文章信息动态的显示在页面上。关键代码:$page=$_getpage; /取得当前的页面编号$eachpage=15; /每个页面显示15个链接if(!$page) /判断是否为第一页$page=1;if(!$page|$page=1) /确定当前为第一页$start=0; /从数据库表中第一篇文章开始else$start=($page-1)*$eachpage); /计算当前页面第一片文章在数据库表中的编号$sql=select * from admintextform order by id desc limit $start,$eachpage; /在sql语句中加入范围限制从$start到$eachpage结束$result=mysql_query($sql); /执行查询 .while($rows=mysql_fetch_assoc($result)/while循环输出echo $rowstitle;. /显示链接.之后还要加上页码栏以便用户转跳页面4.2.6 论坛论坛的主页面为main_form.php,在这里提供用户个人控制,站内短消息的链接,同时动态的显示用户主题列表。在显示用户文章列表时使用和list_diary.php页面相似的方法:多页面;显示同一页面链接的数量;动态生成;页码栏,这些代码已经在上一节有过介绍,在这里不详细说明。在显示文章标题链接时,同时显示该文章在usertextform表中的其他详细信息日期,访问回复数量,被推荐次数,置顶锁定状态以便给用户浏览时提供更直观的信息。论坛同样提供搜索的功能,与博客中的搜索相比,论坛中的搜索关键字有用户名,标题和时间三种,通过html表单中添加标签定义关键字的类型,然后将关键字的类型以及查询关键字发送到select_text.php页面完成查询,在这之后将查询结果显示在select_text.php页面上。$key=$_postkey; /获得form表单中的关键字类型$text=$_posttext; /获得关键字if($key=1) /以标题为关键字$sql=select * from usertextform where title like %$text% order by sticky desc,datetime desc,exacttime desc;if($key=2) /以作者为关键字$sql=select * from usertextform where username=$text order by sticky desc,datetime desc,exacttime desc;if($key=3) /以日期为关键字$sql=select * from usertextform where datetime=$text order by sticky desc,datetime desc,exacttime desc;$result=mysql_query($sql);执行查询用户点击main_form.php中发起新话题的链接后进入write_text.php页面发表新主题,在输入标题和内容后,信息被发送到add_text.php页面,整个流程和管理员添加新的博客文章类似,最后用户发表的新主题被添加到usertextform表中。新发表的主题为被管理员审核前除了作者以外的用户是无法回复的。主题发表后修改权限只有管理员、作者和高级用户拥有,同时这三类用户还有对在此主题内回复过用户积分的修改和屏蔽不良用户评论的权限。用户点击main_form.php页面上的标题链接后可以进入浏览主题内容的页面user_view_text.php,分页显示主题的内容以及用户的回复,每页显示的回复为五个。在显示主题和回复内容的同时显示作者的个人信息。主题推荐的链接,主题内容和回复内容的修改的链接,加分、屏蔽发言的链接都在这个页面上。点击推荐链接后页面转到hot_text.php,在检查用户的权限后还要检查hottextform表中的信息,因为用户对同一主题的推荐只能有一次。在检查完成后修改usertextform表中主题被推荐的次数并将该用户以推荐该主题的信息添加到hottextform表中。编辑主题和编辑回复的代码类似,页面分别为user_edit_text.php和user_edit_reply.php,信息传递到处理页面后检查用户身份和权限,完成后使用sql add语句修改usertextform表和userreplyform表的数据。用户屏蔽的页面为shut_reply.php,发言被屏蔽后用户发言的内容会被提示内容取代。回复主题时用户可以直接在user_view_text.php页面底部的输入框内输入回复内容或点击引用进入引用回复页面,两个页面为user_reply_text.php和user_quote.php。两个页面代码上的主要区别在于发往user_quote.php页面还包括了引用的回复内容,该回复的作者名和在数据库表内的编号。在数据库操作上,引用回复还要添加userreplyform表中quote的内容。$sql=select max(replyno) from userreplyform where replyid=$replyid;/查询总的回复数$result=mysql_query($sql); /得到查询结果if($result)$rows=mysql_fetch_row($result);$replyno=$rows0+1; /确定当前的回复是第几号回复else$replyno=1; /第一号回复$sql=update usertextform set reply=reply+1 where id=$id; /用户的回复数+1$result=mysql_query($sql);sql=update userform set reply=reply+1 where username=$username;$result=mysql_query($sql);用户提交回复后为了能让用户更方便的查看自己的回复内容,页面要转到该用户回复的那一页上而不是第一页,这是页面定位的代码:.$sql=select count(*) from userreplyform where replyid=$replyid;$result=mysql_query($sql);$rows=mysql_fetch_row($result);$page=(int)($rows0/$eachp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地产策划降薪方案(3篇)
- 老街旧房重建方案(3篇)
- DB23-T2943-2021-龙榛果园营建技术规程-黑龙江省
- 分公司属地化管理制度
- 培训学校相关管理制度
- 内部私人会所管理制度
- 出租公司内部管理制度
- 天桥施工安全方案(3篇)
- 全面预算报告管理制度
- 公路施工作业管理制度
- 体育保健学复试题及答案
- 2025年中考历史专题复习讲义(含练习题及答案)
- 2025年安徽省九年级中考语文第一次模拟试卷附答案解析
- 泥浆泵清淤外运专项施工方案
- 洁净室及相关受控环境 运维服务 征求意见稿
- 计算机本科毕业论文-网上水果商城系统的设计与实现
- 中药草本洗发水DIY体验企业制定与实施新质生产力战略研究报告
- 两相交错并联Boost变换器的设计及仿真分析
- 中国商务环境调查报告 2025 -中国美国商会
- 广东省茂名市2023-2024学年高一下学期7月期末考试 语文 含解析
- DBJ41-T 172-2017 河南省城市绿地养护标准
评论
0/150
提交评论