基于PHP留言板设计实现分析

上传人:qd****88 文档编号:76395114 上传时间:2022-04-18 格式:DOC 页数:48 大小:326KB
收藏 版权申诉 举报 下载
基于PHP留言板设计实现分析_第1页
第1页 / 共48页
基于PHP留言板设计实现分析_第2页
第2页 / 共48页
基于PHP留言板设计实现分析_第3页
第3页 / 共48页
资源描述:

《基于PHP留言板设计实现分析》由会员分享,可在线阅读,更多相关《基于PHP留言板设计实现分析(48页珍藏版)》请在装配图网上搜索。

1、.网络留言板的设计与实现【摘要】设计并实现了一个基于B/S架构的网络留言板。该留言板系统采用PHP技术开发,利用数据库访问技术实现对数据库的各种操作,从而实现了留言板的留言及管理功能。在设计过程中遵循软件开发流程,首先对系统功能作出需求分析,在此根底上建立系统的应用原型,然后进展了留言板系统的功能设计与实现,经过测试阶段的反复调试和验证不断地修正和完善系统功能,最终到达符合要求的可行系统。实现的具体功能包括用户注册、留言查看、留言签写、留言搜索及后台管理等,并根据不同功能模块面向的用户对权限进展了合理划分。【关键词】留言板;PHP;数据库;MySQL毕设源码下载Design and Imple

2、mentation of Message Boards*Grade*, Class*, Major *,School of Mathematics and puter Science,Shaan*i University of Technology,Hanzhong 723001,Shaan*iTutor:*Abstract:A internet message board based on B / S structure is designed and implemented. The message board system is developed with the PHP langua

3、ge, 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 this the sys

4、tem application prototype is established, and then the functions of the message board system are designed and implemented, after repeated debug and missioning, the system function is improved continuously, eventually the requirements of practical system is reached. Its specific functions include use

5、r 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需求分析1系统设计目标1系统功能分析12 系统开发工具及环境1

6、2.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首页查看留言的实现15.5留言搜索的实现15.6用户签写留言实现1敏感词过滤1验证码技术的实现1签写留言的入库操作15.7用户注册模块的设计15.8后台设计1后台页面设计1敏感词添加的实现1留言管理的

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

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

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

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

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

12、目标网络留言板的设计目标实现以下功能:新用户注册功能、用户登录功能、登录用户发表留言功能、登录用户查看留言并给管理员留悄悄话的功能、管理员登录功能、管理员回复留言功能、管理员删除留言功能、管理员发布系统公告功能和管理员添加敏感词的功能。系统功能分析开发一个留言板系统,首先应确定留言板的功能,最根本的留言板需要实现的功能很简单,一般有用户查看留言,发表留言;管理员查看留言,回复留言和删除留言。属于用户的业务操作有检索留言、查看留言和发表留言,留言管理者的业务操作相对用户要多一项,即管理留言,包括回复留言和删除留言等操作。本系统将要实现的留言板是在最根本的留言板的功能的根底上进展扩展,实现一个高级

13、的网络留言板。前台功能需求:用户登录、用户注册、留言查看、留言检索、显示系统公告和签写留言等。其中,在留言查看模块中要实现查看全部留言、分页浏览留言及管理员回帖显示等功能,在签写留言模块中要实现敏感词过滤、给管理管理员悄悄话、支持图像和表情以及支持验证码等功能。后台功能需求:管理员登录、留言管理、公揭发布与管理和敏感词添加与管理。其中,留言管理要实现查看留言、回复留言、删除留言及查找留言等功能。2 系统开发工具及环境系统开发环境的选择对于系统的建立来说至关重要,它将决定着系统开发工作量的大小,系统性能特点以及系统今后维护工作的易难等。因此在开发系统之前,根据对系统所采用的技术、实现功能的评估,

14、在选择开发环境时,主要考虑了一下几个因素:扩展性、总体本钱、功能、是否容易开发和管理,另外开放性和互操作性也是需要考虑的一个重要方面,因为该系统是运行在Internet上的,用户平台的差异性决定了与其他系统的互操作是不可防止的。2.1 MVC三层构架MVC是Model-View-Controller的简写,Model代表的是应用的业务逻辑,View是应用的外表,Controller是提供给用的处理工程控制,通过这种设计模型把应用逻辑,吃力过程和显示逻辑分成不同的组件实现。这些组件可以进展交互和重用。2.2开发工具简介以简单、易用和免费为出发点,本系统将选用PHP作为开发语言,选用Apache作

