毕业设计——基于PHP的留言板的设计与实现.docx
网络留言板的设计与实现XXX(陕西理工学院数学与计算机科学学院XX专业XX班,陕西汉中723001)指导老师:XX【摘要】设计并实现了一个基于B/S架构的网络留言板。该留言板系统采用PHP技术开发,利用数据库访问技术实现对数据库的各种操作,从而实现了留言板的留言及管理功能。在设计过程中遵楣软件开发流程,首先对系统功能作出需求分析,在此根底上速立系统的应用原型,然后进行了留言板系统的功能设计与实现,经过测试阶段的反复调试和脸证不断地修正和完善系统功能,最终到达符合要求的可行系统。实现的具体功能包括用户注册、留言查看、留言签写、留言搜索及后台管理等,并根据不同功能模块面向的用户对权限进行了合理划分。【关键词】留言板;PHP;数据库:MySQL毕设源码下载DesignandImplementationofMessageBoardsXXX(Grade*,Class*,MajorXXX,SchoolofMathematicsandComputerScience,ShaanxiUniversityofTechnology,Hanzhong723001,Shaanxi)TutoriXXAbstractJAinternetmessageboardbasedonB/Sstructureisdesignedandimplemented.ThemessageboardsystemisdevelopedwiththePHPlanguage,makesuseofthedatabaseaccesstechnologyfordatabaseoperations,inordertoachievetheleavingwordsfunctionandmanagementfunction.Followingthesoftwaredevelopmentprocessesduringthedesignprocess,firstofalltherequirementanalysisismadeforthesystem.Basedonthisthesystemapplicationprototypeisestablished,andthenthefunctionsofthemessageboardsystemaredesignedandimplemented,afterrepeateddebugandcommissioning,thesystemfunctionisimprovedcontinuously,eventuallytherequirementsofpracticalsystemisreached.Itsspecificfunctionsincludeuserregistration,messageviewing,writingmessage,messagesearchingandthebackgroundmanagement.Accordingtothedifferentfunctionalmodules,thepermissionoftheusersisdividedrationally.Keywords:Messageboards;PHP;Database;MySQL目录引言1系统分析1.1 可行性分析.1.2 需求分析. 系统设计目标 系统功能分析. 1 1 .1 .1 .1 .2 . 2 .2 .2 .2 .3 .3 .4 .4 .5.5 .5 .5.5 .5 .5 .7 .7IO IO 1112 1213 1314 1415 15 1516 1717 1718 1837 442系统开发工具及环境.2.1 MVC三层构架2.2 开发工具简介2.2.1 PHP简介2.2.2 Apache简介2.2.3 MySQL数据库简介2.3 开发模式2.4 系统开发环境3系统概要设计3.1 模块设计3.2 留言板系统流程4数据库设计4.1 数据库需求分析4.2 数据库概念结构设计.4.3 数据库逻辑结构设计.5系统详细设计5.1 数据库的连接5.2 首页设计5.3 用户登录模块的实现.5.4 首页查看留言的实现.5.5 留言搜索的实现5.6 用户签写留言实现敏感词过滤验证码技术的实现签写留言的入库操作.5.7 用户注册模块的设计.5.8 后台设计后台页面设计敏感词添加的实现留言管理的实现6系统功能测试总结致谢参考文献科技外文文献附录A:源程序代码附录B:系统使用说明书引言由于Intemet技术持续而飞速的开展,给人们各个方面带来了巨大变化,尤其对传统的交流方式提出了新的模式和要求,由此而诞生的网络留言板系统在Intemet应用上的地位显而易见。网络留言板系统利用网络一定的时效性和广泛的传播面,可以方便人与人之间的信息交流和互动。它已成为现代网络信息化建设中的重要组成局部,从而备受人们的重视。最初,留言只是用于发布公告系统,讨论问题的在线交流平台;但现在的网络留言板己经不再是以一个留言板的形式独立地呈现给用户留言,随着网络的普及,留言的功能越来越丰富,受到广阔网民的欢送。留言板已被作为一种网站系统的留言功能模块嵌入到一些需要留言功能的网站系统中,从而减少了网站留言功能模块的开发,像企业、学校等单位可以利用网上的留言发布公告、通知等。因此留言板在未来的网站系统中是不可缺少的一局部。对于一般企业而言,网络留言系统能够通过网络提供方便的日常信息管理和交互,同时只需要相对较低廉的建设和维护本钱。另外,企业还可以通过网络留言板,为客户提供一个跨地域的交流平台,以便及时了解和掌握客户需求,加强企业与客户之间的沟通,提高企业的市场竞争力。借助于留言板可以方便和朋友的联系,加强朋友之间的感情交流,可以方便的查阅各种资料,可以提高获取信息的随机性,促进信息和技术的交流,还可以为用户提供一个休闲的聚会空间,以此来增加网站的人气,维持稳定数目的访问群体。因此,本次开发留言板系统旨在探索寻求一种以互联网为根底的开放模式,更好的方便人们日常信息的沟通。1系统分析随着互联网的高速开展,越来越多的人们都在网上建立起了自己的留言板,很多留言板为我们的日常生活提供了很大的帮助,展示了强大的媒体优势,留言板的作用越来越受到重视,己经成为了大家信息沟通,技术交流不可或缺的工具。要开发网络留言板,首先应掌握它的用户需求,理清它的功能结构,然后才能够有依有据的进行功能模块的划分,开发环境的选择,进而进行整个系统的代码实现。U可行性分析网络留言板可以为用户和企业提供一个具有更好互动性的交流平台,方便企业快速获取来自不同层次用户的反应信息,并可以更有效地处理这些反应信息,从而减少花费到这方面的大量时间,提高经济管理效率。网站开发近年来呈现飞速开展,已形成现在的以asp,jsp,php开发语言和开发平台,各个软件公司相继投入研发人员不断的改良产品,因此从技术上讲己经具有成熟的环境。因PhP简单易学,开发速度快的特点。为了尽快开发出这个留言板,我选择用PhP进行开发。1.2需求分析在网络高速开展的今天,网络留言板给人们提供了良好的互动沟通的平台。使用网络留言板的网民人数众多,使得网络留言板的留言内容丰富多样,人们可以通过网络留言板讨论工作、学习、生活和娱乐,以及对留言内容和对事物进行评论,从而在网上建立一个任何人都可以参与的互动天地,网络留言板已成为当今网络最为多元化和平民化的互动交流的空间和平台。对于网民,只要有网络留言板,就可以超越现实生活,拥有不同以往的全新网上生活。网络留言板的形式相对简单,大体上可分为留言和留言管理两局部,它虽然简单无比,但却逐渐成为一种新的网络应用模式,它一出现便获得了很多人的支持和参与。网络开展前景无限,及早与网络结合,与信息时代同步,与高科技集合,定会给社会各行各业的开展注入新鲜的活力。站在网络时代的前夜,我们清晰地听到了网络时代的宣言,谁掌握了网络,谁就掌握了未来。现对于互联网日益增长的用户群来说,网络留言板会有相当大的需求。系统设计目标网络留言板的设计目标实现以下功能:新用户注册功能、用户登录功能、登录用户发表留言功能、登录用户查看留言并给管理员留悄悄话的功能、管理员登录功能、管理员回®留言功能、管理员删除留言功能、管理员发布系统公告功能和管理员添加敏感词的功能。1.2.2系统功能分析开发一个留言板系统,首先应确定留言板的功能,最根本的留言板需要实现的功能很简单,一般有用户查看留言,发表留言;管理员查看留言,回复留言和删除留言。属于用户的业务操作有检索留言、查看留言和发表留言,留言管理者的业务操作相对用户要多一项,即管理留言,包括回更留言和删除留言等操作。本系统将要实现的留言板是在最根本的留言板的功能的根底上进行扩展,实现一个高级的网络留言板。前台功能需求:用户登录、用户注册、留言查看、留言检索、显示系统公告和签写留言等。其中,在留言查看模块中要实现查看全部留言、分页浏览留言及管理员回帖显示等功能,在签写留言模块中要实现敏感词过滤、给管理管理员悄悄话、支持图像和表情以及支持验证码等功能。后台功能需求:管理员登录、留言管理、公揭发布与管理和敏感词添加与管理。其中,留言管理要实现查看留言、回更留言、删除留言及查找留言等功能。2系统开发工具及环境系统开发环境的选择对于系统的建立来说至关重要,它将决定着系统开发工作量的大小,系统性能特点以及系统今后维护工作的易难等。因此在开发系统之前,根据对系统所采用的技术、实现功能的评估,在选择开发环境时,主要考虑了一下几个因素:扩展性、总体本钱、功能、是否容易开发和管理,另外开放性和互操作性也是需要考虑的一个重要方面,因为该系统是运行在Internet上的,用户平台的差异性决定了与其他系统的互操作是不可防止的。2.IMVC三层构架MVC是ModeI-VieW-Controner的简写,“Model”代表的是应用的业务逻辑,“View”是应用的外表,“Controller”是提供给用的处理工程控制,通过这种设计模型把应用逻辑,吃力过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。2.2开发工具简介以简单、易用和免费为出发点,本系统将选用PHP作为开发语言,选用APaChe作为系统调试的Web效劳器,数据库选用MySQL。PHP简介PHP是效劳器端的一种编程语言,是为了创立HTML内容而设计的既简单游强大的语言。PHP和其他的编程语言类似,使用变量存储临时数值,使用运算符操作变量。PHP的真正价值在于它是一个应用程序效劳器。PHP起源于自由软件,即开放源代码软件,使用PHP进行Web应用程序的开发具有以下语言优势。平安性高:PHP是开源软件,每个人都可以看到所有PHP的源代码,程序代码与APaChe编译在一起的范式也可以让它具有灵活的平安设定,PHP具有了公认的平安性能。跨平台:PHP几乎支持所有的操作系统平台并且支持APaehe、IlS等多种Web效劳器,并以此广为流行。支持广泛的数据库:可操作多种主流与非主流的数据库,如MySQL、ACCeSs、SQLServer.Oracle.DB2等,其中PHP与MySQL是现在最正确的组合,它们的组合可以跨平台运行。简单易学:PHP嵌入在HTML语言中,以脚本语言为主,内置丰富函数,语法简单、书写容易、方便学习掌握。执行速度快:占用系统资源少,代码执行速度快。模板化:实现程序逻辑与用户界面别离。支持面向对象:支持面向对象和过程的两种风格开发,并可向下兼容。开发本钱低:在流行的企业应用LAMP平台中,LinUx、APaChe、MySQL和PHP都是免费软件,这种开源免费的框架结构可以为网站经营者节省很大一笔开支。内嵌Zend加速引擎,性能稳定快速。应用范围广:PHP技术在Web开发的各个方面应用的非常广泛,世界上很多大公司都采用了PHP技术。Apache简介Apache是世界使用排名第一的Web效劳器软件。它可以运行在几乎所有广泛使用的计算机平台上。Apache源于NCSAd效劳器,经过屡次修改,成为世界上最流行的Web效劳器软件之一。APaChe的特点是简单、速度快、性能稳定,并可做代理效劳器来使用。APaCheWeb效劳器软件拥有以下特性:> 支持最新的/1.1通信协议;> 拥有简单而强有力的机遇文件的配置过程;> 支持通用网关接口;> 支持基于IP和基于域名的虚拟主机;> 支持多种方式的认证;> 集成Perl处理模块;> 集成代理效劳器模块;支持实时监视效劳器状态和定制效劳器日志;> 支持效劳器端包含指令(SSI);> 支持平安SOCket层(SSL);> 提供用户会话过程的跟踪;2.2.3MySQL数据库简介MySQL是一个真正的多用户、多线程SQL数据库效劳器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/效劳器结构的实现,它由一个效劳器守护程序mysqld和很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。MySQL主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL效劳器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过40个数据库,包含10,000个表,其中500多个表超过7百万行,这大约有100个吉字节(GB)的关键应用数据。MySQL建立的根底是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。MySQL最早起始于1979年,开始是Michael"Monty”Widenius为瑞典的TcX公司创立的UNIREG数据库工具。1994年,TcX开始寻找一个用来开发Web应用程序的SQL效劳器。他们测试了一些商业效劳器,但是发现所有效劳器对于TcX的大型表来说都太慢。他们也试了mSQL,但它缺乏TcX需要的某些功能。因此,Monty开始开发一种新的效劳器。其编程接口明确地设计为类似mSQL的编程接口,因为mSQL可得到几个免费的工具,所以利用与mSQL类似的接口,可以将这些相同的工具用于MySQL从而大大减少了开发接口的工作。1995年,DetronHB公司的DavidAxmark努力争取TCX公司在因特网上发布MySQLoDavid还做了文档资料方面的工作和使MySQL与GNU的配置实用程序一起建造的工作。MySQL3.11.1在1996年以用于LinUX和Solaris系统的二进制分发形式发布。今天,MySQL正工作在许多平台上,并且二进制和源代码的形式都可以得到。MySQL并不是一个开放源代码的产品,因为在某些条件下使用它需要许可证。但是,MySQL很愿意在开放源代码的团体内得以普及,因为“认证”这个术语并不是非常有约束力的(除非通过出售MySQL或出售需要它的效劳来挣钱,否那么,大体上说MySQL一般是免费的)。MySQL的普及并不限于开放源代码团体内。虽然它在个人计算机上运行(确实,MySQL的开发一般在不昂贵的Linux系统上进行),但它是可移植的,并且运行在商用操作系统(如Solaris.Irix和Windows)和一直到企业效劳器的各种硬件上。此外,它的性能也足以和任何其他系统相匹敌,而且它还可以处理具有数百万个记录的大型数据库。MySQL的广泛应用前景在我们面前尚未完全展开,如运行在功能强但不昂贵的硬件上的免费可用操作系统,将丰富的处理功能和能力提供给比以往更多的人,在比过去范围更广的系统上运行等等。信息处理的经济障碍的降低使强有力的数据库解决方案到达了比过去任何时候更多的人和机构的手中。例如,本人在运行LinUXPPC的G3PowerBook笔记本电脑上使用MySQL与PerKApache和PHP,这允许本人在任何地方都可以进行工作,总的本钱只是PowerBook的本钱。过去只能梦想将高性能的RDBMS用于自己工作的机构,现在可以这样做了,并且开销很低。数据库的利用在单一的层次上也在不断地增加。过去从未想过要使用数据库的人现在也开始考虑一旦得到一个数据库,怎样将其用于自己的各种目的,例如用来存储和访问系统的研究结果,跟踪和维护最喜爱的收藏物(蝴蝶、邮票、捧球明星卡等等),帮助管理新开张的公司,或者提供个人Web站点的搜索能力。2.3开发模式网站建设目前主要有两种根本的开发模型:两层模型、三层模型。B/S结构是真正的三层结构,它以访问WEB数据库为中心,为传输协议,客户端通过浏览器(BroWSer)访问WEB效劳器和与其相连的后台数据库,我们称之为B/S(BrowserZServer)模式。其三级结构组成如图2.3所示:图2.3开发模式图图中从左到右,分为三个层次:第一层是客户端即浏览器,主要完成客户和后台的交互及最终查询结果的输出功能。在客户端向指定的Web效劳器提出效劳器请求,Web效劳器用协议把所需文件资料传给用户,客户端接受并显示在WWW浏览器上;第二层Web效劳器是功能层,完成客户的应用功能,即Web效劳器接受客户请求,并与后台数据库连接,进行申请处理,然后将处理结果返回Web效劳器,再传至客户端;第三层数据库效劳器是数据层。数据库效劳器应客户请求独立地进行各种处理。与传统的C/S模式相比,B/S结构把处理功能全部移植到了效劳器端,用户的请求通过浏览器发出,无论是使用和数据库维护上都比传统模式更加经济方便。而且使维护任务层次化:管理员负责效劳器硬件日常管理和维护,系统维护人员负责后台数据库数据更新维护。2.4系统开发环境系统能够顺利开发完成,好的开发环境是必要的。该系统使用的开发环境如下。效劳器端> 操作系统:WindowsServer2003.)> 效劳器:Apache2.0o> PHP软件:PHP5.0o> 数据库:MySQL5.0> MySQL图形化管理软件:。> 浏览器:IE80客户端> 浏览器:推荐使用IE6.0及以上版本。3系统概要设计3.1 模块设计经过系统的功能分析可以明确的知道,网络留言板的功能分为普通用户的前台功能和留言管理的后台功能两局部,因此模块也分为两局部进行设计,网络留言板的模块体系如图3.1所示。网络留言系统主要包括以下功能模块:> 查看留言功能模块:供用户查看及浏览留言;> 签写留言功能模块:用户签写留言、过滤留言敏感词、给管理员悄悄话;> 文章查看功能模块:用户可查看管理员发表的文章;> 最新留言列表显示功能模块:用户可以浏览最新的留言;> 用户注册功能模块:供需要留言的用户注册账号;> 管理员登录功能模块:管理员登录;> 留言管理功能模块:管理留言、查找留言、回复留言、管理管理员私贴;> 公告功能模块:公告的发表、公告浏览、公告删除;敏感词管理功能模块:添加敏感词、读取敏感词。图3.1网络留言板的模块体系3.2留言板系统流程系统的各个功能模块已确定,接下来要做的是分析清楚各个模块之间的流程关系,将各个功能模块串联起来,使得模块之间有关联的关系,这样才能构成一个完整的系统。首先签写留言信息,然后对留言内容进行敏感词过滤,如果提交成功,那么将留言信息显示在前台首页,最后由管理员对留言信息进行综合管理。管理员对留言进行管理之前先要登录,登录成功后进入后台的留言管理页面。留言板的系统流程如图3.2所示。图3.2网络留言板系统流程4数据库设计4.1 数据库需求分析本系统的主要实体有:用户信息实体、留言信息实体、留言回复:信息实体、文章信息实体。各实体之间的关系E-R图如图4.1所示。图4.1网上留言系统E-R图4.2 数据库概念结构设计数据库逻辑设计将所有实体和关系转换成一个系列的关系模式,将图4.1中数据库E-R图转换成为关系模型。> 用户:用户编号,用户名,昵称,密码)> 留言信息:(留言编号,留言昵称,留言主题,留言内容,留言心情,留言时间,用户头像,回复标记,私贴标记)> 留言回复信息:(留言编号,留言昵称,留言主题,留言内容,留言心情)> 公告信息:(公告编号,公告主题,心情,公告内容,发布日期)4.3 数据库逻辑结构设计根据数据项,可以设计出满足需求的各种实体,以及它们之间的关系。这样本系统设计一下实体:用户、留言、留言回复和公告。这几种实体对应数据库中的4个表:tb_userxtb_note>tb_note_answer和tb-fil,每个表与逻辑设计中一种关系模型对应。下面是每个数据表中的属性,包括属性列的名称,数据类型,长度等内容。经过上面对系统功能的分析和需求总结,设计出如下所示的数据项:(1)用户,包括用户编号、用户名、昵称和密码。用户信息及属性如图4.2所示。图4.2用户实体属性图tb_user表:tb_user表用来存储用户的ID、用户名、昵称及密码,如表4.1所示,主键是在一个表上定义的唯一键中的一个,而且一个表上只能有一个主键。表4.1用户信息数据表数据项字段类型长度用户编号USejidint11用户名USejnamevarchar40昵称USeJniCknamevarchar40密码USeJPaSSWordvarchar40(2)留言,包括留言编号、留言昵称、留言主题、留言内容、留言心情、留言时间、用户头像、回复标记和私贴标记。留言信息及属性如图4.3所示。图4.3留言实体属性图tb_note表:tb_note表用来存储留言的留言编号、留言昵称、留言主题、留言内容、留言心情、留言时间、用户头像、回复标记及私贴标记,留言信息及属性如表4.2所示。表4.2留言信息数据表数据项字段类型长度留言编号note_idint11留言昵称note_uservarchar20留言主题note-titlevarchar40留言内容note_contentvarchar500留言心情留言时间note_moodnote_timevarchardatetime200用户头像note_user_picvarchar200回复标记noteanswerint1私贴标记note_flagint1(3)回复,包括留言编号、4.4所示。留言昵称、留言主题、留言内容和留言心情。回复信息及属性如图图4.4留言回复实体属性图tb_note_answer表:tb_note_answer表用来存储留言编号、留言昵称、言心情,回复信息及属性如表4.3所示。表4.3回复信息数据表留言主题、留言内容和留数据项字段类型长度回复编号noan_idint11留言编号noan_note_idint11回复内容回复时间noan-contentnoan_timevarchardatetime500数据项字段类型长度回复编号noan_idint11回复者noan_user_namevarchar10(4)公告,包括公告编号、公告主题、心情、公告内容和发布日期。公告信息及属性如图4.5所示。图4.5文章实体实体属性图表:表用来存储系统公告的编号、公告主题、心情、公告内容和发布日期,公告的信息及属性如表4.4所示。表4.4文章信息表数据项字段类型长度公告编号filejdint4公告主题file_titlevarchar200心情file_facevarchar100公告内容file_contentetext发布日期fiel_datedatetime5系统详细设计5.1数据库的连接为了便于维护,减少代码冗余,在数据库连接这局部,采用面向对象的方式,定义了一个数据库访问类DB_MySQL。定义数据库访问类的代码如下。<?php*数据库访问类*yclassDB_MySQL/=varSHost="127.0.0.1”;效劳器地址varSDatabase="db_Ieaveword"数据库名称var$USer="root”;用户名varSPassword="root"用户密码/=varvarvarvarvarvarvarvar$LinkD = O; 数据库连接$Query_ID = O;查询结果$Row_Result = array (); 结果集组成的数组$FieId_Result = array(); 结果集字段名组成的数组$Affected_Rows; 影响的行数SRows; /结果集中记录行数SFields; 结果集中字段个数$Row_Position = 0; 记录指针位置索引/*/*构造函数*/function_construct()Sthis->connect();)/*解析函数*/function_destruct()mysql_close($this->Link_ID);)/*连接效劳器,选择数据库*/functionconnect(SDatabase="",$Host="",SUser="",SPassword=',")(if(,m,=SDatabase)SDatabase=Sthis->Database;)=$Host)($Host=$this->Host;)ifC'=$USer)$User=$this->User;)if('m=$PaSSWOrd)SPassword=Sthis->Password;1if(O=$this->Link_ID)($this->Link_ID=mysql_pconnect($Host,$User,SPassword);if(!$this->LinkJD)($this->halt("连接数据库效劳端失败!”);)if(!mysql_select_db($this->Database,$this->LinkJD)($this->halt("不能翻开指定的数据库广SthiS-,Database);)return$this->Link_ID;)/*释放内存*/functionfree()if(mysql_free_result($this->Query_ID)unset($this->Row_Result);$this->Query_lD=O;)/*执行查询*/functionquery($Query_String)*释放上次查询占用的内存*/if($this->Query_ID)Sthis->free();)if(O=$this->Link_lD)Sthis->connect();)设置中文字符集mysql_query("setnamesgb2312",$this->Link_ID);$this->Query_lD=mysql_query($Query_String,$this->Link_ID);if(!$this->Query_ID)Sthis->halt("SQL查询语句出错:”.$QUery.String);)return$this->Query_ID;)/*返回结果集记录组成的数组*/functionget_rows_array()$this->get_rows();for($i=0;$i<$this->Rows;$i+)if(!mysql_data_seek($this->Query_ID,$i)$this->halt('rmysql_data_seek查询语句出错");调用自定义函数)$this->Row_Result$i=mysql_fetch_array($this->Query_ID);)return$this->Row_Result;)/*返回结果集字段组成的数组*/functionget_fields_array()$this->get_fields();for($i=0;$i<$this->Fields;$i+)($obj=mysql_fetch_field($this->Query_ID,$i);$this->Field_Result$i=Sobj->name;)return$this->Field_Result;)/*返回结果集中记录行数*/functionget_rows()(Sthis->Rows=mysql_num_rows($this->Query_ID);returnSthis->Rows;1/*返回结果集中字段个数*/functionget_fields()Sthis->Fields=mysql_num_fields($this->Query_ID);return$this->Fields;)/*执行SQL语句并返回由查询结果中第一行记录组成的数组*/functionfetch_one_array($sql)($this->query($sql);returnmysql_fetch_array($this->QueryD);)/*打印错误信息*/functionhalt($msg)$this->Error=mysql_error();Printf("<BR>vb>数据库发生错误:<b>%s<br>n",$msg);printf("<b>MySQL返回错误信息:<b>%s<br>n",Sthis->Error);)?>在这个类中,定义了一个ConneCt()函数用来连接数据库效劳器并选择数据库,函数query0的功能为执行查询数据库。5.2 首页设计首页是整个网络留言板的入口地址,合理的首页布局和模块分配直接影响到用户对留言板的第一印象。为了吸引更多的用户浏览和使用网络留言板,在系统开发时需要精心地对首页进行设计。本系统在页面设计上采用传统的排版方式,主要有首部导航栏、左侧显示区和主显示区3局部组成,如图5.1所示。>首部导航栏:包括留言签写链接、管理留言链接及用户注册链接。>左侧显示区:包括用户登录、文章显示、检索留言、最新留言等模块。>主显示区:为留言浏览和显示等信息。图5.1网络留言板首页5.3 用户登录模块的实现用户登录模块设计在首页中,使用户在需要留言时能够快捷方便地登录。当用户输入用户名和密码并登录成功后,用户登录模块就不在显示在首页中,直到用户注销在线状态。用户登录模块如图5.2所示。当登陆框中输入的用户名和密码在数据库中存在时,利用全局数组$_SESSION口保存此次登录用户的信息,并提示登录成功,如图5.3所示。图5.2用户登录图5.3提示登录成功用户登录时的进行用户名及密码匹配的业务操作代码如下。<?phprequire("conn.php,');Susername=trim($_POST'username');$pwd=md5(trim($_POSrn'password');$sql="selectnichengfromtb_userwhereusername="'.Susername.'"andpwd=,".Spwd.",;$check_result=mysql_query($sql);if($result=mysql_fetch_array($check_result)$_SESSIoNrCheCkl=3;$_SESSIoNrUSemame'=Susername;$_SESSIONrniCheng'=$resultO;?><scriptlanguage=,'javascript,'>a1ert("登录成功!");IOCation='index.php'<script><?php)else?><scriptlanguage=,'javascript">alert("对不起,你输入的用户名或密码不正确!请重新输入。");IOCatiOn=,index.php,;<script><?php5.4 首页查看留言的实现(1)可查看留言的用户分为两种,即注册用户和非注册用户(游客)。注册用户除了可以查看其他用户的留言和版主的回复外,还可以看到自己给版主的悄悄话及版主对此悄悄话的回复,在此非注册用户只有浏览其他用户的留言和版主的回复的权限。在注册用户与非注册用户的区分上用到了变量$_SESSloNrUSernamel中保存的用户名。当首页被翻开时,如果$_SESSloNrUSemame1没被设置,就可以确定当前的用户为非注册用户,在本页面中没有查看悄悄话的权限;如果$_SESSloNrUSername'不为空,就可以确定当前用户为注册用户。非注册用户查看留言的效果如图5.4所示,注册用户查看留言的效果如图5.5所示。图5.4非注册用户查看留言效果图5.5注册用户查看留言效果(2)在首页的留言显示及查看模块中,采用分页技术。确定记录跨度$row_per_page,即每页显示的记录数,设置每页显示三条留言信息,根据公式“总记录数/跨度”,如果有余数那么进位取整来计算总页数$page_count。获取传递的当前页数$page_num,通过三目运算符计算判断第一页或者最后一页的位置。最后为SQL语句添加Iimit子句,计算查询的起始位置并执行SQL语句,将结果集存储到数组中。实现代码如下。if($_GET)得到要提取的页码$page_num=$_GET'page_num'?$_GET'page_num':1;)else首次进入时,页码为1$page_num=1;)得到总记录数$DB->