1、网络留言板的设计与实现【摘要】设计并实现了一个基于 B/S 架构的网络留言板。该留言板系统采用 PHP 技术开发,利用数据库访问技术实现对数据库的各种操作,从而实现了留言板的留言及管理功能。在设计过程中遵循软件开发流程,首先对系统功能作出需求分析,在此基础上建立系统的应用原型,然后进行了留言板系统的功能设计与实现,经过测试阶段的反复调试和验证不断地修正和完善系统功能,最终达到符合要求的可行系统。实现的具体功能包括用户注册、留言查看、留言签写、留言搜索及后台管理等,并根据不同功能模块面向的用户对权限进行了合理划分。【关键词】留言板;PHP;数据库; MySQLDesign and Impleme
2、ntation of Message BoardsXXX(Grade*, Class*, Major XXX,School of Mathematics and Computer Science,Shaanxi University of Technology,Hanzhong 723001,Shaanxi)Tutor:XXAbstract: A internet message board based on B / S structure is designed and implemented. The message board system is developed with the P
3、HP language, makes use of the database access technology for database operations, in order to achieve the leaving words function and management function. Following the software development processes during the design process, first of all the requirement analysis is made for the system. Based on thi
4、s the system application prototype is established, and then the functions of the message board system are designed and implemented, after repeated debug and commissioning, the system function is improved continuously, eventually the requirements of practical system is reached. Its specific functions
5、 include user registration, message viewing, writing message, message searching and the background management. According to the different functional modules, the permission of the users is divided rationally.Key words:Message boards; PHP; Database; MySQL目录引言 .11 系统分析 .11.1 可行性分析 .11.2 需求分析 .11.2.1 系
6、统设计目标 .11.2.2 系统功能分析 .12 系统开发工具及环境 .12.1 MVC 三层构架 .12.2 开发工具简介 .12.2.1 PHP 简介 .12.2.2 Apache 简介 .12.2.3 MySQL 数据库简介 .12.3 开发模式 .12.4 系统开发环境 .13 系统概要设计 .13.1 模块设计 .13.2 留言板系统流程 .14 数据库设计 .14.1 数据库需求分析 .14.2 数据库概念结构设计 .14.3 数据库逻辑结构设计 .15 系统详细设计 .15.1 数据库的连接 .15.2 首页设计 .15.3 用户登录模块的实现 .15.4 首页查看留言的实现 .
7、15.5 留言搜索的实现 .15.6 用户签写留言实现 .15.6.1 敏感词过滤 .15.6.2 验证码技术的实现 .15.6.3 签写留言的入库操作 .15.7 用户注册模块的设计 .15.8 后台设计 .15.8.1 后台页面设计 .15.8.2 敏感词添加的实现 .15.8.3 留言管理的实现 .16 系统功能测试 .1总结 .1致谢 .1参考文献 .1科技外文文献 .1附录 A: 源程序代码 .1附录 B: 系统使用说明书 .1第 1 页 共 58 页引言由于 Internet 技术持续而飞速的发展,给人们各个方面带来了巨大变化,尤其对传统的交流方式提出了新的模式和要求,由此而诞生的
8、网络留言板系统在 Internet 应用上的地位显而易见。网络留言板系统利用网络一定的时效性和广泛的传播面,可以方便人与人之间的信息交流和互动。它已成为现代网络信息化建设中的重要组成部分,从而备受人们的重视。最初,留言只是用于发布公告系统,讨论问题的在线交流平台;但现在的网络留言板已经不再是以一个留言板的形式独立地呈现给用户留言,随着网络的普及,留言的功能越来越丰富,受到广大网民的欢迎。留言板已被作为一种网站系统的留言功能模块嵌入到一些需要留言功能的网站系统中,从而减少了网站留言功能模块的开发,像企业、学校等单位可以利用网上的留言发布公告、通知等。因此留言板在未来的网站系统中是不可缺少的一部分
9、。对于一般企业而言,网络留言系统能够通过网络提供方便的日常信息管理和交互,同时只需要相对较低廉的建设和维护成本。另外,企业还可以通过网络留言板,为客户提供一个跨地域的交流平台,以便及时了解和掌握客户需求,加强企业与客户之间的沟通,提高企业的市场竞争力。借助于留言板可以方便和朋友的联系,加强朋友之间的感情交流,可以方便的查阅各种资料,可以提高获取信息的随机性,促进信息和技术的交流,还可以为用户提供一个休闲的聚会空间,以此来增加网站的人气,维持稳定数目的访问群体。因此,本次开发留言板系统旨在探索寻求一种以互联网为基础的开放模式,更好的方便人们日常信息的沟通。第 2 页 共 58 页1 系统分析随着
10、互联网的高速发展,越来越多的人们都在网上建立起了自己的留言板,很多留言板为我们的日常生活提供了很大的帮助,展示了强大的媒体优势,留言板的作用越来越受到重视,已经成为了大家信息沟通,技术交流不可或缺的工具。要开发网络留言板,首先应掌握它的用户需求,理清它的功能结构,然后才能够有依有据的进行功能模块的划分,开发环境的选择,进而进行整个系统的代码实现。1.1 可行性分析网络留言板可以为用户和企业提供一个具有更好互动性的交流平台,方便企业快速获取来自不同层次用户的反馈信息,并可以更有效地处理这些反馈信息,从而减少花费到这方面的大量时间,提高经济管理效率。网站开发近年来呈现飞速发展,已形成现在的以 as
11、p,jsp,,php 开发语言和开发平台,各个软件公司相继投入研发人员不断的改进产品,因此从技术上讲已经具有成熟的环境。因 php 简单易学,开发速度快的特点。为了尽快开发出这个留言板,我选择用 php 进行开发。1.2 需求分析在网络高速发展的今天,网络留言板给人们提供了良好的互动沟通的平台。使用网络留言板的网民人数众多,使得网络留言板的留言内容丰富多样,人们可以通过网络留言板讨论工作、学习、生活和娱乐,以及对留言内容和对事物进行评论,从而在网上建立一个任何人都可以参与的互动天地,网络留言板已成为当今网络最为多元化和平民化的互动交流的空间和平台。对于网民,只要有网络留言板,就可以超越现实生活
12、,拥有不同以往的全新网上生活。网络留言板的形式相对简单,大体上可分为留言和留言管理两部分,它虽然简单无比,但却逐渐成为一种新的网络应用模式,它一出现便获得了很多人的支持和参与。网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。站在网络时代的前夜,我们清晰地听到了网络时代的宣言,谁掌握了网络,谁就掌握了未来。现对于互联网日益增长的用户群来说,网络留言板会有相当大的需求。1.2.1 系统设计目标网络留言板的设计目标实现以下功能:新用户注册功能、用户登录功能、登录用户发表留言功能、登录用户查看留言并给管理员留悄悄话的功能、管理员登录功能、管理员回
13、复留言功能、管理员删除留言功能、管理员发布系统公告功能和管理员添加敏感词的功能。1.2.2 系统功能分析开发一个留言板系统,首先应确定留言板的功能,最基本的留言板需要实现的功能很简单,一般有用户查看留言,发表留言;管理员查看留言,回复留言和删除留言。属于用户的业务操作有检索留言、查看留言和发表留言,留言管理者的业务操作相对用户要多一项,即管理留言,包括回复留言和删除留言等操作。本系统将要实现的留言板是在最基本的留言板的功能的基础上进行扩展,实现一个高级的网络留言板。前台功能需求:用户登录、用户注册、留言查看、留言检索、显示系统公告和签写留言等。其中,在留言查看模块中要实现查看全部留言、分页浏览
14、留言及管理员回帖显示等功能,在签写留言模块中要实现敏感词过滤、给管理管理员悄悄话、支持图像和表情以及支持验证码等功能。后台功能需求:管理员登录、留言管理、公告发布与管理和敏感词添加与管理。其中,留言管理要实现查看留言、回复留言、删除留言及查找留言等功能。第 3 页 共 58 页2 系统开发工具及环境系统开发环境的选择对于系统的建立来说至关重要,它将决定着系统开发工作量的大小,系统性能特点以及系统今后维护工作的易难等。因此在开发系统之前,根据对系统所采用的技术、实现功能的评估,在选择开发环境时,主要考虑了一下几个因素:扩展性、总体成本、功能、是否容易开发和管理,另外开放性和互操作性也是需要考虑的
15、一个重要方面,因为该系统是运行在 Internet 上的,用户平台的差异性决定了与其他系统的互操作是不可避免的。2.1 MVC 三层构架MVC 是 Model-View-Controller 的简写, “Model”代表的是应用的业务逻辑, “View”是应用的表面, “Controller”是提供应用的处理工程控制,通过这种设计模型把应用逻辑,吃力过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。2.2 开发工具简介以简单、易用和免费为出发点,本系统将选用 PHP 作为开发语言,选用 Apache 作为系统调试的 Web 服务器,数据库选用 MySQL。2.2.1 PHP 简介P
16、HP 是服务器端的一种编程语言,是为了创建 HTML 内容而设计的既简单游强大的语言。PHP 和其他的编程语言类似,使用变量存储临时数值,使用运算符操作变量。 PHP 的真正价值在于它是一个应用程序服务器。PHP 起源于自由软件,即开放源代码软件,使用 PHP 进行 Web 应用程序的开发具有以下语言优势。安全性高:PHP 是开源软件,每个人都可以看到所有 PHP 的源代码,程序代码与 Apache编译在一起的范式也可以让它具有灵活的安全设定,PHP 具有了公认的安全性能。跨平台:PHP 几乎支持所有的操作系统平台并且支持 Apache、IIS 等多种 Web 服务器,并以此广为流行。支持广泛
17、的数据库:可操作多种主流与非主流的数据库,如 MySQL、Access 、SQL Server、Oracle、DB2 等,其中 PHP 与 MySQL 是现在最佳的组合,它们的组合可以跨平台运行。简单易学:PHP 嵌入在 HTML 语言中,以脚本语言为主,内置丰富函数,语法简单、书写容易、方便学习掌握。执行速度快:占用系统资源少,代码执行速度快。模板化:实现程序逻辑与用户界面分离。支持面向对象:支持面向对象和过程的两种风格开发,并可向下兼容。开发成本低:在流行的企业应用 LAMP 平台中,Linux、Apache、MySQL 和 PHP 都是免费软件,这种开源免费的框架结构可以为网站经营者节省
18、很大一笔开支。内嵌 Zend 加速引擎,性能稳定快速。应用范围广:PHP 技术在 Web 开发的各个方面应用的非常广泛,世界上很多大公司都采用了 PHP 技术。2.2.2 Apache 简介Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache 源于 NCSAhttpd 服务器,经过多次修改,成为世界上最流行的 Web 服务器软件之一。Apache 的特点是简单、速度快、性能稳定,并可做代理服务器来使用。Apache web 服务器软件拥有以下特性:第 4 页 共 58 页 支持最新的 HTTP/1.1 通信协议; 拥有简单而强有力的机
19、遇文件的配置过程; 支持通用网关接口; 支持基于 IP 和基于域名的虚拟主机; 支持多种方式的 HTTP 认证; 集成 Perl 处理模块; 集成代理服务器模块; 支持实时监视服务器状态和定制服务器日志; 支持服务器端包含指令(SSI) ; 支持安全 Socket 层(SSL) ; 提供用户会话过程的跟踪;2.2.3 MySQL 数据库简介MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。 SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成。SQL 是一种标准
20、化的语言,它使得存储、更新和存取信息更容易。例如,你能用 SQL 语言为一个网站检索产品信息及存储顾客信息,同时 MySQL 也足够快和灵活以允许你存储记录文件和图像。MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个 SQL 服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL 就开发出来。自 1996 年以来,我们一直都在使用 MySQL,其环境有超过 40 个数据库,包含 10,000 个表,其中 500 多个表超过 7 百万行,这大约有 100 个吉字节(GB) 的关键应用数据。MySQL 建立的基础是业已用在高要求
21、的生产环境多年的一套实用例程。尽管 MySQL 仍在开发中,但它已经提供一个丰富和极其有用的功能集。MySQL 最早起始于 1979 年,开始是 Michael “Monty” Widenius 为瑞典的 TcX 公司创建的 UNIREG 数据库工具。 1994 年,TcX 开始寻找一个用来开发 Web 应用程序的 SQL 服务器。他们测试了一些商业服务器,但是发现所有服务器对于 TcX 的大型表来说都太慢。他们也试了 mSQL,但它缺乏 TcX 需要的某些功能。因此, Monty 开始开发一种新的服务器。其编程接口明确地设计为类似 mSQL 的编程接口,因为 mSQL 可得到几个免费的工具,
22、所以利用与 mSQL 类似的接口,可以将这些相同的工具用于 MySQL 从而大大减少了开发接口的工作。1995 年,Detron HB 公司的 David Axmark 努力争取 TcX 公司在因特网上发布 MySQL。David 还做了文档资料方面的工作和使 MySQL 与 GNU 的配置实用程序一起建造的工作。MySQL 3.11.1 在 1996 年以用于 Linux 和 Solaris 系统的二进制分发形式发布。今天,MySQL 正工作在许多平台上,并且二进制和源代码的形式都可以得到。MySQL 并不是一个开放源代码的产品,因为在某些条件下使用它需要许可证。但是,MySQL 很愿意在开
23、放源代码的团体内得以普及,因为 “认证”这个术语并不是非常有约束力的(除非通过出售 MySQL 或出售需要它的服务来挣钱,否则,大体上说 MySQL 一般是免费的) 。MySQL 的普及并不限于开放源代码团体内。虽然它在个人计算机上运行(确实,MySQL 的开发一般在不昂贵的 Linux 系统上进行) ,但它是可移植的,并且运行在商用操作系统(如 Solaris、Irix 和 Windows)和一直到企业服务器的各种硬件上。此外,它的性能也足以和任何其他系统相匹敌,而且它还可以处理具有数百万个记录的大型数据库。第 5 页 共 58 页MySQL 的广泛应用前景在我们面前尚未完全展开,如运行在功
24、能强但不昂贵的硬件上的免费可用操作系统,将丰富的处理功能和能力提供给比以往更多的人,在比过去范围更广的系统上运行等等。信息处理的经济障碍的降低使强有力的数据库解决方案到达了比过去任何时候更多的人和机构的手中。例如,本人在运行 LinuxPPC 的 G3 PowerBook 笔记本电脑上使用 MySQL 与 Perl、Apache 和 PHP,这允许本人在任何地方都可以进行工作,总的成本只是 PowerBook 的成本。过去只能梦想将高性能的 RDBMS 用于自己工作的机构,现在可以这样做了,并且开销很低。数据库的利用在单一的层次上也在不断地增加。过去从未想过要使用数据库的人现在也开始考虑一旦得
25、到一个数据库,怎样将其用于自己的各种目的,例如用来存储和访问系统的研究结果,跟踪和维护最喜爱的收藏物(蝴蝶、邮票、捧球明星卡等等) ,帮助管理新开张的公司,或者提供个人 Web 站点的搜索能力。2.3 开发模式网站建设目前主要有两种基本的开发模型:两层模型、三层模型。B/S 结构是真正的三层结构,它以访问 WEB 数据库为中心,HTTP 为传输协议,客户端通过浏览器(Browser)访问WEB 服务器和与其相连的后台数据库,我们称之为 B/S(Browser/Server)模式。其三级结构组成如图 2.3 所示:客户机客户机W E B 浏览器 后台数据库图 2.3 开发模式图图中从左到右,分为
26、三个层次:第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。在客户端向指定的 Web 服务器提出服务器请求,Web 服务器用 HTTP 协议把所需文件资料传给用户,客户端接受并显示在 WWW 浏览器上;第二层 Web 服务器是功能层,完成客户的应用功能,即 Web 服务器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回 Web 服务器,再传至客户端;第三层数据库服务器是数据层。数据库服务器应客户请求独立地进行各种处理。与传统的 C/S 模式相比,B/S 结构把处理功能全部移植到了服务器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更
27、加经济方便。而且使维护任务层次化:管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。2.4 系统开发环境系统能够顺利开发完成,好的开发环境是必要的。该系统使用的开发环境如下。服务器端 操作系统:Windows Server 2003。 服务器:Apache 2.0。 PHP 软件:PHP 5.0。 数据库:MySQL 5.0第 6 页 共 58 页 MySQL 图形化管理软件:phpMySQLAdmin-2.9.0.2。 浏览器:IE8.0客户端 浏览器:推荐使用 IE6.0 及以上版本。第 7 页 共 58 页3 系统概要设计3.1 模块设计经过系统的功能分析可以明
28、确的知道,网络留言板的功能分为普通用户的前台功能和留言管理的后台功能两部分,因此模块也分为两部分进行设计。网络留言板的模块体系如图 3.1 所示。网络留言系统主要包括以下功能模块: 查看留言功能模块:供用户查看及浏览留言; 签写留言功能模块:用户签写留言、过滤留言敏感词、给管理员悄悄话; 文章查看功能模块:用户可查看管理员发表的文章; 最新留言列表显示功能模块:用户可以浏览最新的留言; 用户注册功能模块:供需要留言的用户注册账号; 管理员登录功能模块:管理员登录; 留言管理功能模块:管理留言、查找留言、回复留言、管理管理员私贴; 公告功能模块:公告的发表、公告浏览、公告删除; 敏感词管理功能模
29、块:添加敏感词、读取敏感词。网络留言板前台模块 后台管理模块用户注册 用户登录 查看留言 签写留言 检索留言 公告查看 最新留言显示 管理员登录 管理留言 敏感词管理 公告管理图 3.1 网络留言板的模块体系3.2 留言板系统流程系统的各个功能模块已确定,接下来要做的是分析清楚各个模块之间的流程关系,将各个功能模块串联起来,使得模块之间有关联的关系,这样才能构成一个完整的系统。首先签写留言信息,然后对留言内容进行敏感词过滤,如果提交成功,则将留言信息显示在前台首页,最后由管理员对留言信息进行综合管理。管理员对留言进行管理之前先要登录,登录成功后进入后台的留言管理页面。留言板的系统流程如图 3.2 所示。第 8 页 共 58 页开始用户登录 游客状态 管理员登录后台管理页面注册登录状态签写留言过滤敏感词公告版块 敏感词版块 留言管理版块公告发布公告管理读取敏感词添加敏感词留言管理管理员单贴登录失败登录成功注册成功注册失败留言中无敏感词留言中有敏感词提交留言浏览登录失败登录成功图 3.2 网络留言板系统流程