《基于PHP的考研论坛系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
南阳理工学院本科生毕业设计(论文)学院(系):软件学院专业:网络工程学生:秦梦霞指导教师:耿凯峰完成日期2015年05月 南阳理工学院本科生毕业设计(论文)基于PHP的考研论坛系统的设计与实现DesignandImplementationofForumforGraduateSchoolExamSystemBasedonPHP总计:毕业设计(论文)30页表格:7个图片:22个 基于PHP的考研论坛系统的设计与实现南阳理工学院本科毕业设计(论文)基于PHP的考研论坛系统的设计与实现DesignandImplementationofForumforGraduateSchoolExamSystemBasedonPHP学院(系):软件学院专业:网络工程学生姓名:秦梦霞学号:1315934006指导教师(职称):耿凯峰讲师评阅教师:黄照鹤完成日期:2015年05月01日南阳理工学院NanyangInstituteofTechnology 基于PHP的考研论坛系统的设计与实现基于PHP的考研论坛系统的设计与实现网络工程秦梦霞基于PHP的考研论坛系统的设计与实现[摘要]为了方便所有学子和父母们及时了解和交流考研的相关问题,设计了这个PHP考研论坛。本文从分析软件项目的可行性出发,提出了基于B/S结构考研论坛系统的基本设计思想,主要使用PHP、MySQL开发,前台页面通过Dreameaver软件进行布局设计,并运用了页面模块化、信息发布的动态生成、静态页面显示等。本系统实现的功能主要分为两类:前台功能和后台功能,主要有:用户注册与登录,发帖与回帖,帖子管理,用户管理,论坛系统,公告管理等功能。[关键词]交流网站;PHP;MySQL;B/S模式 基于PHP的考研论坛系统的设计与实现基于PHP的考研论坛系统的设计与实现DesignandImplementationofForumforGraduateSchoolExamSystemBasedonPHPNetworkEngineeringMajorQinMengxia基于PHP的考研论坛系统的设计与实现Abstract:FortheconvenienceofallstudentsandparentstokeepabreastofrelevantproblemanddesignedthePHPPubMed,PubMedforum.Thispaperfromtheanalysisofthefeasibilityofthesoftwareprojectof,proposedbasedonB/Sstructurestudysectionoftheforumsystem,thebasicdesignidea,themainuseofPHPandMySQLdevelopment,frontpagebythesoftwareDreameaverforlayoutdesign,andusepagemodule,informationdisseminationofdynamicandstaticpagedisplay.Thesystemtoachievethemainfunctionisdividedintotwocategories:frontandbackofficefunctions,mainlyhas:userregistrationandlogin,postingandreplies,postmanagement,usermanagement,forumsystem,bulletinmanagementfunctions.Abstract:Exchange;PHP;MySQL;B/Smodel 基于PHP的考研论坛系统的设计与实现目录1引言11.1项目开发的背景11.2项目开发的意义11.3本课题研究目标和内容22相关技术22.1PHP22.2MySQL22.3B/S结构32.4SQL语言43需求分析53.1系统可行性分析53.1.1技术可行性53.1.2经济可行性53.1.3社会可行性63.1.4系统功能性分析63.2业务流程分析64系统设计74.1系统设计目标74.2系统设计思想84.2.1先进性84.2.2实用性84.2.3可靠性84.2.4可扩充性84.2.5安全保密性84.3系统功能设计84.4系统数据库设计104.4.1概念结构设计104.4.2数据库表逻辑结构设计125系统实现135.1网站首页的实现135.2会员注册界面的实现145.3用户欢迎界面的实现16 基于PHP的考研论坛系统的设计与实现5.4版块信息界面的实现175.3帖子信息界面的实现185.4发帖界面的实现195.5家园热帖排行榜界面的实现205.6后台管理员登录界面的实现225.7后台管理员审核会员界面的实现235.8系统测试与分析245.8.1系统测试的重要性245.8.2测试实例的研究与选择255.8.3测试环境与测试条件255.8.4测试用例255.8.5系统测试结果265.8.6系统评价27结束语28参考文献29致谢301 基于PHP的考研论坛系统的设计与实现1引言1.1项目开发的背景近年的互联网的急速发展,网络已经波及了中国的各行各业,作为学子的我们更是不能离开互联网,而考研则是我们学生和家长最为关心的问题,那么势必要有一个好的考研论坛,来方便学子们交流及时了解考研的相关动态,来及时的调整我们学习的重点方向,所以这个考研论坛的开发有着重要的意义,从初期的综合性论坛到越来越多的专业性论坛中逐渐分离出来[1]。在人们日常生活和工作经历中,专业性的论坛也是越来越受到人们的重视,数以万计的会员活跃在论坛中,为各个行业的兴旺和交流起到了很大的作用。考研论坛是为考研的年轻人群搭建一个交流和学习的平台,随着电脑和移动手机不断普及,不但是学子们关心考研的问题,很多家长朋友也想了解这方面的相关知识,以便帮助孩子及时的掌握大的考研方向,所以这个论坛的建立是很有必要的,它会给很多人带来方便[2]。基于对上述的认识,收集相关考研资料和数据,查阅有关文献及技术参数,对考研论坛实际需求等方面进行了研究和分析,发现现在的论坛普遍存在以下几个方面的弊端:一个是大论坛分类繁多,没有什么特别的特色,而小型论坛因为技术财力等问题,往往又界面缺乏美观,访客稀少,而管理员疏于打理,致使人气更加微弱。而专业性的技术人才望望都扎堆于大的论坛。从这几个方面来看,我要设计的这个论坛一个是版块设置要合理,另一个是界面要突出考研相关问题重点,这样才能更好的吸引人气,也能将我的技术发挥到更好。应该看到,互联网发展极为迅猛,随着互联网的普及,移动互联网也跟着发展起来,而在互联网上占有一席之地的论坛,特别是年轻人关心的问题要如何发展,这是一个很大的问题[3]。因为它关系着年轻人一生的前途。1.2项目开发的意义考研论坛系统的实施具有如下现实意义:第一,通过开发这次考研论坛系统,能够将自己所学的技术应用于实践的开发中,使自己不仅仅限于理论,更可以立足于实践,为毕业后做项目打下基础。第二,考研是时下很多大学生和家长所感兴趣的问题,而通过系统游客可以自己注册登录,随时了解考研新动态,方便广大学子和家长。第三,对于一些有用的帖子,系统能够稳定的保存帖子信息,而对于一些不符合要求的帖子,则不会被发表到论坛上。这就极大限度的保持了信息的正确性和健康性等。第四,通过整个论坛的开发我详细的了解了软件开发的流程,为日后走上工作岗位开发软件打下基础。39 基于PHP的考研论坛系统的设计与实现1.1本课题研究目标和内容本课题旨在提高考研信息处理的精度、准确度和提高更新效率。本课题研究内容为考研论坛管理系统工作中将要使用的信息化管理系统的设计与开发。论文首先较为详尽地介绍了面向对象分析与设计的有关概念与技术。接着对热点版块的可行性进行了分析,然后对系统的设计思想、设计目标与系统的整体结构进行了明确的规划。在论文的最后,我主要阐述了对系统界面、数据库等的设计与实现。本考研系统采用结构化分析的方法,首先进行系统开发背景的介绍,系统的开发目的;接下来系统的关键技术以及系统开发模式的介绍;之后是系统分析,包括系统可行性分析,业务流程分析,数据流程分析和数据字典;然后是系统设计,包括功能设计和数据库的设计;接下来是系统实现,主要讲述了系统的界面实现;最后是系统测试,测试了本系统的功能和性能。为了体现分散操作、统一管理的思想,根据上述的技术,将整个系统划分为论坛前台和管理后台两个部分。2相关技术2.1PHPPHP是一种通用脚本语言,在大三的那一年学习了这样的一门与网页有关的语言。它是一种HTML内嵌式的语言,可以在服务器端执行的嵌入HTML文档,语法吸收了C语言、Java和Perl的特点,在工作和生活中被广泛运用[4]。PHP的语法十分的独特,它混合了C语言、Java、Perl以及PHP自创的语法。PHP比CGI或Perl在执行动态页面的时候具有更快的速度[5]。在比较动态页面的执行效率的时候,相对于HTML标记的CGI,用PHP做出的动态页面执行效率要高许多;PHP在执行过程中不但可以将程序嵌入到HTML文档中去执行而且还可以执行编译后代码,为了达到加密和优化代码运行,使代码的运行更迅速,编译是必不可少的。PHP独特的语法混合了C语言、Java、Perl以及PHP自创新的语法。PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快[6]。PHP在制作网页方面具有非常强大的功能,在PHP中可以实现所有的CGI的功能,几乎所有流行的数据库以及操作系统,PHP都支持。在这些中最为重要的是PHP可以用C、C++进行程序的扩展。2.2MySQLMySQL是一个关系型数据库管理系统,目前属于Oracle公司。它关联数据库管理系统,将数据保存在不同的表中,并不是将所有的数据都存放于同一个空间里,这样就很大程度的提高了速度和灵敏性[7]39 基于PHP的考研论坛系统的设计与实现。在所有访问数据库的语言中,MySQL的SQL语言则是最常用的标准化语言。MySQL可以开放源码,在生活和工作中,选择MySQL作为网站数据库的一般都是中小型网站的开发。为了使开发环境更良好,可以在开发的同时搭配PHP和Apache。虽然与Oracle、DB2、SQLServer等大型数据库相比,MySQL有不足,但是由于MySQL是开放源码软件,可以降低总体拥有的成本。支持 AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供了 API[8]。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和Tcl等,是一种灵敏都非常高的数据库。1.1B/S结构B/S结构就是浏览器和服务器相结合的一种结构。随着Internet技术对C/S结构的一种变化或者改进的结构。用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,事务逻辑在服务器端(Server)实现,形成所谓三层3.tier结构。简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。局域网建立B/S结构的网络应用,可以在Internet/Intranet模式下数据库应用,使得易于把握、成本低。并且一次性到位的开发,可以使不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;保护数据平台和管理访问权限,使得服务器数据库更安全[9]。尤其是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。C/S与B/S区别:最明显的区别是Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。(1)硬件环境不同:C/S一般建立在小范围的专用的学校环境上,局域网之间则通过专门服务器提供连接和数据交换服务。B/S则是建立在广域网之上,例如电话上网、租用设备、信息自己管理。有比C/S更强的适应范围,只要有操作系统和浏览器[10]。(2)对安全要求不同:C/S面向十分固定的用户群,在信息安全方面有很强的控制能力,一般高度机密的信息系统采用C/S结构适宜。B/S发布部分可公开信息,但是是建立在广域网之上,对安全的控制能力弱,面向的是不可知的用户群。(3)对程序架构不同:C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求B/S结构的程序架构是发展的趋势,从微软的.Net系列的BizTalk2000Exchange2000等,全面支持学校的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟[11]。(4)系统重用不一样:在使用C/S程序的过程中,我们必须整体性考虑,而在B/S要求下的构件的重用性明显要优于在C/S要求下的构件的重用性。B/S对的多重结构,要求构件相对独立的功能,能够相对较好的重用。39 基于PHP的考研论坛系统的设计与实现(5)维护系统不同:C/S程序具有整体性,所以要整体考察,处理出现的问题以及系统升级。再做一个全新的系统B/S构件组成,方便构件个别更换,实现系统无缝升级。系统维护开销减到最小。用户从网上自己下载安装实现升级。(6)处理问题不同:C/S程序可以处理用户面固定,在相同区域,安全要求高需求,与操作系统相关,都是B/S建立在广域网上,面向不同的用户群,分散地域,而C/S则无法做到,与操作系统平台关系最小[12]。(7)用户接口不同:C/S是建立在Window平台上,表现方法有限,对程序员要求较高;B/S则是建立在浏览器上,有更加丰富和生动的表现方式与用户交流。并且大部分难度减低,减少开发。(8)信息流不同:C/S程序一般是典型的中央集权的机械式处理,交互性相对低。B/S信息流向可变化,信息、流向的变化,更像交易中心。2.4SQL语言SQL语言广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。它的优点如下:(1)非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,使用在哪儿合适,而用户从不需要知道表是否有索引,表有什么类型的索引[14]。(2)统一的语言SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。SQL为许多任务提供了命令,包括:查询数据在表中插入、修改和删除记录,建立、修改和删除数据对象,控制对数据和数据对象的存取,保证数据库一致性和完整性。以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中[13]。(3)SQL是所有关系数据库的公共语言39 基于PHP的考研论坛系统的设计与实现由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的[15]。SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。它是可以移植的,并且容易学习使用。但是所有SQL语句都必须由数据库服务器独立地执行。这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。如果使用了PL/PGSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。通过使用PL/PGSQL,应用可以获得可观的性能提升[16]。1需求分析1.1系统可行性分析在建立这个考研论坛的时候,为避免投资失误,保证新系统的成功开发和运行,将我们从技术、经济和社会三方面对本系统的可行性进行分析和研究。1.1.1技术可行性根据一个小型论坛提出的系统功能、性能及实现系统的各种约束限制性条件,在衡量所需的技术是否具备的时候,一般是根据新系统目标来衡量。我所做的考研论坛系统是包含数据库管理和查询的一个系统,我们可以很乐观的进行估计,利用现有技术条件完全可以达到该系统的功能目标,这是因为现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好。开发期限考虑给予的较为充裕,可以在规定的期限内开发完成预计系统。因此该开发系统具有技术可行性。1.1.2经济可行性通过对本系统的分析研究,主要从成本和效益两方面进行分析其经济可行性:(1)支出本系统的设计是为了完成毕业设计,所以用到的都是一些开源软件或在试用期的软件,所以开发系统软件费用不用考虑。如果本系统运行,需要把适用版的软件编写的代码用一些开源工具编译一次即可,所以运行的软件费用也不存在。在硬件方面,开发本系统只需要一台电脑,所以开发系统硬件费用也不用考虑。如果本系统运行,只需要花费一些钱在网上购买个空间并注册一个域名。但是这个费用是相当少的。综上所述,本系统的支出成本很少,可以承受。(2)效益本系统的效益可以从经济效益和社会效益两方面考虑。其经济效益主要来源于系统的广告收入,我们可以邀请些销售考研资料的企业为我们网前些天投放广告,其收入会远超过系统的开发和运行成本。系统投入运行后可以基本满足所有用户的需求,减少用户的查询时间,提高查询效率,这些都是社会效益。并能起普及一些考研知识,来更好的促时学习,帮助有上进心的朋友来完善自己的学业人生。39 基于PHP的考研论坛系统的设计与实现因此,考研论坛系统在不管是在经济上还是在它的社会效益上都是可行的。1.1.1社会可行性本系统的社会可行性主要从法律因素、用户使用可行性两方面进行研究。(1)法律因素考研论坛系统是经过努力在结合实际情况下进行开发出来的,经过了大量的调查问卷所得出的,并且是在独立的环境下得出的,我们禁止抄袭。(2)用户使用可行性:本系统需要用户具备在MicrosoftWindows平台上使用个人电脑的知识。使用系统的管理员在投入使用前,无需对操作系统的人员进行培训。这样既减少投入成本又简化了操作环节。由以上分析可知,本系统具有社会可行性。1.1.2系统功能性分析本系统实现的功能主要分为两类:前台功能和后台功能,主要有:用户注册与登录,发帖与回帖,帖子管理,用户管理,公告管理等功能。(1)前台功能用户注册模块是为了方便广大用户使用这个信息系统设计的,为以后的考研信息发布、信息交互以及论坛交流提供个人基本的资料等功能。用户通过贴子的形式迅速、便捷地发布自己的心得体会。为充分展现网站读者与作者的交互性,采用动态网页技术实现信息在线发布。论坛主题的发布和回复以及留言功能,主要包括文字形式和图片形式。 实现用户信息的管理功能,主要包括修改用户的基本信息和修改用户的登录密码等。用户登录模块主要实现用户登录验证,通过用户登录页面对用户进行校验。用户在登录前要先注册,输入用户名、性别、密码等进行注册。在登录过程中输入用户的帐号和密码,正确则进入,错误则返回再输入。(2)后台功能 论坛帖子管理要实现对帖子的管理功能,主要包括论坛帖子的审核、论坛帖子的删除、论坛帖子的置顶和论坛帖子的推荐等。论坛主题回复管理要实现对回复内容的管理,主要包括回复内容的审核、回复内容的删除和回复内容的屏蔽等。论坛版块管理模块要实现论坛版块信息的功能,主要包括论坛版块信息的添加、删除、修改、移动和屏蔽等。 论坛公告管理要实现对公告的管理功能,主要包括公告的添加、删除、修改和置顶等。 实现论坛贴子后台管理中的各种查询,如按照回复数量查询、按照贴子关键字查询、贴子类型查询和按照发表时间查询等。后台功能主要是系统管理员进行管理。1.2业务流程分析在进行业务流程分析时,为了能够弄清楚各个环节需要的信息、信息来源、流经去向、处理方法、计算方法、提供信息的时间和信息形态(报告、报单、屏幕显示)等39 基于PHP的考研论坛系统的设计与实现,我们通常要按照原有信息流动过程,逐个地调查分析所有环节的处理业务、处理内容、处理顺序和对处理时间的要求。业务流程分析的作用有很多,一般在进行该业务处理过程中,可以帮助开发者更好了解,也能更加迅速的发现和处理系统调查工作中的错误和疏漏。我们可以通过业务流图来进行,即用一些规定的符号及连线来表示某个具体业务处理过程,如图3-1所示。图3-1业务流图1系统设计1.1系统设计目标系统开发的总体任务是实现本考研论坛管理从游客提出注册申请到会员信息管理的规范化和自动化,从而达到奔本考研论坛管理工作高效率的目的。使得信息传递更加的迅猛快捷,实现无纸化、办公信息化管理,以提高信息传播的迅速性和正确性,减少人力、物力的投入。计算机的资源是受到限制的,因此要充分利用PHP技术和MySQL的功能,设计出功能强大的软件,同时要尽可能减少对系统资源的占用,界面的设计上讲究方便、灵活,这样用户使用起来非常之简便,对本系统要求有良好的安全性和保密性。39 基于PHP的考研论坛系统的设计与实现1.1系统设计思想1.1.1先进性本系统采用先进的计算机、网络和数据库技术,选用具有良好发展前景的产品,为系统的应用及开发创造一个良好的环境,使系统具有先进性,并在相当长的时期内不失其先进性。1.1.2实用性随着Internet技术的发展,人们的日常生活已经离不开网络。Internet的发展历程以及目前的应用状况和发展趋势,可以充分地相信网络技术将极大的改变我们的生活和工作方式,考研也是近年人们最关注的热点问题。而此时本考研论坛管理信息管理系统就能发挥其优越性和实用性,且用户界面做到直观、友好,使用本系统的相关人员只需经过简单培训即可操作。1.1.3可靠性系统采用Win7操作系统和MySQL数据库,确保数据的一致性和完整性,并使系统免受病毒感染。提供完善的数据备份方案和系统崩溃后的恢复手段。1.1.4可扩充性本系统采用B/S模式的网络系统拓扑结构灵活,适应性强,易于扩展;用户的增减不影响系统的运行;系统设备配置灵活方便,兼容性和开放性好,便于升级;同时采用PHP先进的封装技术实现业务逻辑与程序模块相互独立,具有高度的程序独立性和数据独立性,使本考研论坛管理系统业务的变更对系统的修改减至最小,方便了系统的扩充和修改。1.1.5安全保密性系统在系统级、数据库级和应用级提供三级权限控制功能,检查用户是否具有合法身份和权限,以防止非用户的入侵或数据的不合法使用,有效地保证数据的安全性。1.2系统功能设计把系统需求转换成用系统表示的过程就是系统设计。我在做这次考验系统的总体规划的前提下,先分析并研究了目标系统,我认为这是全面开发系统的重要基础。制定出此次考研论坛系统的总体规划的时候,是立足于对考研论坛系统全面分析调查的基础之上的。系统设计包括五个模块,分别是:系统总体设计、系统详细设计、系统数据库设计、系统开发工具、开发技术和开发模式等。在对数据流图进行分析的基础之上,我从数据流图出发,得出的层次化的模块结构图。考研论坛系统前台功能模块图如图4-1所示:39 基于PHP的考研论坛系统的设计与实现图4-1考研论坛系统前台功能模块图会员注册:未注册的游客可以通过此模块填写所要注册的用户账号和密码。当点击注册按钮时,系统会自动检测所要注册的账号是否已被注册并给予用户提示(如果账号已存在时,系统提示用户已存在);注册成功后系统会自动登录用户注册的账号并跳转至系统首页。修改信息:点击系统右上角的修改资料,进入用户个人资料修改页面,填写完要修改的信息后单击确定即可修改用户个人信息;发帖:用户登录以后进入发帖页面,填写完发帖标题、发帖内容等信息以后,单击提交按钮,发帖成功。回帖:用户登录以后,进入帖子的详情页面点击,点击我要发帖可以对该帖子进行回复。考研论坛系统后台功能模块图如图4-2所示:图4-2系统后台功能模块图39 基于PHP的考研论坛系统的设计与实现管理板块:在改模块下可以添加新的板块和管理已经添加的板块。单击添加板块进入添加板块页面,填写完信息以后单击提交按钮可以添加板块;单击版块管理,进入版块管理页面,可以对已添加的板块进行删除、编辑操作。管理会员:在该版块下可以对注册过的用户进行管理。管理帖子:在该版块下可以对用户发表的帖子就行置顶、删除的操作。1.1系统数据库设计数据库是本系统的核心和基础。它设计的好坏直接影响着整个系统的质量。一切系统设计的基础是数据,举个例子,我们可以将数据库设计比作高楼大厦的根基,哪怕设计的有一点瑕疵,都会在系统开发过程中引发很多问题,包括会影响到后期的系统维护、功能变更和功能扩充,再严重一点甚至要重新设计,重做大量已完成的工作。整个数据库采用模块化设计模式。模块化是指解决一个复杂问题时自上项下逐层把系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。1.1.1概念结构设计由上面的数据项,我们可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。现在对各个实体属性结构进行分析,共包含以下5个实体属性。(1)会员该实体包含会员的账号、密码、姓名、性别、级别等属性,如图4-3所示:图4-3会员的实体属性图(2)版块该实体包含版块的ID号和版块名属性,如图4-4所示。图4-4版块实体属性图39 基于PHP的考研论坛系统的设计与实现(3)管理员该实体包含管理员的账号和密码属性,如图4-5所示。图4-5管理员实体属性图(4)回帖信息该实体包含回帖信息的ID号、版块、标题、会员、内容等属性,如图4-6所示。图4-6帖子实体属性图(5)回帖信息该实体包含回帖信息的会员ID、主贴ID、日期、内容等属性,如图4-7所示。图4-7回帖实体属性图E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图表示。对用户工作环境中所涉及的事务的是实体,对实体特征的描述的则是属性。在此次模型中,包含很多名称,但都是相通的,比如:模型中的实体并不是单个实体或表中的一行,而是相当于实体集、一个表。在此次系统E-R图中,我们用矩形来表示实体,在矩形框中标注上实体名称。我们表示实体间联系的时候用菱形,并把联系名写入菱形框内。用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。实体的性质是属性,39 基于PHP的考研论坛系统的设计与实现用椭圆框表示。关键属性则是与实体之间用一条线相连的表的主码,另一关键属性项加下划线。在此次系统中,存在相互联系的是各子系统模块中主键相同的字段之间。我们可以在系统中实现对他们的完整性和一致性控制。从数据需求分析中得出系统的实体属性图,遵循三范式原则,对实体之间的依赖关系进行了整合,得出系统E-R图,如图4-8所示:图4-8系统E-R图说明:图中用矩形表示实体。实体之间的关系用菱形表示,用无向边把菱形与有关实体连接,在边上标明联系的类型。1.1.1数据库表逻辑结构设计数据库的概念设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。由上述数据库的分析和概念设计,针对本系统的需求我们设计出以下几张表,具体逻辑结构如下:(1)管理员信息表,用来存放管理员的基本信息,逻辑结构表如4-1所示。表4-1管理员信息表列名类型长度描述Admin_idInt11IDAdminuserVarchar50帐号PasswordVarchar100密码(2)板块信息表(bk),用来存放板块的基本信息,逻辑结构表如4-2所示。表4-2版块信息表字段名称字段说明数据类型是否主键是否允许为空Bk_idIDIntYESNOBk版块Varchar(100)NOYESBk_ms版块描述Tex(16)NOYESPic版块LOGOVarchar(100)NOYES(3)帖子信息表,用来存放帖子的基本信息,逻辑结构表如4-3所示。39 基于PHP的考研论坛系统的设计与实现表4-3帖子信息表字段名称字段说明数据类型是否主键是否允许为空Bbs_idIDIntYESNOUsername会员IDVarchar(100)NOYESTitle标题Varchar(100)NOYESBk_id版块IDInt(4)NOYESContent内容Text(16)NOYESBbs_date发表日期Datetime(8)NOYESIs_zd是否置顶Int(4)NOYESTx头像Int(4)NOYESReply_count回帖总量Int(4)NOYESHits点击率Int(4)NOYES(4)会员信息表,用来存放会员的基本信息,逻辑结构表如4-4所示。表4-4会员信息表字段名称字段说明数据类型是否主键是否允许为空Hy_idIDIntYESNOUsername帐号Varchar(100)NOYESPassword密码Varchar(100)NOYESName姓名Varchar(100)NOYESSex性别Int(4)NOYESTelephone电话Varchar(100)NOYESCreate_date注册日期Varchar(100)NOYESEmail电子邮箱Varchar(100)NOYESIs_lock是否锁定Int(4)NOYES(5)回帖信息表,用来存放回帖的信息,逻辑结构表如4-5所示。表4-5回帖信息表字段名称字段说明数据类型是否主键是否允许为空Reply_idIDIntYESNOBbs_id主贴IDInt(4)NOYESUsername会员帐号Varchar(100)NOYESContent内容Text(16)NOYESReply_date回复日期Datetime(16)NOYESTx头像Varchar(100)NOYES1系统实现1.1网站首页的实现网站首页包括网站公告和热门板块的设计,他们之间实现的原理都是相同的。实现对用户进入系统的一个验证功能的是登录模块。它用来验证用户登录时所输入的信息,以此来确定用户登录的身份。然而系统中所有用户的登录都是通过系统首页的初时界面来展现的。39 基于PHP的考研论坛系统的设计与实现在本系统运行的时候,用户需要登录才能进行接下来的操作,用户的登录信息验证主要涉及:用户的用户名、密码和用户的身份是否与数据库中所存的用户信息相匹配,以及该用户是否被管理员冻结等。如果用户不能进入本系统,则说明信息输入不对或该用户已被管理员冻结,这时系统将给出用户提示信息。反之用户将成功登录系统。系统在实现过程中当用户成功登录系统时我们将把用户的登录信息保存在Session对象中,这样当用户进入某个页面时我们就可以通过Session来判断用户是否已正常登录,以达到限制非法用户的登录的目的。在地址栏中输入运行网址则表明系统成功的运行,系统运行首页如图5-1所示。用户输入正确的网址后,即来到了网站的首页,如下图所示:图5-1网站首页1.1会员注册界面的实现用户点击会员注册链接后,可以查看会员注册信息。该模块功能主要是用于会员的注册,其中包括会员的一些基本的信息,用户必须填写用户名、密码、姓名、性别、电话、邮箱这些信息后,才能够进行注册。当用户填写完信息之后,点击确定按钮,系统就会提示注册成功请登录,如果该用户已注册,则会直接提示该账号已存在,请登录或者是重新注册。39 基于PHP的考研论坛系统的设计与实现为了进一步提高系统的安全性,在用户注册过程中将对用户的密码采取MD5加密的方式将用户的密码自动转换成一个32位的字符串存储在数据库中,为用户的注册提供了一个安全的保护措施,防止用户的个人信息泄露被别人使用,该界面设计的简洁明了而又大方,如图5-2所示:图5-2会员注册界面利用POST方法从前台表单获取用户的注册信息提交到PHP代码,PHP通过执行sql语句的insertinto语句将用户信息写入到数据库中,主要代码如下:alert('注册成功,请登录!');window.location.href='index.php';";}Else39 基于PHP的考研论坛系统的设计与实现{echo"";}}//修改操作if($act=='edit'){$id=$_POST["id"];$sql="updatehysetname='$name',sex='$sex',telephone='$tel',email='$email'whereuser_id='$id'";$query=mysql_query($sql);echo"";}?>5.3用户欢迎界面的实现用户登陆本系统后,会出现欢迎登录界面。如下图所示:图5-3用户首页界面用户登录成功以后跳转到论坛首页,通过if语句判断是否存有用户session信息并显示用户个人信息和网站数据,主要代码如下: 39 基于PHP的考研论坛系统的设计与实现 5.4版块信息界面的实现点开具体的版块信息页面后,会出现该版块下的具体的。如下图所示:图5-4版块信息界面点击模块名以后通过链接跳转到该模块下,PHP通过执行select语句查询出该模块下的数据信息并显示在页面中,主要代码如下:$pagecount){$page=ceil($num/$pagesize)-1;}$nextpage=$page+1;$prepage=$page-1;$prepage=$page-1;$result=mysql_query($exec);if($num==0){echo"暂时没有信息";}Else{while($rs=mysql_fetch_array($result))}$i=$i+1;?>