收藏 分享(赏)

网络留言板的设计与实现-数学与计算机科学毕业论文.doc

上传人:为人民服务 文档编号:2369137 上传时间:2018-09-13 格式:DOC 页数:59 大小:411KB
下载 相关 举报
网络留言板的设计与实现-数学与计算机科学毕业论文.doc_第1页
第1页 / 共59页
网络留言板的设计与实现-数学与计算机科学毕业论文.doc_第2页
第2页 / 共59页
网络留言板的设计与实现-数学与计算机科学毕业论文.doc_第3页
第3页 / 共59页
网络留言板的设计与实现-数学与计算机科学毕业论文.doc_第4页
第4页 / 共59页
网络留言板的设计与实现-数学与计算机科学毕业论文.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、网络留言板的设计与实现XXX(xx 理工学院数学与计算机科学学院 XX专业 XX班,xxxx 1)指导老师:XX【摘要】最终达到符合要求的可行系统。实现的具体功能包括用户注册、留言查看、留言签写、留言搜索及后台管理等,并根据不同功能模块面向的用户对权限进行了合理划分。【关键词】留言板;PHP;数据库 ;MySQLDesign and Implementation of Message BoardsXXX( Grade*, Class*, Major XXX,School of Mathematics and Computer Science,xxxx University of Technol

2、ogy,xxxxx,xxxx)Tutor:XXAbstract: A internet message board based on B / S structure is designed and implemented. The message board system is developed with the PHP language, makes use of the database access technology for database operations, in order to achieve the leaving words function and managem

3、ent function. Following the software development processes during the design process, first of all the requirement analysis is made for the system. Based on this the system application prototype is established, and then the functions of the message board system are designed and implemented, after re

4、peated debug and commissioning, the system function is improved continuously, eventually the requirements of practical system is reached. Its specific functions include user registration, message viewing, writing message, message searching and the background management. According to the different fu

5、nctional modules, the permission of the users is divided rationally.Key words:Message boards; PHP; Database; MySQL引言 11 系统分析 21.1 可行性分析 21.2 需求分析 21.2.1 系统设计目标 21.2.2 系统功能分析 22 系统开发工具及环境 32.1 MVC 三层构架 32.2 开发工具简介 32.2.1 PHP 简介 32.2.2 Apache 简介 32.2.3 MySQL 数据库简介 42.3 开发模式 52.4 系统开发环境 53 系统概要设计 63.1

6、模块设计 63.2 留言板系统流程 64 数据库设计 84.1 数据库需求分析 84.2 数据库概念结构设计 84.3 数据库逻辑结构设计 85 系统详细设计 115.1 数据库的连接 115.2 首页设计 135.3 用户登录模块的实现 145.4 首页查看留言的实现 155.5 留言搜索的实现 185.6 用户签写留言实现 185.6.1 敏感词过滤 195.6.2 验证码技术的实现 205.6.3 签写留言的入库操作 215.7 用户注册模块的设计 215.8 后台设计 225.8.1 后台页面设计 225.8.2 敏感词添加的实现 235.8.3 留言管理的实现 246 系统功能测试

7、26总结 27致谢 28参考文献 29科技外文文献 30附录 A: 源程序代码 51附录 B: 系统使用说明书 58引言由于 Internet 技术持续而飞速的发展,给人们各个方面带来了巨大变化,尤其对传统的交流方式提出了新的模式和要求,由此而诞生的网络留言板系统在 Internet 应用上的地位显而易见。网络留言板系统利用网络一定的时效性和广泛的传播面,可以方便人与人之间的信息交流和互动。它已成为现代网络信息化建设中的重要组成部分,从而备受人们的重视。最初,留言只是用于发布公告系统,讨论问题的在线交流平台;但现在的网络留言板已经不再是以一个留言板的形式独立地呈现给用户留言,随着网络的普及,留

8、言的功能越来越丰富,受到广大网民的欢迎。留言板已被作为一种网站系统的留言功能模块嵌入到一些需要留言功能的网站系统中,从而减少了网站留言功能模块的开发,像企业、学校等单位可以利用网上的留言发布公告、通知等。因此留言板在未来的网站系统中是不可缺少的一部分。对于一般企业而言,网络留言系统能够通过网络提供方便的日常信息管理和交互,同时只需要相对较低廉的建设和维护成本。另外,企业还可以通过网络留言板,为客户提供一个跨地域的交流平台,以便及时了解和掌握客户需求,加强企业与客户之间的沟通,提高企业的市场竞争力。借助于留言板可以方便和朋友的联系,加强朋友之间的感情交流,可以方便的查阅各种资料,可以提高获取信息