15、为系统调试的Web效劳器,数据库选用MySQL。2.2.1 PHP简介PHP是效劳器端的一种编程语言,是为了创立HTML容而设计的既简单游强大的语言。PHP和其他的编程语言类似,使用变量存储临时数值,使用运算符操作变量。PHP的真正价值在于它是一个应用程序效劳器。PHP起源于自由软件,即开放源代码软件,使用PHP进展Web应用程序的开发具有以下语言优势。平安性高:PHP是开源软件,每个人都可以看到所有PHP的源代码,程序代码与Apache编译在一起的式也可以让它具有灵活的平安设定,PHP具有了公认的平安性能。跨平台:PHP几乎支持所有的操作系统平台并且支持Apache、IIS等多种Web效劳器

16、,并以此广为流行。支持广泛的数据库:可操作多种主流与非主流的数据库,如MySQL、Access、SQL Server、Oracle、DB2等,其中PHP与MySQL是现在最正确的组合,它们的组合可以跨平台运行。简单易学:PHP嵌入在HTML语言中,以脚本语言为主,置丰富函数,语法简单、书写容易、方便学习掌握。执行速度快:占用系统资源少,代码执行速度快。模板化:实现程序逻辑与用户界面别离。支持面向对象:支持面向对象和过程的两种风格开发,并可向下兼容。开发本钱低:在流行的企业应用LAMP平台中,Linu*、Apache、MySQL和PHP都是免费软件,这种开源免费的框架构造可以为经营者节省很大一笔

17、开支。嵌Zend加速引擎,性能稳定快速。应用围广:PHP技术在Web开发的各个方面应用的非常广泛,世界上很多大公司都采用了PHP技术。2.2.2 Apache简介Apache是世界使用排名第一的Web效劳器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSA d效劳器,经过屡次修改,成为世界上最流行的Web效劳器软件之一。Apache的特点是简单、速度快、性能稳定,并可做代理效劳器来使用。Apache web效劳器软件拥有以下特性: 支持最新的 /1.1通信协议; 拥有简单而强有力的机遇文件的配置过程; 支持通用网关接口; 支持基于IP和基于域名的虚拟主机; 支持多种方式

18、的认证; 集成Perl处理模块; 集成代理效劳器模块; 支持实时监视效劳器状态和定制效劳器日志; 支持效劳器端包含指令SSI; 支持平安Socket层SSL; 提供用户会话过程的跟踪;2.2.3 MySQL数据库简介MySQL是一个真正的多用户、多线程SQL数据库效劳器。SQL构造化查询语言是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/效劳器构造的实现,它由一个效劳器守护程序mysqld和很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文

19、件和图像。MySQL 主要目标是快速、强健和易用。最初是因为我们需要这样一个SQL效劳器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。MySQL建立的根底是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。MySQL 最早起始于 1979 年,开场是 Michael Monty Widenius

20、 为瑞典的 Tc* 公司创立的 UNIREG 数据库工具。1994 年,Tc* 开场寻找一个用来开发 Web 应用程序的 SQL 效劳器。他们测试了一些商业效劳器,但是发现所有效劳器对于 Tc* 的大型表来说都太慢。他们也试了 mSQL,但它缺乏 Tc* 需要的*些功能。因此,Monty 开场开发一种新的效劳器。其编程接口明确地设计为类似 mSQL 的编程接口,因为 mSQL 可得到几个免费的工具,所以利用与 mSQL 类似的接口,可以将这些一样的工具用于MySQL 从而大大减少了开发接口的工作。1995 年,Detron HB公司的 David A*mark 努力争取 Tc*公司在因特网上发

21、布 MySQL。David 还做了文档资料方面的工作和使 MySQL 与 GNU 的配置实用程序一起建造的工作。MySQL 3.11.1 在 1996 年以用于 Linu* 和 Solaris 系统的二进制分发形式发布。今天,MySQL 正工作在许多平台上,并且二进制和源代码的形式都可以得到。MySQL 并不是一个开放源代码的产品,因为在*些条件下使用它需要许可证。但是,MySQL 很愿意在开放源代码的团体得以普及,因为认证这个术语并不是非常有约束力的除非通过出售 MySQL 或出售需要它的效劳来挣钱,否则,大体上说 MySQL 一般是免费的。MySQL 的普及并不限于开放源代码团体。虽然它在

