基于php的考研论坛系统的设计与实现

基于php的考研论坛系统的设计与实现

ID:11074504

大小:1.15 MB

页数:37页

时间:2018-07-09

上传者:U-10243
基于php的考研论坛系统的设计与实现_第1页
基于php的考研论坛系统的设计与实现_第2页
基于php的考研论坛系统的设计与实现_第3页
基于php的考研论坛系统的设计与实现_第4页
基于php的考研论坛系统的设计与实现_第5页
资源描述:

《基于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项目开发的意义考研论坛系统的实施具有如下现实意义:第一,通过开发这次考研论坛系统,能够将自己所学的技术应用于实践的开发中,使自己不仅仅限于理论,更可以立足于实践,为毕业后做项目打下基础。第二,考研是时下很多大学生和家长所感兴趣的问题,而通过系统游客可以自己注册登录,随时了解考研新动态,方便广大学子和家长。第三,对于一些有用的帖子,系统能够稳定的保存帖子信息,而对于一些不符合要求的帖子,则不会被发表到论坛上。这就极大限度的保持了信息的正确性和健康性等。第四,通过整个论坛的开发我详细的了解了软件开发的流程,为日后走上工作岗位开发软件打下基础。30 基于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]30 基于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对的多重结构,要求构件相对独立的功能,能够相对较好的重用。30 基于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是所有关系数据库的公共语言30 基于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)效益本系统的效益可以从经济效益和社会效益两方面考虑。其经济效益主要来源于系统的广告收入,我们可以邀请些销售考研资料的企业为我们网前些天投放广告,其收入会远超过系统的开发和运行成本。系统投入运行后可以基本满足所有用户的需求,减少用户的查询时间,提高查询效率,这些都是社会效益。并能起普及一些考研知识,来更好的促时学习,帮助有上进心的朋友来完善自己的学业人生。30 基于PHP的考研论坛系统的设计与实现因此,考研论坛系统在不管是在经济上还是在它的社会效益上都是可行的。1.1.1社会可行性本系统的社会可行性主要从法律因素、用户使用可行性两方面进行研究。(1)法律因素考研论坛系统是经过努力在结合实际情况下进行开发出来的,经过了大量的调查问卷所得出的,并且是在独立的环境下得出的,我们禁止抄袭。(2)用户使用可行性:本系统需要用户具备在MicrosoftWindows平台上使用个人电脑的知识。使用系统的管理员在投入使用前,无需对操作系统的人员进行培训。这样既减少投入成本又简化了操作环节。由以上分析可知,本系统具有社会可行性。1.1.2系统功能性分析本系统实现的功能主要分为两类:前台功能和后台功能,主要有:用户注册与登录,发帖与回帖,帖子管理,用户管理,公告管理等功能。(1)前台功能用户注册模块是为了方便广大用户使用这个信息系统设计的,为以后的考研信息发布、信息交互以及论坛交流提供个人基本的资料等功能。用户通过贴子的形式迅速、便捷地发布自己的心得体会。为充分展现网站读者与作者的交互性,采用动态网页技术实现信息在线发布。论坛主题的发布和回复以及留言功能,主要包括文字形式和图片形式。 实现用户信息的管理功能,主要包括修改用户的基本信息和修改用户的登录密码等。用户登录模块主要实现用户登录验证,通过用户登录页面对用户进行校验。用户在登录前要先注册,输入用户名、性别、密码等进行注册。在登录过程中输入用户的帐号和密码,正确则进入,错误则返回再输入。(2)后台功能 论坛帖子管理要实现对帖子的管理功能,主要包括论坛帖子的审核、论坛帖子的删除、论坛帖子的置顶和论坛帖子的推荐等。论坛主题回复管理要实现对回复内容的管理,主要包括回复内容的审核、回复内容的删除和回复内容的屏蔽等。论坛版块管理模块要实现论坛版块信息的功能,主要包括论坛版块信息的添加、删除、修改、移动和屏蔽等。 论坛公告管理要实现对公告的管理功能,主要包括公告的添加、删除、修改和置顶等。 实现论坛贴子后台管理中的各种查询,如按照回复数量查询、按照贴子关键字查询、贴子类型查询和按照发表时间查询等。后台功能主要是系统管理员进行管理。1.2业务流程分析在进行业务流程分析时,为了能够弄清楚各个环节需要的信息、信息来源、流经去向、处理方法、计算方法、提供信息的时间和信息形态(报告、报单、屏幕显示)等30 基于PHP的考研论坛系统的设计与实现,我们通常要按照原有信息流动过程,逐个地调查分析所有环节的处理业务、处理内容、处理顺序和对处理时间的要求。业务流程分析的作用有很多,一般在进行该业务处理过程中,可以帮助开发者更好了解,也能更加迅速的发现和处理系统调查工作中的错误和疏漏。我们可以通过业务流图来进行,即用一些规定的符号及连线来表示某个具体业务处理过程,如图3-1所示。图3-1业务流图1系统设计1.1系统设计目标系统开发的总体任务是实现本考研论坛管理从游客提出注册申请到会员信息管理的规范化和自动化,从而达到奔本考研论坛管理工作高效率的目的。使得信息传递更加的迅猛快捷,实现无纸化、办公信息化管理,以提高信息传播的迅速性和正确性,减少人力、物力的投入。计算机的资源是受到限制的,因此要充分利用PHP技术和MySQL的功能,设计出功能强大的软件,同时要尽可能减少对系统资源的占用,界面的设计上讲究方便、灵活,这样用户使用起来非常之简便,对本系统要求有良好的安全性和保密性。30 基于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所示:30 基于PHP的考研论坛系统的设计与实现图4-1考研论坛系统前台功能模块图会员注册:未注册的游客可以通过此模块填写所要注册的用户账号和密码。当点击注册按钮时,系统会自动检测所要注册的账号是否已被注册并给予用户提示(如果账号已存在时,系统提示用户已存在);注册成功后系统会自动登录用户注册的账号并跳转至系统首页。修改信息:点击系统右上角的修改资料,进入用户个人资料修改页面,填写完要修改的信息后单击确定即可修改用户个人信息;发帖:用户登录以后进入发帖页面,填写完发帖标题、发帖内容等信息以后,单击提交按钮,发帖成功。回帖:用户登录以后,进入帖子的详情页面点击,点击我要发帖可以对该帖子进行回复。考研论坛系统后台功能模块图如图4-2所示:图4-2系统后台功能模块图30 基于PHP的考研论坛系统的设计与实现管理板块:在改模块下可以添加新的板块和管理已经添加的板块。单击添加板块进入添加板块页面,填写完信息以后单击提交按钮可以添加板块;单击版块管理,进入版块管理页面,可以对已添加的板块进行删除、编辑操作。管理会员:在该版块下可以对注册过的用户进行管理。管理帖子:在该版块下可以对用户发表的帖子就行置顶、删除的操作。1.1系统数据库设计数据库是本系统的核心和基础。它设计的好坏直接影响着整个系统的质量。一切系统设计的基础是数据,举个例子,我们可以将数据库设计比作高楼大厦的根基,哪怕设计的有一点瑕疵,都会在系统开发过程中引发很多问题,包括会影响到后期的系统维护、功能变更和功能扩充,再严重一点甚至要重新设计,重做大量已完成的工作。整个数据库采用模块化设计模式。模块化是指解决一个复杂问题时自上项下逐层把系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。1.1.1概念结构设计由上面的数据项,我们可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。现在对各个实体属性结构进行分析,共包含以下5个实体属性。(1)会员该实体包含会员的账号、密码、姓名、性别、级别等属性,如图4-3所示:图4-3会员的实体属性图(2)版块该实体包含版块的ID号和版块名属性,如图4-4所示。图4-4版块实体属性图30 基于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图中,我们用矩形来表示实体,在矩形框中标注上实体名称。我们表示实体间联系的时候用菱形,并把联系名写入菱形框内。用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。实体的性质是属性,30 基于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所示。30 基于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网站首页的实现网站首页包括网站公告和热门板块的设计,他们之间实现的原理都是相同的。实现对用户进入系统的一个验证功能的是登录模块。它用来验证用户登录时所输入的信息,以此来确定用户登录的身份。然而系统中所有用户的登录都是通过系统首页的初时界面来展现的。30 基于PHP的考研论坛系统的设计与实现在本系统运行的时候,用户需要登录才能进行接下来的操作,用户的登录信息验证主要涉及:用户的用户名、密码和用户的身份是否与数据库中所存的用户信息相匹配,以及该用户是否被管理员冻结等。如果用户不能进入本系统,则说明信息输入不对或该用户已被管理员冻结,这时系统将给出用户提示信息。反之用户将成功登录系统。系统在实现过程中当用户成功登录系统时我们将把用户的登录信息保存在Session对象中,这样当用户进入某个页面时我们就可以通过Session来判断用户是否已正常登录,以达到限制非法用户的登录的目的。在地址栏中输入运行网址则表明系统成功的运行,系统运行首页如图5-1所示。用户输入正确的网址后,即来到了网站的首页,如下图所示:图5-1网站首页1.1会员注册界面的实现用户点击会员注册链接后,可以查看会员注册信息。该模块功能主要是用于会员的注册,其中包括会员的一些基本的信息,用户必须填写用户名、密码、姓名、性别、电话、邮箱这些信息后,才能够进行注册。当用户填写完信息之后,点击确定按钮,系统就会提示注册成功请登录,如果该用户已注册,则会直接提示该账号已存在,请登录或者是重新注册。30 基于PHP的考研论坛系统的设计与实现为了进一步提高系统的安全性,在用户注册过程中将对用户的密码采取MD5加密的方式将用户的密码自动转换成一个32位的字符串存储在数据库中,为用户的注册提供了一个安全的保护措施,防止用户的个人信息泄露被别人使用,该界面设计的简洁明了而又大方,如图5-2所示:图5-2会员注册界面利用POST方法从前台表单获取用户的注册信息提交到PHP代码,PHP通过执行sql语句的insertinto语句将用户信息写入到数据库中,主要代码如下:alert('注册成功,请登录!');window.location.href='index.php';";}Else30 基于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信息并显示用户个人信息和网站数据,主要代码如下: 用户名:  30 基于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;?>1.1帖子信息界面的实现点开具体的帖子后,就可以看见帖子的内容和回帖的内容。如下图所示:图5-5帖子信息界面点击某一个帖子后,通过GET方法获取该帖子的id,通过id查询出该帖子的信息并输出到页面中,主要代码如下:1.1发帖界面的实现会员在登录界面后,在版块的上面有发帖按钮,点击后有如下界面。如下图所示:图5-6会员发帖界面30 基于PHP的考研论坛系统的设计与实现发帖页面用户填写完信息后点击提交,提交到后台PHP,PHP通过POST方法获取前台传过来的数据,然后PHP代码通过执行sql语句将数据写入到书库中,主要代码:alert('已经添加成功!');window.location.href='".$url."';";}//回复帖子操作if($act=="reply"){$id=$_POST["id"];$url=$_POST["url"];$sql="insertintoreply(username,bbs_id,content,tx,reply_date)values('$username','$id','$content','$tx','$time')";mysql_query($sql);mysql_query("updatebbssetreply_count=reply_count+1wherebbs_id='$id'");mysql_query("updatehysetjf=jf+1whereusername='$username'");echo"";}//删除操作if($act=="del"){$id=$_GET["id"];$url=$_SERVER["HTTP_REFERER"];$sql="deletefrombkwherebk_id='$id'";mysql_query($sql);echo"";}?>1.1家园热帖排行榜界面的实现点击栏目上的热帖排行榜,可以看到有如下界面:30 基于PHP的考研论坛系统的设计与实现图5-7家园热帖排行榜界面在查询显示时利用order语句对hits字段进行降序排序,主要代码:$pagecount){$page=ceil($num/$pagesize)-1;}$nextpage=$page+1;$prepage=$page-1;$exec=$sql."limit".($page*$pagesize).",$pagesize";$result=mysql_query($exec);if($num==0){echo"暂时没有信息";}else{while($rs=mysql_fetch_array($result))30 基于PHP的考研论坛系统的设计与实现{$i=$i+1;?>........1.1后台管理员登录界面的实现图5-8后台管理员登录界面PHP通过POST方法获取用户名和密码,然后与数据库中的数据进行比对,如果相同则保存session并跳转到相应页面。主要代码:alert('请输入正确的帐号密码!');window.top.location.href='admin_login.php'";}else{$rs=mysql_fetch_assoc($query);if($rs["password"]==$password){$_SESSION["adminname"]=$user;$_SESSION["user_id"]=$rs["admin_id"];echo"";}else{30 基于PHP的考研论坛系统的设计与实现echo"";}}?>1.1后台管理员审核会员界面的实现图5-9后台管理员审核会员界面利用select语句将所有的用户信息都显示在页面中。主要代码:$pagecount){$page=ceil($num/$pagesize)-1;}30 基于PHP的考研论坛系统的设计与实现$nextpage=$page+1;$prepage=$page-1;$exec=$sql."limit".($page*$pagesize).",$pagesize";$result=mysql_query($exec);if($num==0){echo"暂时没有信息";}else{while($rs=mysql_fetch_array($result)){?>1.1系统测试与分析对于一个系统是否行之有效,是否有很好的性能,其中很重要的一个环节就是测试。在受控制的条件下对系统应用或者是应用程序进行一定的操作并给出相应的评价,这就是系统测试。当然了还包括控制条件。所谓的控制条件就是包括正常条件和非正常的条件。在这个过程中,我们应该人为的去促使一些问题的发生,因为只有问题发生了才可以很好的去解决问题。所以,从本质上说,系统测试就是探测,在探测中发现问题解决问题。1.1.1系统测试的重要性系统测试在系统生命周期中占据重要的地位,在传统的瀑布模型中,系统测试学仅处于运行维护阶段之前,是系统产品交付用户使用之前保证系统质量的重要手段。近来,系统工程界趋向于一种新的观点,即测试时包含并贯穿在系统生命周期的每一个阶段的,这样我们可以很好的检测一下我们所设定的系统或者说本阶段的成果是不是我们所预期的结果。如果是,那么可以进一步的发展,如果不是我们也可以尽早地发现问题并尽快地改正问题。如果在最开始的时候没有发现错误并改正的话,那么,在后期的运行中就可能会酿成十分严重的巨大困难。事实上,对于系统来讲,不论采用哪一种技术和哪一种方法,系统中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝系统中的错误,这些引入的错误需要测试来找出,对于估计系统中的错误密度也需要测试来进行。所以说所有工程学科的基本组成单位就是测试,而测试同样也是系统开发的重要部分。测试从程序设计诞生的那一天起就一直伴随着程序设计。经过调查与统计,在相对典型的系统开发项目中,超过系统开发总工作量的40%的工作量一般被系统测试所占据。而在系统开发的总成本中,用在测试上的开销要占30%到50%。我们在测试的时候,一般会通过讨论整个系统生存期,将维护阶段也考虑在内,从而使整个测试成本比例降低。但是,实际上维护工作相当于二次开发,更甚至是多次开发,这其中必定包括有许多测试工作。30 基于PHP的考研论坛系统的设计与实现1.1.1测试实例的研究与选择白盒测试和黑盒测试是程序测试的主要分类方法。白盒测试:之所以称之为白盒测试,是因为它在设计的时候是以程序的内部逻辑结构为依据,因此又被称为是结构测试或玻璃盒测试,一个透明的白盒子,人们通常可以把系统这样比喻。按照程序的内部结构和处理逻辑来选定测试用例,对系统的逻辑路径及过程进行测试,检查它与设计是否相符。白盒测试可以对源代码实行比较充分的覆盖,并且通过选取足够的测试用例使我们可以尽可能多地发现程序中的错误。主要有两种方法:一种称为逻辑覆盖法,另一种称为路径覆盖法。黑盒测试:我们在使用黑盒进行测试的时候,完全不考虑程序内部的结构和特性,应为黑盒测试也被称为功能测试,数据驱动测试等,黑盒测试可以单纯的依照说明书检测程序的功能是否可以正常使用来进行测试,它的待测对象堪称是一个黑盒子,所以被称为是黑盒测试。黑盒测试只要是检测程序是否可以产生正确的输出,在测试的时候主要是根据输入条件和输出条件的确定测试数据来进行检查。进行黑盒测试主要有下面几种方法:等价分类法、边界值分析法、猜错法、因果图法。1.1.2测试环境与测试条件处理器:I5内存:2GB硬盘:500G操作系统:Windows7数据库:MYSQL1.1.3测试用例测试编号:001测试目标:登录时必填字段为空时是否会做出相应。测试步骤:(1)打开系统进入登陆页面。(2)输入框为空点击登录按钮,系统提示不能为空并不能登录。测试截图如图5-10所示。图5-10登录测试提示界面30 基于PHP的考研论坛系统的设计与实现测试编号:002测试目标:发表帖子时如果必填字段为空系统是否做出提示。测试步骤:(1)打开系统进入,登录系统进入发帖页面。(2)在必填字段为空时单击提交按钮,系统会给出不能为空的提示。测试截图如图5-11所示。图5-11发帖测试提示界面测试编号:003测试目标:后台管理员添加板块时必填字段为空系统是否会做出提示。测试步骤:(1)打开系统以管理员身份登录管理后台。(2)进入添加版块页面,必填字段为空单击提交按钮,系统会提示不能为空并不能添加。测试截图如图5-12所示。图5-12添加板块测试提示界面1.1.1系统测试结果在这次考研论坛系统的测试中,我综合了白盒测试、黑盒测试这两种方法,当然了有一个主要的测试方法,那就是黑盒测试方法。在这次检测中,我始终践行着不断地尝试并不断地改正,时刻为了保证检测用例的完整性和有效性的原则。当然了,通过检测我也达到了以下目的:表5-1管理员登录测试表(正确情况)输入成功输出实际输出用户名:admin密码:admin登录成功,进入后台管理登录成功,进入后台管理30 基于PHP的考研论坛系统的设计与实现表5-2用户登录测试表(错误情况)输入期望输出实际输出用户名:秦梦霞密码:秦梦霞登录成功,进入主页面登录失败,用户未注册或密码错误;登录成功,用户进入页面。(1)功能检查:在检测的过程中,是否有遗漏或者是实现不了应该实现的功能,以及检查功能是否正确。(2)接口检查:在检测的过程中,检查是否可以正确地接受信息或输出信息。(3)数据检查:在检测的过程中,检查数据结构或外部信息是否有(如数据文件)访问错误。(4)性能检查:检查性能需求能否得到满足。(5)初始化、终止检查:检查是否能进行正确地初始化或终止。实践证明,一些模块虽然能够单独地进行工作,但并不能保证连接起来也能正常的工作。有些时候我们程序单步运行没有什么问题,并不会出现什么样的错误,功能也能够实现。但是在整个程序运行当中就会出现问题,有些功能模块就不会显示甚至是报错,程序无法正常运行。导致我们的系统崩溃。经过以上方法的测试,我们找出了系统中存在的问题,并根据所存在的问题进行改正,提高系统的技术能力,使我们的系统更加的完善,能够快速的投入使用。软件测试是我们完成一个项目中必不可少的一部分,它是检测软件质量保证的关键步骤,所以我们必须认真切合实际的完成每一步的测试。1.1.1系统评价系统评价是指系统在正式运行了一段时间之后,对它在功能上、技术上和经济上所进行的审核评价。针对本系统的评价如下:(1)系统功能评价在进行系统的评价的时候,我们一般是为了使系统在实际使用中的功能可以满足用户的需求,这样就使得必须根据此次设计的系统在开发前所订的目标,使该系统经过测试运行并达到预定的开发目标。(2)系统技术评价在对本系统进行评价的时候,我们考虑到实用性、安全性、稳定性等一系列的特性,尽量将本系统设计合理,使功能可以达到预期目标,并且大大提高信访办公效率。(3)系统经济评价对于在做系统分析时所确定的系统开发目标,我们尽量在规定时间内,达到了设计要求,投入使用后为用户节省了大量人力物力财力,提高了科学管理水平。30 基于PHP的考研论坛系统的设计与实现结束语计算机技术的飞速发展带动了很多行业的发展,计算机带给我们最直接的价值就是减少了人力物力的投资,提高了工作质量和效率,从而提高了整个社会的生产力。而建立一个小型的考研论坛,不但可以方便考研同学的交流和学习,同时也可以让更多的人群去了解考研的相关知识,从经济和需求上分析,建立一个专业的考研论坛不但能够节省行业交流的效率,而且可以提高我国从业人员的知识能力。本文在分析考研论坛系统中流程的基础上,用PHP和MYSQL数据库设计并完成这个考研论坛的设计。通过系统调试结果显示,本系统基本完成了功能需求。在整个设计过程中,采用瀑布模型和结构化的设计方法。本系统界面美观友好,操作方便,做出了自己的特色。但由于时间仓促加上缺乏系统开发经验,系统在设计过程中不可避免地遇到了各种各样的问题,如:有些数据输入时没有及时的进行数据格式校验,不能保证数据的绝对正确性;由于时间关系,系统功能实现不够完善,使用可能存在一些不方便。本系统在实际使用过程中有可能出现一些问题,通过对系统的不断优化和完善,能够调试出真正符合、实际情况的小型考研论坛系统,并整合所有相关管理信息系统,形成统一、规范、科学、合理的考研论坛,提高管理水平。30 基于PHP的考研论坛系统的设计与实现参考文献[1]Luke•Welling.PHP和MySQLWeb开发[M].北京:机械工业出版社,2009:22-27[2]孔祥盛.PHP编程基础与实例教程[M].北京:人民邮电出版社,2011:08-12[3]丁海燕.Dreamweaver网页设计与制作案例教程[M].北京:清华大学出版社,2012:18-22[4]本社.PhotoshopCS6从入门到精通[M].北京:北京希望电子出版社,2012:09-16[5]罗云模.SQLServer2000数据仓库应用与开发[M].北京:人民邮电出版社,2001:07-16[6]殷佳庭,陆婷婷等.基于PHP技术的ECSHOP的二次开发[J].科技信息,2011:32-46[7]纪海燕.基于PHP技术的教师资格考试准考证网上打印系统及后台管理系统的设计与实现[J].科技信息,2012:09-19[8]张飞.基于PHP和MySQL的同学录管理系统[J].计算机光盘软件与应用,2012:03-10[9]邱煜炎.基于PHP的论文管理系统的设计与实现[J].中国教育信息化,2012:05-16[10]王欢,何友军等.基于PHPMVC与ExtJs结合开发会议预约系统[J].电脑编程技巧与维护,2012:12-26[11]贾素来.使用PHP和MySQL开发动态网站[J].大众科技,2011:03-16[12]刘艳杰,王军豪等.基于PHP技术在线考试系统的设计[J].电脑知识与技术,2011:29-34[13]田宁莉.基于PHP的Web数据库访问[J].科技风,2008:05-1)[14]郭亮,高辉等.动态网页技术ASP,PHP,JSP的比较[J].黑龙江科技信息,2007:17-22[15]刘艳妮,张平平等.利用PHP技术加强高校数字化校园的信息资源建设[J].技术与创新管理,2009:04-12[16]毛耀,杨颂华等.基于Flash的动态网站新方案[J].西南民族学院学报(自然科学版),2001:03-1230 基于PHP的考研论坛系统的设计与实现致谢大学时光是多么单纯而又快乐的时光啊!而我的大学生活就要结束,马上就要踏上工作岗位,开始人生中的新一段的征程。在今后的日子中,又是一个新的开始,而大学生活也是我学生生涯的结束!在这四年的大学生活里,给我留下了太多的记忆:开心的、愉快的,当然也有迷茫和困惑的时候。刚上大学时候,那个青葱怀有好奇之心的我还历历在目。眨眼间已过去四年。在这四年里,我收获了很多东西。在大学,我提高了自己的专业素养,交际能力,学习能力等等。最让我难忘的是老师们对我的谆谆教导,以及各位同窗带给我的友谊。这一切将会是我一生的财富。谢谢在我生命中出现的各位,给我留下了值得珍藏的美好记忆。借此论文,我想特别感谢我的指导老师耿凯峰老师。他用他的耐心和热情,告诉了我什么是师德;用他的专业知识告诉了我,如何才能做好这次的毕业设计写好论文;老师那认真负责的工作态度、严谨的治学精神和精深的理论水平令我深深的折服。感谢耿凯峰老师!当然了,除了耿凯峰老师,还有其他的老师也给给予了我很多很大的帮助。正是有了他们的帮助才使得我无论是在理论上还是在实践中,我的专业技能水平都有很大的提高,我相信这些对我以后的学习和工作都会大有裨益。借此我想向所有帮助指导过我的老师们表示最衷心的感谢和崇高的敬意。非常感谢他们的细心和耐心的指导,才使我能够顺利的完成论文和毕业设计,才可以顺利的毕业。同时也要感谢其他帮助过我的老师和同学,他们是我成长过程中的指路明灯,在此一并表示感谢!虽然经过了四年的大学学习和熏陶,但是我深知需要学习的还有很多,而且时间比较急促,所以此次的论文一定有不少缺点和不足,恳请各位老师给予帮助和指正。谢谢!30

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