9、的随机性,促进信息和技术的交流,还可以为用户提供一个休闲的聚会空间,以此来增加网站的人气,维持稳定数目的访问群体。因此,本次开发留言板系统旨在探索寻求一种以互联网为基础的开放模式,更好的方便人们日常信息的沟通。1 系统分析随着互联网的高速发展,越来越多的人们都在网上建立起了自己的留言板,很多留言板为我们的日常生活提供了很大的帮助,展示了强大的媒体优势,留言板的作用越来越受到重视,已经成为了大家信息沟通,技术交流不可或缺的工具。要开发网络留言板,首先应掌握它的用户需求,理清它的功能结构,然后才能够有依有据的进行功能模块的划分,开发环境的选择,进而进行整个系统的代码实现。1.1 可行性分析网络留言

10、板可以为用户和企业提供一个具有更好互动性的交流平台,方便企业快速获取来自不同层次用户的反馈信息,并可以更有效地处理这些反馈信息,从而减少花费到这方面的大量时间,提高经济管理效率。网站开发近年来呈现飞速发展,已形成现在的以 asp,jsp,,php 开发语言和开发平台,各个软件公司相继投入研发人员不断的改进产品,因此从技术上讲已经具有成熟的环境。因 php 简单易学,开发速度快的特点。为了尽快开发出这个留言板,我选择用 php 进行开发。1.2 需求分析在网络高速发展的今天,网络留言板给人们提供了良好的互动沟通的平台。使用网络留言板的网民人数众多,使得网络留言板的留言内容丰富多样,人们可以通过网

11、络留言板讨论工作、学习、生活和娱乐,以及对留言内容和对事物进行评论,从而在网上建立一个任何人都可以参与的互动天地,网络留言板已成为当今网络最为多元化和平民化的互动交流的空间和平台。对于网民,只要有网络留言板,就可以超越现实生活,拥有不同以往的全新网上生活。网络留言板的形式相对简单,大体上可分为留言和留言管理两部分,它虽然简单无比,但却逐渐成为一种新的网络应用模式,它一出现便获得了很多人的支持和参与。网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。站在网络时代的前夜,我们清晰地听到了网络时代的宣言,谁掌握了网络,谁就掌握了未来。现对于互联网

12、日益增长的用户群来说,网络留言板会有相当大的需求。1.2.1 系统设计目标网络留言板的设计目标实现以下功能:新用户注册功能、用户登录功能、登录用户发表留言功能、登录用户查看留言并给管理员留悄悄话的功能、管理员登录功能、管理员回复留言功能、管理员删除留言功能、管理员发布系统公告功能和管理员添加敏感词的功能。1.2.2 系统功能分析开发一个留言板系统,首先应确定留言板的功能,最基本的留言板需要实现的功能很简单,一般有用户查看留言,发表留言;管理员查看留言,回复留言和删除留言。属于用户的业务操作有检索留言、查看留言和发表留言,留言管理者的业务操作相对用户要多一项,即管理留言,包括回复留言和删除留言等

13、操作。本系统将要实现的留言板是在最基本的留言板的功能的基础上进行扩展,实现一个高级的网络留言板。前台功能需求:用户登录、用户注册、留言查看、留言检索、显示系统公告和签写留言等。其中,在留言查看模块中要实现查看全部留言、分页浏览留言及管理员回帖显示等功能,在签写留言模块中要实现敏感词过滤、给管理管理员悄悄话、支持图像和表情以及支持验证码等功能。后台功能需求:管理员登录、留言管理、公告发布与管理和敏感词添加与管理。其中,留言管理要实现查看留言、回复留言、删除留言及查找留言等功能。2 系统开发工具及环境系统开发环境的选择对于系统的建立来说至关重要,它将决定着系统开发工作量的大小,系统性能特点以及系统