22、个人计算机上运行确实,MySQL 的开发一般在不昂贵的 Linu* 系统上进展,但它是可移植的,并且运行在商用操作系统如 Solaris、Iri* 和 Windows和一直到企业效劳器的各种硬件上。此外,它的性能也足以和任何其他系统相匹敌,而且它还可以处理具有数百万个记录的大型数据库。MySQL 的广泛应用前景在我们面前尚未完全展开,如运行在功能强但不昂贵的硬件上的免费可用操作系统,将丰富的处理功能和能力提供给比以往更多的人,在比过去围更广的系统上运行等等。信息处理的经济障碍的降低使强有力的数据库解决方案到达了比过去任何时候更多的人和机构的手中。例如,本人在运行 Linu*PPC 的 G3 P

23、owerBook 笔记本电脑上使用 MySQL 与 Perl、Apache 和 PHP,这允许本人在任何地方都可以进展工作,总的本钱只是 PowerBook 的本钱。过去只能梦想将高性能的 RDBMS 用于自己工作的机构,现在可以这样做了,并且开销很低。数据库的利用在单一的层次上也在不断地增加。过去从未想过要使用数据库的人现在也开场考虑一旦得到一个数据库,怎样将其用于自己的各种目的,例如用来存储和访问系统的研究结果,跟踪和维护最喜爱的收藏物蝴蝶、邮票、捧球明星卡等等,帮助管理新开的公司,或者提供个人 Web 站点的搜索能力。2.3开发模式建立目前主要有两种根本的开发模型:两层模型、三层模型。B

24、/S构造是真正的三层构造,它以访问WEB数据库为中心,为传输协议,客户端通过浏览器(Browser)访问WEB效劳器和与其相连的后台数据库,我们称之为B/SBrowser/Server模式。其三级构造组成如图2.3所示:图2.3 开发模式图图中从左到右,分为三个层次:第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。在客户端向指定的Web效劳器提出效劳器请求,Web效劳器用协议把所需文件资料传给用户,客户端承受并显示在浏览器上;第二层Web效劳器是功能层,完成客户的应用功能,即Web效劳器承受客户请求,并与后台数据库连接,进展申请处理,然后将处理结果返回Web效劳器,再

25、传至客户端;第三层数据库效劳器是数据层。数据库效劳器应客户请求独立地进展各种处理。与传统的C/S模式相比,B/S构造把处理功能全部移植到了效劳器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。而且使维护任务层次化:管理员负责效劳器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。2.4系统开发环境系统能够顺利开发完成,好的开发环境是必要的。该系统使用的开发环境如下。效劳器端 操作系统:Windows Server 2003。 效劳器:Apache 2.0。 PHP软件:PHP 5.0。 数据库:MySQL 5.0 MySQL图形化管理软件:。 浏览器:

26、IE8.0客户端 浏览器:推荐使用IE6.0及以上版本。3 系统概要设计3.1模块设计经过系统的功能分析可以明确的知道,网络留言板的功能分为普通用户的前台功能和留言管理的后台功能两局部,因此模块也分为两局部进展设计。网络留言板的模块体系如图3.1所示。网络留言系统主要包括以下功能模块: 查看留言功能模块:供用户查看及浏览留言; 签写留言功能模块:用户签写留言、过滤留言敏感词、给管理员悄悄话; 文章查看功能模块:用户可查看管理员发表的文章; 最新留言列表显示功能模块:用户可以浏览最新的留言; 用户注册功能模块:供需要留言的用户注册账号; 管理员登录功能模块:管理员登录; 留言管理功能模块:管理留

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

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

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

30、户信息数据表数据项字段类型长度用户user_idint11用户名user_namevarchar40昵称user_nicknamevarchar40密码user_passwordvarchar40(2) 留言,包括留言、留言昵称、留言主题、留言容、留言心情、留言时间、用户头像、回复标记和私贴标记。留言信息及属性如图4.3所示。图4.3 留言实体属性图tb_note表:tb_note表用来存储留言的留言、留言昵称、留言主题、留言容、留言心情、留言时间、用户头像、回复标记及私贴标记,留言信息及属性如表4.2所示。表4.2留言信息数据表数据项字段类型长度留言note_idint11留言昵称note_

