基于PHP实现的网上留言管理系统的设论文.docx
《基于PHP实现的网上留言管理系统的设论文.docx》由会员分享,可在线阅读,更多相关《基于PHP实现的网上留言管理系统的设论文.docx(22页珍藏版)》请在冰豆网上搜索。
![基于PHP实现的网上留言管理系统的设论文.docx](https://file1.bdocx.com/fileroot1/2023-1/31/a36d0c09-0e44-46d2-ab96-501a07e5e3bb/a36d0c09-0e44-46d2-ab96-501a07e5e3bb1.gif)
基于PHP实现的网上留言管理系统的设论文
基于PHP实现的网上留言管理系统的设计
摘要
随着互联网技术的迅猛发展,网络已经充斥到我们生活的方方面面,网上留言系统已经成为各种网站不可或缺的一个组成部分。
一个设计美观、功能完善的网上留言系统是网站吸引网民的一个重要因素。
同时,它还为网络用户提供了一个多人参与的信息交流平台。
基于PHP实现的网上留言管理系统采用B/S(Browser/Server)应用架构以及MVC(ModelViewController)编程架构设计开发。
具体的开发细节是使用PHP语言完成系统的开发。
整个系统不仅能够对网上留言信息进行录入、发布、查询与管理,而且还增加了如:
验证码、邮件发送、聊天室、密码管理等功能。
这样使得网上留言系统真正成为功能丰富、高效实用的网上信息交流平台。
关键词:
PHP;B/S;MVC;面向对象;留言系统
DesignofMessageBoardSystemBasedonPHP
Abstract
WiththerapiddevelopmentoftheInternettechnology,thenetworkapplicationhasbeenwidelyusedintheworld,themessageboardsystemalreadybecomesanindispensableconstituentofthewebsite.Amessageboardsystemwhichhasbeautifuldesignsandintegratedfunctionscanbeanimportantfactorofattractingpeople.Meanwhile,itprovidesInternetuserswithaninformationexchangeplatform.ThedesignofmessageboardsystembasedonPHPisdevelopedbyB/S(Browser/Server)applicationconstructionandMVC(ModelViewController)programmingconstruction.ThedetailofthedevelopmentisusingthePHPlanguagetodevelopthesystem.Thewholesystemnotonlycaninput,issue,queryandmanagetheon-linemessagebutalsoaddssomefunctionssuchasvalidatingcode,mailtransmission,chattingroomorpasswordmanagement.Thismakesthemessageboardsystemtrulybeamultifunctionalandefficienton-lineinformationexchangeplatform.
Keywords:
PHP;B/S;MVC;ObjectOriented;MessageBoardSystem
目录
论文总页数:
20页
1引言1
1.1课题背景1
1.2本课题研究的意义1
1.3本课题的研究方法1
2留言系统开发语言的介绍1
2.1PHP语言概述1
2.2PHP对MYSQL数据库的访问2
2.3JavaScript语言概述2
3留言系统开发架构的介绍3
3.1B/S应用架构的介绍3
3.1.1B/S架构概述3
3.1.2B/S架构的优点3
3.1.3B/S架构的缺点4
3.2MVC编程架构的介绍5
3.2.1MVC架构概述5
3.2.2MVC架构的优点6
3.2.3MVC架构的缺点7
4基于PHP的网上留言管理系统的设计与实现7
4.1功能的确定7
4.2数据表的设计8
4.3添加功能与管理功能的设计与实现9
4.3.1设计方案的介绍9
4.3.2各部分实现过程的介绍10
4.4发布功能的设计与实现14
4.5特色功能的设计与实现16
结论18
参考文献18
致谢19
声明20
1引言
1.1课题背景
随着互联网技术的迅猛发展,网络给人们带来了很多便利,我们在很多网站上都能看到各式各样的留言板,它是网站与访客之间进行交流的主要手段之一。
一个设计合理,界面优美的网上留言程序能从侧面体现网站良好的服务,给来访用户留下美好的印象,增强用户对网站的信心。
1.2本课题研究的意义
网上留言系统利用网络一定的时效性和广泛的传播面,可以方便人与人之间的信息交流和互动。
对于一般企业而言,网上留言系统能够通过网络提供方便的日常信息管理和交互,同时只需要相对低廉的建设和维护成本。
另外,企业还可以通过网上留言系统,为客户提供一个跨地域的交流平台,以便及时了解和掌握客户的需求,加强企业与客户之间的沟通,提高企业的市场竞争力。
因此,该课题具有一定的实用价值。
1.3本课题的研究方法
网上留言系统的整体结构采用的是B/S(Browser/Server)应用架构,在这种架构下,软件应用的业务逻辑完全在应用服务器端实现,用户表现完全在Web服务器实现,客户端只需要浏览器即可进行业务处理。
整个系统的设计采用的是MVC(ModelViewController)编程架构,使得功能模块和显示模块能够分离,提高应用系统的可维护性、可扩展性、可移植性和组件的可复用性。
留言系统的具体实现是采用服务器端脚本语言PHP来完成对系统后台的开发以及使用Html语言和JavaScript脚本语言来完成对系统前台的开发。
2留言系统开发语言的介绍
2.1PHP语言概述
PHP是能让你生成动态网页的工具之一。
PHP代表:
超文本预处理器(PHP:
HypertextPreprocessor)。
PHP是完全免费的,不用花钱,你可以从PHP官方站点自由下载。
PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。
你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。
PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。
PHP很容易学习,但是速度上比Mod_Perl(植入Web服务器的Perl模块)慢。
现在有了可以与Mod_Perl速度想媲美的被称作Zend的新引擎,而PHP5就可以充分利用这个引擎。
PHP5还引入了新的对象模型(ObjectModel)。
完全重写了PHP处理对象的方式,这样可以提高程序的抽象程度,更接近人的思维方式,使程序结构更清晰并降低编码和维护的工作量。
当前PHP与Linux、Apache、MYSQL、Zend构成了性价比最高的Web系统。
应用PHP有许多好处。
当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,对于小项目,它可以是一个十分符合人意的编程语言。
但是对于较大的和更为复杂的项目,PHP就显出他的薄弱了。
PHP是一个不断发展的语言,相信这些问题在不久的将来会得到很好地解决。
2.2PHP对MYSQL数据库的访问
MYSQL是一个快速、健壮和易用,且支持多线程、多用户的SQL数据库服务器。
虽然PHP通过ODBC支持几乎所有的数据库。
但对于开发数据驱动的网站而言,选择MYSQL应该说是最佳组合,这不仅因为MYSQL是免费的,更在于它具有与同类大型数据库相媲美甚至超过它们的优良性能。
PHP实现对MYSQL数据库的访问有两种方法:
(1)利用PHP的数据库函数连接:
创建MYSQL连接:
MYSQL_CONNECT(数据库所在位置,数据库账号,数据库密码)。
数据库选用:
MYSQL_SELECT_DB(数据库名)。
执行SQL指令:
MYSQL_QUERY(SQL语句,$link)。
分析表身:
MYSQL_FETCH_ROW()函数,必须传入$result查询结果变量,再通过for循环,并配合count()函数计算数据行中的列数,将$row数组中每一元素显示出来。
释放资源:
MYSQL_FREE_RESULT($result)或MYSQL_CLOSE($link)。
(2)通过ODBC连接:
PHP通过ODBC连接MYSQL数据库主要用到四个函数:
ODBC_CONNECT():
用来同ODBC数据源建立连接。
ODBC_DO():
用来在建立连接之后执行数据库查询。
ODBC_RESULT():
用于取得当前记录行中某个字段的值。
ODBC_FETCH_ROW():
用来把查询结果保存到数组,每个数组元素对应一条记录。
上述两种方法在与数据库建立连接的语法上,并没有太大差别。
不过在相比较之下,通过ODBC方式存取数据库比PHP直接存取MYSQL耗时间,但通过ODBC接口存取数据库不必担心使用何种数据库,如Oracle,Informix,Sybase等。
结合网上留言系统在实际当中的应用,还是决定选择PHP直接存取MYSQL的方式来管理数据库。
另外以上两种方式都支持ODBC接口,这样可减少更换数据库时需要更改程序的问题。
2.3JavaScript语言概述
JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。
使用它的目的是与HTML超文本标记语言、PHP脚本语言一起实现在一个Web页面中链接多个对象,与Web客户交互作用,从而可以开发客户端的应用程序等。
它是通过嵌入或调入在标准的HTML语言中实现的。
它的出现弥补了HTML语言的缺陷。
JavaScript的出现使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交式的表达能力。
从而基于CGI静态的HTML页面将被可提供动态实时信息,并对客户操作进行反应的Web页面的取代。
JavaScript脚本正是满足这种需求而产生的语言。
它深受广大用户的喜爱。
它是众多脚本语言中较为优秀的一种,与WWW的结合有效地实现了网络计算和网络计算机的结合。
使用JavaScript的优势在于传统的数据提交和验证工作均由用户端浏览器通过网络传输到服务器上进行。
如果数据量很大,这对于网络和服务器的资源来说实在是一种无形的浪费。
而JavaScript则可以在客户端进行数据验证,可以方便地操纵各种浏览器的对象,可以控制浏览器的外观,状态甚至运行方式,可以根据用户的需要“定制”浏览器,从而使网页更加友好。
JavaScript还可以使多种任务仅在客户端就可以完成而不需要网络和服务器的参与,从而支持分布式的运算和处理。
3留言系统开发架构的介绍
3.1B/S应用架构的介绍
3.1.1B/S架构概述
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S(Client/Server)结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要的事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑负荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下建立的数据库应用,相对易于把握,成本也是较低的。
B/S结构是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在PHP这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
3.1.2B/S架构的优点
B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。
只要有一台能上网的电脑就能使用,客户端零维护。
系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。
甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
其次是维护和升级方式简单。
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。
对一个稍微大一点的单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。
今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。
因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
最后是成本降低,选择更多。
大家都知道Windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上Windows并不是处于绝对的统治地位。
现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。
所以服务器操作系统的选择是很多的,不管选用哪种操作系统都可以让大部分人使用Windows作为桌面操作系统的电脑不受影响,这就使得最流行Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择是非常盛行的。
比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站服务器是没有使用Windows操作系统的,但用户的电脑本身安装的大部分是Windows操作系统。
3.1.3B/S架构的缺点
应用服务器运行数据负荷较重是B/S架构的缺点。
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。
但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
因此,许多单位都备有数据库存储服务器,以防万一。
3.2MVC编程架构的介绍
3.2.1MVC架构概述
MVC英文即Model,View,Controller,即把一个应用的输入、处理、输出流程按照Model,View,Controller的方式进行分离,这样一个应用层被分为三个层—模型层,视图层、控制层。
视图(View)代表用户交互界面,对于Web来说,可以概括为HTML界面,但也有可能为XHTML、XML、Applet和Flash等。
随着应用的复杂性和规模性的提高,界面的处理也变得具有挑战性,一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)处理。
比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给Controller和Model。
模型(Model)就是业务流程和状态的处理以及业务规则的制定。
业务流程的处理过程对其他层来说是暗箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的核心。
目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型作了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。
它仅仅告诉你按照模型设计就可以利用某些技术组件,从而减轻了技术上的困难。
对一个开者来说,就可以专注于业务模型的设计。
MVC设计模型告诉我们,把应用的模型按照一定的规划抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。
抽象与具体不能隔得太远,也不能太近。
MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。
业务模型还有一个很重要的模型那就是数据模型。
数据模型主要是指实体对象的数据保存。
比如将一张订单保存到数据库中,从数据库获取订单。
我们可以将这个模型单独列出,所有有关的数据库的操作只限在该模型中。
控制(Controller)可以理解为从用户接受请求,将模型与视图匹配在一起,共同完成用户的请求,划分控制层的作用很明显,它清楚地告诉开发者,它仅是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。
控制层不作任何的数据处理。
例如,用户点击一个链接,控制层接收请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,把符合要求的视图返回给用户。
因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
总之,模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
如果用户通过某个视图的控制器改变了模型的数据,所有其他依赖于这些数据的视图都能反映这些变化。
因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。
这实际上是一种模型的变化与传播机制。
模型、视图、控制器三者之间的关系和各自的主要功能,如下图(图1)所示:
图1模型、视图、控制器的关系和功能
3.2.2MVC架构的优点
当前有相当一部分Web应用程序都是用过程化语言来创建的。
它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。
产品设计弹性力度很小,很难满足用户的变化性需求。
经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,它需要精心的计划和不断的尝试。
MVC的出现很好地解决了以上问题,它要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。
首先,MVC最重要的一点是多个视图能共享一个模型。
在目前用户需求的快速变化下,可能有多种方式访问应用的要求。
例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。
按MVC设计模式,一个订单模型以及多个视图即可解决问题。
这样即减少了代码的复制,又减少了代码的维护量,一旦模型发生改变,也易于维护。
并且由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。
其次,将MVC分离可以让不同的专家负责不同的模块,一般情况下,Model部分由熟悉数据库,网络传输的专家来负责;View则交给对UI(UserInterface)有研究的专家。
这对于项目的管理者而言是多么的诱人,分工意味着可以提高效率并可以按照传统的责任划分来处理软件开发过程。
对开发者而言也可以专心于一个领域。
这样做的前提是接口要明确,MVC的分离思想正为其提供了基础。
最后,控制器也提供了一个好处,就是可以使用控制器来连接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。
给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。
总的来说MVC编程架构是有利于软件工程化管理的,因为不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。
3.2.3MVC架构的缺点
MVC的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。
使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。
具体的不足体现在以下几个方面:
(1)增加了系统结构和实现的复杂性。
对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
(2)视图与控制器间的连接过于紧密。
视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了它们的独立重用。
(3)视图对模型数据的低效率访问。
依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。
对未变化数据的不必要的频繁访问,也将损害操作性能。
另外,你还将不得不花费相当可观的时间去考虑如何将MVC运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困难。
每个构件在使用之前都需要经过彻底的测试。
一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。
最后,根据开发者经验,由于开发者将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。
这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提的。
并且本系统也针对这些缺点做了一些改进,下面就将介绍系统详细的设计开发过程。
4基于PHP的网上留言管理系统的设计与实现
4.1功能的确定
网上留言管理系统把用户分成两类,一类是管理员,另一类是客户。
管理员负责维护整个留言系统,在对其身份进行确认后,能够对网上留言进行回复、修改以及删除。
客户则可以直接录入、查看和查询网上留言信息。
具体要实现的内容如表1所示:
表1系统详细功能介绍
添加功能
支持心情图片插入
支持输入内容时插入图片
用户基本信息以及留言内容的录入
选择留言信息正常显示或仅管理员可见
选择管理员回复是否另外发送email给自己
发布功能
显示留言者IP
显示滚动的系统公告
显示留言以及回复信息
屏蔽只有管理员可见的留言信息
显示页面处理时间以及PHP运行时间
支持标题搜索,数据库对标题建有索引
管理功能
支持在线公告修改
支持批量删除数据
支持回复,编辑,删除留言信息
管理员信息经过MD5加密,只能在线修改用户名和密码
特色功能
聊天室,实时的信息交流平台
建立SOCKET会话,根据SMTP协议发送邮件
可在无GD库的空间中正常运行的验证码功能
运用大量PHP和JavaScript函数绘制网页特效
4.2数据表的设计
在着手开发一个Web项目时,数据库的设计通常是第一位要做的,基本上所有的操作都会涉及到数据表的操作。
那么数据表的设计就关系到整个项目的设计和功能的实现。
网上留言信息需要一个表来存储,另外聊天室也需要一个表来存储信息,因此整个系统需要两个表,具体设计如表2、表3所示:
表2留言信息存储表
字段名
类型
说明
id
Int(6)primrykey
留言id
tname
Varchar(6)
留言者姓名
tx
Int(3)
头像
dtime
Datetime
留言时间
title
Varchar(33)
留言标题
qq
Int(13)
留言者qq
email
Varchar(25)
留言者email
nei
Text
留言内容
htime
Datetime
回复时间
estate
Int
(1)
留言状态
hnei
Text
回复内容
ip
Varchar(1