14、今后维护工作的易难等。因此在开发系统之前,根据对系统所采用的技术、实现功能的评估,在选择开发环境时,主要考虑了一下几个因素:扩展性、总体成本、功能、是否容易开发和管理,另外开放性和互操作性也是需要考虑的一个重要方面,因为该系统是运行在 Internet 上的,用户平台的差异性决定了与其他系统的互操作是不可避免的。2.1 MVC 三层构架MVC 是 Model-View-Controller 的简写,“Model”代表的是应用的业务逻辑,“View”是应用的表面,“Controller”是提供应用的处理工程控制,通过这种设计模型把应用逻辑,吃力过程和显示逻辑分成不同的组件实现。这些组件可以进行交

15、互和重用。2.2 开发工具简介以简单、易用和免费为出发点,本系统将选用 PHP 作为开发语言,选用 Apache 作为系统调试的Web 服务器,数据库选用 MySQL。2.2.1 PHP 简介PHP 是服务器端的一种编程语言,是为了创建 HTML 内容而设计的既简单游强大的语言。PHP 和其他的编程语言类似,使用变量存储临时数值,使用运算符操作变量。PHP 的真正价值在于它是一个应用程序服务器。PHP 起源于自由软件,即开放源代码软件,使用 PHP 进行 Web 应用程序的开发具有以下语言优势。安全性高:PHP 是开源软件,每个人都可以看到所有 PHP 的源代码,程序代码与 Apache 编译

16、在一起的范式也可以让它具有灵活的安全设定,PHP 具有了公认的安全性能。跨平台:PHP 几乎支持所有的操作系统平台并且支持 Apache、IIS 等多种 Web 服务器,并以此广为流行。支持广泛的数据库:可操作多种主流与非主流的数据库,如 MySQL、Access、SQL Server、Oracle 、DB2 等,其中 PHP 与 MySQL 是现在最佳的组合 ,它们的组合可以跨平台运行。简单易学:PHP 嵌入在 HTML 语言中,以脚本语言为主,内置丰富函数,语法简单、书写容易、方便学习掌握。执行速度快:占用系统资源少,代码执行速度快。模板化:实现程序逻辑与用户界面分离。支持面向对象:支持面

17、向对象和过程的两种风格开发,并可向下兼容。开发成本低:在流行的企业应用 LAMP 平台中,Linux 、Apache、MySQL 和 PHP 都是免费软件,这种开源免费的框架结构可以为网站经营者节省很大一笔开支。内嵌 Zend 加速引擎 ,性能稳定快速。应用范围广:PHP 技术在 Web 开发的各个方面应用的非常广泛,世界上很多大公司都采用了 PHP 技术。2.2.2 Apache 简介Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache 源于 NCSAhttpd 服务器,经过多次修改,成为世界上最流行的 Web 服务器软件之一。Ap

18、ache 的特点是简单、速度快、性能稳定,并可做代理服务器来使用。Apache web 服务器软件拥有以下特性:支持最新的 HTTP/1.1 通信协议;拥有简单而强有力的机遇文件的配置过程;支持通用网关接口 ;支持基于 IP 和基于域名的虚拟主机 ;支持多种方式的 HTTP 认证 ;集成 Perl 处理模块;集成代理服务器模块 ;支持实时监视服务器状态和定制服务器日志;支持服务器端包含指令 ( SSI);支持安全 Socket 层(SSL);提供用户会话过程的跟踪;MySQL 数据库简介MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准

19、化的数据库语言。MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld 和很多不同的客户程序和库组成。SQL 是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用 SQL 语言为一个网站检索产品信息及存储顾客信息,同时 MySQL 也足够快和灵活以允许你存储记录文件和图像。MySQL 主要目标是快速 、健壮和易用。最初是因为我们需要这样一个 SQL 服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL 就开发出来。自 1996 年以来,我们一直都在使用 MySQL,其环境有超过 40 个数据库,包含

20、10,000 个表,其中500 多个表超过 7 百万行,这大约有 100 个吉字节(GB)的关键应用数据 。MySQL 建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管 MySQL 仍在开发中,但它已经提供一个丰富和极其有用的功能集。MySQL 最早起始于 1979 年,开始是 Michael “Monty” Widenius 为瑞典的 TcX 公司创建的UNIREG 数据库工具。1994 年,TcX 开始寻找一个用来开发 Web 应用程序的 SQL 服务器。他们测试了一些商业服务器,但是发现所有服务器对于 TcX 的大型表来说都太慢。他们也试了 mSQL,但它缺乏TcX 需要的某