31、uservarchar20留言主题note_titlevarchar40留言容note_contentvarchar500留言心情note_moodvarchar200留言时间note_timedatetime用户头像note_user_picvarchar200回复标记note_answerint1私贴标记note_flagint1(3) 回复,包括留言、留言昵称、留言主题、留言容和留言心情。回复信息及属性如图4.4所示。图4.4 留言回复实体属性图tb_note_answer表:tb_note_answer表用来存储留言、留言昵称、留言主题、留言容和留言心情,回复信息及属性如表4.3所示。

32、表4.3 回复信息数据表数据项字段类型长度回复noan _idint11留言noan_note_idint11回复容noan_contentvarchar500回复时间noan_timedatetime回复者noan_user_namevarchar10(4) 公告,包括公告、公告主题、心情、公告容和发布日期。公告信息及属性如图4.5所示。图4.5 文章实体实体属性图tb_file表:tb_file表用来存储系统公告的、公告主题、心情、公告容和发布日期,公告的信息及属性如表4.4所示。表4.4 文章信息表数据项字段类型长度公告file_idint4公告主题file_titlevarchar20

33、0心情file_facevarchar100公告容file_contentete*t发布日期fiel_datedatetime5 系统详细设计5.1数据库的连接为了便于维护,减少代码冗余,在数据库连接这局部,采用面向对象的方式,定义了一个数据库访问类DB_MySQL。定义数据库访问类的代码如下。connect();/* 解析函数 */function _destruct()mysql_close($this-Link_ID);/* 连接效劳器,选择数据库 */function connect($Database = ,$Host = ,$User = ,$Password = )if ( =

34、$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-Link_ID=mysql_pconnect($Host, $User, $Password);if (!$this-Link_ID)$this-halt(连接数据库效劳端失败!);if (!mysql_select_db($this-Dat

35、abase,$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-Query_ID = 0;/* 执行查询 */function query($Query_String)/* 释放上次查询占用的存 */if ($this-Query_ID)$this-free();if(0 = $this-Link_ID)$thi

36、s-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查询语句出错: .$Query_String);return $this-Query_ID;/* 返回结果集记录组成的数组 */function get_rows_array()$this-get_rows();for($i=0;$iRows;$i+)if(!mysql_data_see

37、k($this-Query_ID,$i)$this-halt(mysql_data_seek查询语句出错);/调用自定义函数$this-Row_Result$i = mysql_fetch_array($this-Query_ID);return $this-Row_Result;/* 返回结果集字段组成的数组 */function get_fields_array()$this-get_fields();for($i=0;$iFields;$i+)$obj = mysql_fetch_field($this-Query_ID,$i);$this-Field_Result$i = $obj-n

38、ame;return $this-Field_Result;/* 返回结果集中记录行数 */function get_rows()$this-Rows = mysql_num_rows($this-Query_ID);return $this-Rows;/* 返回结果集中字段个数 */function get_fields()$this-Fields = mysql_num_fields($this-Query_ID);return $this-Fields;/* 执行SQL语句并返回由查询结果中第一行记录组成的数组 */function fetch_one_array($sql)$this-

39、query($sql);return mysql_fetch_array($this-Query_ID);/* 打印错误信息 */function halt($msg)$this-Error=mysql_error();printf(数据库发生错误: %sn, $msg);printf(MySQL 返回错误信息: %s n,$this-Error);在这个类中,定义了一个connect函数用来连接数据库效劳器并选择数据库,函数query的功能为执行查询数据库。5.2首页设计首页是整个网络留言板的入口地址,合理的首页布局和模块分配直接影响到用户对留言板的第一印象。为了吸引更多的用户浏览和使用网络

40、留言板,在系统开发时需要精心地对首页进展设计。本系统在页面设计上采用传统的排版方式,主要有首部导航栏、左侧显示区和主显示区3局部组成,如图5.1所示。 首部导航栏:包括留言签写、管理留言及用户注册。 左侧显示区:包括用户登录、文章显示、检索留言、最新留言等模块。 主显示区:为留言浏览和显示等信息。图5.1 网络留言板首页5.3用户登录模块的实现用户登录模块设计在首页中,使用户在需要留言时能够快捷方便地登录。当用户输入用户名和密码并登录成功后,用户登录模块就不在显示在首页中,直到用户注销在线状态。用户登录模块如图5.2所示。当登陆框中输入的用户名和密码在数据库中存在时,利用全局数组$_SESSI

41、ON保存此次登录用户的信息,并提示登录成功,如图5.3所示。图5.2 用户登录图5.3 提示登录成功用户登录时的进展用户名及密码匹配的业务操作代码如下。alert(登录成功!);location=inde*.php;alert(对不起,你输入的用户名或密码不正确!请重新输入。);location=inde*.php;query($sql);$row_count_sum = $DB-get_rows();/每页记录数,可以使用默认值或者直接指定值$row_per_page = 3;/总页数$page_count = ceil($row_count_sum/$row_per_page);/判断是否

42、为第一页或者最后一页$is_first = (1 = $page_num) 1 : 0;$is_last = ($page_num = $page_count) 1 : 0;/查询起始行位置$start_row = ($page_num-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);分页控制的代码实现如下。 当前第 &

43、nbsp;页/共  页   每页  条    第一页 a href=./inde*.phppage_num=上一页 第一页  上一页 a href=./inde*.phppage_num=下一页 a href=./inde*.phppage_num=最后一页下一页  最后一页   全部留言 5.5留言搜索的实现信息检索是对已存在与数据库中的数据按条件进展筛选浏览,是查看历史信息和确认数据操作最为快速、有效的方法。在留言板中检索版块中输入

44、欲查询的关键字,对指定条件的留言信息进展模糊查询,并输出与查询条件相匹配的结果到浏览器。本模块的搜索可根据标题、容、及时间等任一个关键字进展检索。留言搜索模块效果如图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.% or note.n

45、ote_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 签写留言效果图敏感词过滤敏感词是指管理者为了正常经营开展,减少不必要的纷争,

46、消除不良影响,而认为设定的一些交易引起人们歧义思维的词汇。当系统或管理员发现帖子里含有特定的敏感词汇时,该贴会自动被限制发表或删除。提交表单信息到数据库处理页,首先需要对用户的留言信息进展敏感此过滤。在这里使用正则表达式preg_match()函数实现。preg_match()函数用来在字符串中搜索所有与给定的正则表达式匹配的容。当用户发表留言信息后,提交留言信息时,将留言信息与存储在数组中的敏感词进展比照,如果含有留言信息中的敏感词,则将弹出提示信息,否则留言信息发布成功。实现敏感词过滤的关键代码如下。if($_POST)if (is_file(./filterwords.t*t)/判断给定

47、文件名是否为一个正常的文件 $filter_word = file(./filterwords.t*t);/把整个文件读入一个数组中$str=$_POSTcontent;for($i=0;$icount($filter_word);$i+)/应用For循环语句对敏感词进展判 $trim_filter_word =trim($filter_word$i); if(stristr($str, $trim_filter_word) != FALSE)/判断传递的留言信 echo alert(留言信息中包含敏感词!);history.back(-1);e*it;$content =$_POSTcont

48、ent;$user_name = $_POSTuser_name;$title = $_POSTtitle;$mood=$_POSTmood;$head = $_POSThead.gif;$note_flag=$_POSTcheckbo*;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_nam

49、e.,.$title.,.$content.,.$mood.,.$datetime.,.$head.,.$note_flag.);$DB-query($sql);$url = ./inde*.php;redirect_once($url);验证码技术的实现本系统实现了无刷新的验证,验证码在对当前页面进展验证,即使输入错误,也不会丧失留言信息,而会保存原始信息,效果如图5.8所示。图5.8 验证码验证效果图PHP实现随机验证码代码如下。$image_width=70; /设置图像宽度$image_height=18; /设置图像高度$new_number=$_GETnum;$num_image=

50、imagecreate($image_width,$image_height); /创立一个画布imagecolorallocate($num_image,255,255,255); /设置画布的颜色for($i=0;$istrlen($new_number);$i+) /循环读取SESSION变量中的验证码 $font=mt_rand(3,5); /设置随机的字体 $*=mt_rand(1,8)+$image_width*$i/4; /设置随机字符所在位置的*坐标 $y=mt_rand(1,$image_height/4); /设置随机字符所在位置的Y坐标 $color=imagecolor

51、allocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200); /设置字符的颜色 imagestring($num_image,$font,$*,$y,$new_number$i,$color); /水平输出字符imagepng($num_image); /生成PNG格式的图像imagedestroy($num_image); /释放图像资源JavaScript实现的无刷新验证代码如下。function check_form(form1)if(form1.checkcode.value=)alert(验证码不能为空!);form1.checkcode.focus();return false;签写留言的入库操作当用户签写留言填写的任务完成后点击

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!