21、些功能。因此 ,Monty 开始开发一种新的服务器。其编程接口明确地设计为类似 mSQL 的编程接口,因为 mSQL 可得到几个免费的工具,所以利用与 mSQL 类似的接口,可以将这些相同的工具用于 MySQL 从而大大减少了开发接口的工作。1995 年,Detron HB 公司的 David Axmark 努力争取 TcX 公司在因特网上发布 MySQL。David 还做了文档资料方面的工作和使 MySQL 与 GNU 的配置实用程序一起建造的工作。MySQL 3.11.1 在 1996 年以用于 Linux 和 Solaris 系统的二进制分发形式发布。今天,MySQL 正工作在许多平台上

22、,并且二进制和源代码的形式都可以得到。MySQL 并不是一个开放源代码的产品,因为在某些条件下使用它需要许可证。但是,MySQL 很愿意在开放源代码的团体内得以普及,因为“认证”这个术语并不是非常有约束力的(除非通过出售 MySQL 或出售需要它的服务来挣钱,否则,大体上说 MySQL 一般是免费的)。MySQL 的普及并不限于开放源代码团体内。虽然它在个人计算机上运行(确实,MySQL 的开发一般在不昂贵的 Linux 系统上进行),但它是可移植的,并且运行在商用操作系统(如 Solaris、Irix 和Windows)和一直到企业服务器的各种硬件上 。此外,它的性能也足以和任何其他系统相匹

23、敌,而且它还可以处理具有数百万个记录的大型数据库。MySQL 的广泛应用前景在我们面前尚未完全展开,如运行在功能强但不昂贵的硬件上的免费可用操作系统,将丰富的处理功能和能力提供给比以往更多的人,在比过去范围更广的系统上运行等等。信息处理的经济障碍的降低使强有力的数据库解决方案到达了比过去任何时候更多的人和机构的手中。例如,本人在运行 LinuxPPC 的 G3 PowerBook 笔记本电脑上使用 MySQL 与 Perl、Apache 和 PHP,这允许本人在任何地方都可以进行工作,总的成本只是 PowerBook 的成本。过去只能梦想将高性能的 RDBMS 用于自己工作的机构,现在可以这样

24、做了,并且开销很低。数据库的利用在单一的层次上也在不断地增加。过去从未想过要使用数据库的人现在也开始考虑一旦得到一个数据库,怎样将其用于自己的各种目的,例如用来存储和访问系统的研究结果,跟踪和维护最喜爱的收藏物(蝴蝶、邮票、捧球明星卡等等),帮助管理新开张的公司,或者提供个人 Web 站点的搜索能力。2.3 开发模式网站建设目前主要有两种基本的开发模型:两层模型、三层模型。B/S 结构是真正的三层结构,它以访问 WEB 数据库为中心,HTTP 为传输协议,客户端通过浏览器(Browser)访问 WEB 服务器和与其相连的后台数据库,我们称之为 B/S(Browser/Server)模式。 其三

25、级结构组成如图 2.3 所示:图 2.3 开发模式图图中从左到右,分为三个层次:第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。在客户端向指定的 Web 服务器提出服务器请求,Web 服务器用 HTTP 协议把所需文件资料传给用户,客户端接受并显示在 WWW 浏览器上;第二层 Web 服务器是功能层,完成客户的应用功能,即 Web 服务器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回 Web 服务器 ,再传至客户端;第三层数据库服务器是数据层。数据库服务器应客户请求独立地进行各种处理。与传统的 C/S 模式相比 ,B/S 结构把处理功能全部移植到了

26、服务器端 ,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。而且使维护任务层次化:管理员负责服务器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。2.4 系统开发环境系统能够顺利开发完成,好的开发环境是必要的。该系统使用的开发环境如下。服务器端操作系统: Windows Server 2003。服务器:Apache 2.0。PHP 软件: PHP 5.0。数据库:MySQL 5.0MySQL 图形化管理软件:phpMySQLAdmin-2.9.0.2。浏览器:IE8.0客户端浏览器:推荐使用 IE6.0 及以上版本。3 系统概要设计3.1 模块设计经过系

27、统的功能分析可以明确的知道,网络留言板的功能分为普通用户的前台功能和留言管理的后台功能两部分,因此模块也分为两部分进行设计。网络留言板的模块体系如图 3.1 所示。网络留言系统主要包括以下功能模块:查看留言功能模块 :供用户查看及浏览留言 ;签写留言功能模块 :用户签写留言 、过滤留言敏感词 、给管理员悄悄话;文章查看功能模块 :用户可查看管理员发表的文章 ;最新留言列表显示功能模块:用户可以浏览最新的留言 ;用户注册功能模块 :供需要留言的用户注册账号 ;管理员登录功能模块 :管理员登录 ;留言管理功能模块 :管理留言 、查找留言、回复留言 、管理管理员私贴;公告功能模块 :公告的发表 、公

28、告浏览、公告删除;敏感词管理功能模块 :添加敏感词 、读取敏感词。图 3.1 网络留言板的模块体系3.2 留言板系统流程系统的各个功能模块已确定,接下来要做的是分析清楚各个模块之间的流程关系,将各个功能模块串联起来,使得模块之间有关联的关系,这样才能构成一个完整的系统。首先签写留言信息,然后对留言内容进行敏感词过滤,如果提交成功,则将留言信息显示在前台首页,最后由管理员对留言信息进行综合管理。管理员对留言进行管理之前先要登录,登录成功后进入后台的留言管理页面。留言板的系统流程如图 3.2 所示。图 3.2 网络留言板系统流程4 数据库设计4.1 数据库需求分析本系统的主要实体有:用户信息实体、

29、留言信息实体、留言回复信息实体、文章信息实体。各实体之间的关系 E-R 图如图 4.1 所示。图 4.1 网上留言系统 E-R 图4.2 数据库概念结构设计数据库逻辑设计将所有实体和关系转换成一个系列的关系模式,将图 4.1 中数据库 E-R 图转换成为关系模型。用户:(用户编号 ,用户名 ,昵称,密码)留言信息:( 留言编号, 留言昵称,留言主题,留言内容 ,留言心情,留言时间,用户头像,回复标记,私贴标记)留言回复信息 :(留言编号 ,留言昵称,留言主题, 留言内容,留言心情)公告信息:(公告编号,公告主题,心情,公告内容,发布日期)4.3 数据库逻辑结构设计根据数据项,可以设计出满足需求

30、的各种实体,以及它们之间的关系。这样本系统设计一下实体:用户、留言、留言回复和公告。这几种实体对应数据库中的 4 个表:tb_user、tb_note、tb_note_answer 和tb_fil, 每个表与逻辑设计中一种关系模型对应。下面是每个数据表中的属性,包括属性列的名称,数据类型,长度等内容。经过上面对系统功能的分析和需求总结,设计出如下所示的数据项:(1) 用户,包括用户编号、用户名、昵称和密码。用户信息及属性如图 4.2 所示。图 4.2 用户实体属性图tb_user 表:tb_user 表用来存储用户的 ID、用户名、昵称及密码,如表 4.1 所示,主键是在一个表上定义的唯一键中

31、的一个,而且一个表上只能有一个主键。表 4.1 用户信息数据表数据项 字段 类型 长度用户编号 user_id int 11用户名 user_name varchar 40昵称 user_nickname varchar 40密码 user_password varchar 40(2) 留言,包括留言编号、留言昵称、留言主题、留言内容、留言心情、留言时间、用户头像、回复标记和私贴标记。留言信息及属性如图 4.3 所示。图 4.3 留言实体属性图tb_note 表:tb_note 表用来存储留言的留言编号 、留言昵称、留言主题、留言内容、留言心情、留言时间、用户头像、回复标记及私贴标记,留言信息

32、及属性如表 4.2 所示。表 4.2 留言信息数据表数据项 字段 类型 长度留言编号 note_id int 11留言昵称 note_user varchar 20留言主题 note_title varchar 40留言内容 note_content varchar 500留言心情 note_mood varchar 200留言时间 note_time datetime用户头像 note_user_pic varchar 200回复标记 note_answer int 1私贴标记 note_flag int 1(3) 图 4.4 留言回复实体属性图tb_note_answer 表:tb_not

33、e_answer 表用来存储留言编号、留言昵称、留言主题、留言内容和留言心情,回复信息及属性如表 4.3 所示。表 4.3 回复信息数据表数据项 字段 类型 长度回复编号 noan _id int 11留言编号 noan_note_id int 11回复内容 noan_content varchar 500回复时间 noan_time datetime回复者 noan_user_name varchar 10(4) 公告,包括公告编号、公告主题、心情、公告内容和发布日期 。公告信息及属性如图 4.5 所示。图 4.5 文章实体实体属性图tb_file 表:tb_file 表用来存储系统公告的编

34、号、公告主题、心情、公告内容和发布日期,公告的信息及属性如表 4.4 所示。表 4.4 文章信息表数据项 字段 类型 长度公告编号 file_id int 4公告主题 file_title varchar 200心情 file_face varchar 100公告内容 file_contente text发布日期 fiel_date datetime5 系统详细设计5.1 数据库的连接为了便于维护,减少代码冗余,在数据库连接这部分,采用面向对象的方式,定义了一个数据库访问类 DB_MySQL。定义数据库访问类的代码如下。connect();/* 解析函数 */function _destruc

35、t()mysql_close($this-Link_ID);/* 连接服务器,选择数据库 */function connect($Database = “,$Host = “,$User = “,$Password = “)if (“ = $Database)$Database = $this-Database;if (“ = $Host)$Host = $this-Host;if (“ = $User)$User = $this-User;if (“ = $Password)$Password = $this-Password;if ( 0 = $this-Link_ID )$this-Li

36、nk_ID=mysql_pconnect($Host, $User, $Password);if (!$this-Link_ID)$this-halt(“连接数据库服务端失败!“);if (!mysql_select_db($this-Database,$this-Link_ID)$this-halt(“不能打开指定的数据库:“.$this-Database);return $this-Link_ID;/* 释放内存 */function free()if ( mysql_free_result($this-Query_ID) )unset ($this-Row_Result);$this-Q

37、uery_ID = 0;/* 执行查询 */function query($Query_String)/* 释放上次查询占用的内存 */if ($this-Query_ID)$this-free();if(0 = $this-Link_ID)$this-connect();/设置中文字符集mysql_query(“set names gb2312“,$this-Link_ID);$this-Query_ID = mysql_query($Query_String,$this-Link_ID);if (!$this-Query_ID)$this-halt(“SQL 查询语句出错: “.$Quer

38、y_String);return $this-Query_ID;/* 返回结果集记录组成的数组 */function get_rows_array()$this-get_rows();for($i=0;$iRows;$i+)if(!mysql_data_seek($this-Query_ID,$i)$this-halt(“mysql_data_seek 查询语句出错“); /调用自定义函数$this-Row_Result$i = mysql_fetch_array($this-Query_ID);return $this-Row_Result;/* 返回结果集字段组成的数组 */functio

39、n get_fields_array()$this-get_fields();for($i=0;$iFields;$i+)$obj = mysql_fetch_field($this-Query_ID,$i);$this-Field_Result$i = $obj-name;return $this-Field_Result;/* 返回结果集中记录行数 */function get_rows()$this-Rows = mysql_num_rows($this-Query_ID);return $this-Rows;/* 返回结果集中字段个数 */function get_fields()$t

40、his-Fields = mysql_num_fields($this-Query_ID);return $this-Fields;/* 执行 SQL 语句并返回由查询结果中第一行记录组成的数组 */function fetch_one_array($sql)$this-query($sql);return mysql_fetch_array($this-Query_ID);/* 打印错误信息 */function halt($msg)$this-Error=mysql_error();printf(“数据库发生错误: %sn“, $msg);printf(“MySQL 返回错误信息: %s

41、n“, $this-Error);?在这个类中,定义了一个 connect()函数用来连接数据库服务器并选择数据库,函数 query()的功能为执行查询数据库。5.2 首页设计首页是整个网络留言板的入口地址,合理的首页布局和模块分配直接影响到用户对留言板的第一印象。为了吸引更多的用户浏览和使用网络留言板,在系统开发时需要精心地对首页进行设计。本系统在页面设计上采用传统的排版方式,主要有首部导航栏、左侧显示区和主显示区 3 部分组成,如图 5.1 所示。首部导航栏 :包括留言签写链接 、管理留言链接及用户注册链接 。左侧显示区 :包括用户登录 、文章显示、检索留言、 最新留言等模块。主显示区:

42、为留言浏览和显示等信息 。图 5.1 网络留言板首页5.3 用户登录模块的实现用户登录模块设计在首页中,使用户在需要留言时能够快捷方便地登录。当用户输入用户名和密码并登录成功后,用户登录模块就不在显示在首页中,直到用户注销在线状态。用户登录模块如图 5.2 所示。当登陆框中输入的用户名和密码在数据库中存在时,利用全局数组$_SESSION保存此次登录用户的信息,并提示登录成功,如图 5.3 所示。图 5.2 用户登录 图 5.3 提示登录成功用户登录时的进行用户名及密码匹配的业务操作代码如下。alert(“登录成功!“);location=index.php;alert(“对不起 ,你输入的用

43、户名或密码不正确!请重新输入。“);location=index.php;query($sql);$row_count_sum = $DB-get_rows();/每页记录数,可以使用默认值或者直接指定值$row_per_page = 3;/总页数$page_count = ceil($row_count_sum/$row_per_page);/判断是否为第一页或者最后一页$is_first = (1 = $page_num) ? 1 : 0;$is_last = ($page_num = $page_count) ? 1 : 0;/查询起始行位置$start_row = ($page_num

44、-1) * $row_per_page;/为 SQL 语句添加 limit 子句$sql .= “ limit $start_row,$row_per_page“;/执行查询$DB-query($sql);$res = $DB-get_rows_array();/结果集行数$rows_count=count($res);分页控制链接的代码实现如下。 当前第页/ 共页 每页 条第一页 “上一页第一页上一页“下一页 “最后一页下一页最后一页全部留言 5.5 留言搜索的实现信息检索是对已存在与数据库中的数据按条件进行筛选浏览,是查看历史信息和确认数据操作最为快速、有效的办法。在留言板中检索版块中输入

45、欲查询的关键字,对指定条件的留言信息进行模糊查询,并输出与查询条件相匹配的结果到浏览器。本模块的搜索可根据标题、内容、姓名及时间等任一个关键字进行检索。留言搜索模块效果如图 5.6 所示。这里用到了 like 运算符配合通配符进行模糊的查询,实现留言的检索功能。$sql = “select note.*,noan.* from tb_note as note left join tb_note_answer as noan on note.note_id = noan.noan_note_id“;$sql.=“ where note.note_title like %“.$key_words.

46、“% or note.note_content like %“.$key_words.“% or note.note_time like %“.$key_words.“% or note.note_user like %“.$key_words.“%“;$DB-query($sql);$note = $DB-get_rows_array($sql);图 5.6 留言搜索5.6 用户签写留言实现本模块将支持过滤敏感词、添加留言心情、支持给管理员写悄悄话,还可以选择有个性的头像。同时,方便用户查看留言后及时签写留言信息。签写留言模块效果图如图 5.7 所示。图 5.7 签写留言效果图5.6.1 敏

47、感词过滤“敏感词”是指网站管理者为了正常经营发展,减少不必要的纷争,消除不良影响,而认为设定的一些交易引起人们歧义思维的词汇。当系统或管理员发现帖子里含有特定的敏感词汇时,该贴会自动被限制发表或删除。提交表单信息到数据库处理页,首先需要对用户的留言信息进行敏感此过滤。在这里使用正则表达式 preg_match()函数实现。preg_match()函数用来在字符串中搜索所有与给定的正则表达式匹配的内容。当用户发表留言信息后,提交留言信息时,将留言信息与存储在数组中的敏感词进行对比,如果含有留言信息中的敏感词,那么将弹出提示信息,否则留言信息发布成功。实现敏感词过滤的关键代码如下。if($_POS

48、T)if (is_file(“./filterwords.txt“) /判断给定文件名是否为一个正常的文件$filter_word = file(“./filterwords.txt“); /把整个文件读入一个数组中$str=$_POSTcontent;for($i=0;$i alert(留言信息中包含敏感词!);history.back(-1);“;exit;$content =$_POSTcontent;$user_name = $_POSTuser_name;$title = $_POSTtitle;$mood=$_POSTmood;$head = $_POSThead.“.gif“;$

49、note_flag=$_POSTcheckbox;if($note_flag!=1)$note_flag=0;$datetime=date(“Y-m-d H:i:s“);$sql=“insert into tb_note (note_user,note_title,note_content,note_mood,note_time,note_user_pic,note_flag) values(“.$user_name.“,“.$title.“,“.$content.“,“.$mood.“,“.$datetime.“,“.$head.“,“.$note_flag.“)“;$DB-query($sql);$url = “./index.ph

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报