您的当前位置:首页正文

留言板设计毕业设计

2024-10-18 来源:威能网
目录

第一章留言板需求分析.......................................................................................................................................3一、任务概述.................................................................................................................................................3二、功能需求.................................................................................................................................................3三、功能设计.................................................................................................................................................5第二章留言板总体设计.......................................................................................................................................6一、新的业务流程.........................................................................................................................................6二、系统功能模块图.....................................................................................................................................7第三章留言板详细设计.......................................................................................................................................7一、数据库设计.............................................................................................................................................7(1)留言板数据库连接...............................................................................................................................8(2)留言板文件夹中文件的介绍...............................................................................................................9(3)关键技术分析.......................................................................................................................................9二、留言板页面设计...................................................................................................................................10(1)登陆页面设计.....................................................................................................................................10(2)主界面设计.......................................................................................................................................12(3)添加留言页面设计.............................................................................................................................13(3)显示留言信息的页面.......................................................................................................................14三、留言系统的功能...........................................................................................................................................15(1)添加留言页面设计.............................................................................................................................16(2)管理员表.............................................................................................................................................17(3)用户信息表.........................................................................................................................................17(4)该留言板特色功能说明.....................................................................................................................18第四章系统详细设计.........................................................................................................................................21(1)数据表的设计.....................................................................................................................................21(2)数据库的连接.....................................................................................................................................22(3)数据添加...........................................................................................................................................23(4)数据删除...........................................................................................................................................25第五章总结.........................................................................................................................................................26第一章留言板需求分析一、任务概述

经过对QQ等具有留言功能的系统进行详细调查,加深了对留言板模块功能的了解,与此同时,将整个留言板的业务流程抽象描述如下:

1、留言者进入留言系统后,进行发布留言、查看回复留言。2、管理者进入留言板后,进行回复留言、删除留言。根据以上调查分析,可以给出其现行业务分析图,如图1.

图1

二、功能需求

经过详细的调查,我们已经清楚了解了现行的业务流程,接下来给出系统的逻辑模型。构造系统逻辑模型的工具是数据流图和数据字典。

根据现行留言板的业务流程,首先把数据流图中的点选定为管理员和访客,因此可以得到留言板系统的基本系统模型,如图2.

图2

根据基本系统模型,对其逐步细化,得到描述逻辑系统细化后的系统模块结构图,如图3.

图3三、功能设计

留言板系统面向两类用户:访客和管理员。网友可以留言和查看当前留言。管理员可以查看当前留言,回复留言和删除留言。

留言板系统需要实现以下功能:网友留言、分页显示留言、管理员登陆、管理员回复留言、管理员删除留言。其中每个功能详细描述如下:

访客留言:网友需要输入自己的昵称、QQ号、邮箱、留言内容进行留言。

分页显示留言:对网友的留言按照时间顺序显示,留言的内容包括网友昵称、留言时间、留言内容、管理员回复内容。每页显示5条留言,如果留言数超出5条则需要分页。分页要求有首页、尾页、上一页、下一页、当前页码、留言条数、转到指定页等功能。

管理员登陆:管理员在进入登陆界面后,输入用户名和密码登陆,登陆后可以回复留言和删除留言。、功能设计

留言板系统面向两类用户:访客和管理员。网友可以留言和查看当前留言。管理员可以查看当前留言,回复留言和删除留言。

留言板系统需要实现以下功能:网友留言、分页显示留言、管理员登陆、管理员回复留言、管理员删除留言。其中每个功能详细描述如下:

访客留言:网友需要输入自己的昵称、QQ号、邮箱、留言内容进行留言。

分页显示留言:对网友的留言按照时间顺序显示,留言的内容包括网友昵称、留言时间、留言内容、管理员回复内容。每页显示5条留言,如果留言数超出5条则需要分页。分页要求有首页、尾页、上一页、下一页、当前页码、留言条数、转到指定页等功能。

管理员登陆:管理员在进入登陆界面后,输入用户名和密码登陆,登陆后可以回复留言和删除留言。

管理员回复留言:管理员登陆后可回复留言。回复后的留言需要在留言列表中显示。管理员删除留言:管理员登陆后可删除留言,删除时需要弹出对话框确认再删除。

管理员回复留言:管理员登陆后可回复留言。回复后的留言需要在留言列表中显示。管理员删除留言:管理员登陆后可删除留言,删除时需要弹出对话框确认再删除。

第二章留言板总体设计一、新的业务流程

根据需求分析的得到的现行业务处理流程,在用户反复研究后,首先确定目标系统的业务流程,如图4.

图4二、系统功能模块图

为了保证系统能够长期、安全、稳定、可靠、高效的运行,留言板系统的设计流程,如图5.

图5

第三章留言板详细设计一、数据库设计

数据库在一个信息系统中占有十分重要的地位,数据库结构设计的好坏直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据库的完整性和一致性,同时合理的数据库结构设计也有利于和程序的实现。这一设计阶段是在需求分析的基础上,设计出能够满足用户需要的各种实体以及它们的关系。采用的数据库是Mysql建立liuyan.sql文件。

biaodan表设计如下:用户留言信息表,如图6

图6字段信息解释如下:Name:用户留言的名字Password:用户留言的信息Sex:留言者的名字QQ:留言者留的QQ号Count:留言者的留言内容(1)留言板数据库连接

留言板中很多数据例如,用户登陆时检测名字和密码,进行查看和留言时,都需要用到和数据库的连接。所以应该将与数据库的连接专门作为一个PHP文件,这样不仅方便,而且也增加安全性。

我的这个留言板中,就是以conn.php文件作为单独一个PHP文件连接数据库的!而具体连接数据库的PHP代码见下:

$conn=mysql_connect(\"localhost\ordie(\"连接失败\");mysql_select_db(\"liuyan\mysql_query(\"setnames'GBK'\");functioncode($count){

$count=str_replace(\"\\n\\"
\str_replace(\"\\" \$count));return$count;

}?>

而在每个连接数据库的文件中,都加上这么一句来简单而又很有模块复用功能的PHP语句,使的整个系统显得更加精干而严紧。

(2)留言板文件夹中文件的介绍

有了数据库,就应该设计留言板的各个页面。本留言板由1个文件夹(用来存放图片的),6个文件组成,简单介绍各文件的作用:

index.PHP:留言板主页,主要功能是查看留言,添加留言、注销。

conn.PHP:留言板与数据库的连接的文件,作为单独的一个PHP文件,适合进行修改和管理。

show.PHP:用来显示用户的留言信息。admin.PHP:用户登陆界面的PHP文件。

tijiao.PHP:当用户提交信息时,此页面是将数据插入到数据库中。

biaodan.PHP:用来进行留言信息的编辑,包括要留言的姓名、性别、留言的信息等。(3)关键技术分析1、不能直接访问数据库

Web页不能直接访问数据库中存储的数据,而是需要与记录集进行交互。记录集是从数据库中提取的信息或记录的子集。该信息子集是通过数据库查询提取出来的。Php使用结构查询语言(SQL)来生成查询。使用php中的简单【记录集】对话框和高级【记录集】对话框都可以定义记录集。在简单【记录集】对话框中,可以轻松构建简单的SQL语句;在高级【记录集】对话框中,可以编写自己的SQL语句或使用图形化“数据库项”树创建SQL语句。

将数据库用做动态网页的内容源时,必须首先创建一个要在其中存储检索数据的记录集。记录集在存储内容的数据库和生成页面的应用程序服务器之间起一种桥梁作用。

2、如何能使密码不被透露

现在盗取密码的方式很多,盗取密码的技术也不计其数,因此我们要保护好自己的密码,以免被人盗取。保护密码的方法是把密码设置成复杂的密码,那是靠拥护自己去设置,但是开发者要保证最基本的保障,那便是不让别人看到用户输入的密码。所以在密码设置的时候需要注意,为了不让别人看到自己输入的密码,因此要保护密码,所以设置密码时,在选择密码文本框的时候在类型中要选择密码。只有选择类型中的密码才会在登录的时候不会被透露。

二、留言板页面设计(1)登陆页面设计

留言板的首页文件,功能主要是为访客留下相关的信息,并进行留言,。界面相对简单,但功能很实用!留言板的基本功能实现具体如下:

在留言中,最重要是要保留留言用户的相关信息和留言内容,我将其放入guest数据库中。

主页中留言的页面如下:如图7

图7

里登录主要就是个用户验证登录的问题。思路主要就是,先从表单获取到用户名、密码,然后跟指定的用户名和密码比对是否一样。一样就通过进入主页面,否则回去继续登录。

代码:

if(form1.txtUser.value==\"\")

{

form1.UserTS.value=\"帐号不能为空\";form1.txtUser.focus();returnfalse;}

elseif(form1.txtUser.value.length<3||form1.txtUser.value.length>12){

form1.UserTS.value=\"帐号长度错误\";form1.txtUser.focus();returnfalse;}

elseif(!isNumberOr_Letter()){

form1.UserTS.value=\"帐号格式错误\";form1.txtUser.focus();returnfalse;}else{

form1.UserTS.value=\"\";}

(2)主界面设计主界面:如图8。.

图8

当用户登录成功之后显示该页面,该页面主要有添加留言、浏览留言、注销等功能。同时登录成功会显示登录成功提示。如果是用户名是admin,则提示登录成功,否则不提示。

代码如下:functionmsgchk(){

if(form1.title.value==\"\"){

alert(\"标题不能为空\");form1.title.focus();returnfalse;}

if(form1.content.value==\"\"){

alert(\"请输入留言内容\");form1.content.focus();returnfalse;}

returntrue();}

(3)添加留言页面设计

主要进行留言信息的编辑以及提交操作,重置按钮后则重置为零,当按提交按钮时则进行跳转,如图9

图9

回复时点击回复,然后会跳转到回复页面,当回复完成后同样会弹出提示栏“回复成功”具体代码:

ifrequest.Form(\"Submit\")=\"发表回复\"then

dimsql,content

content=replace(replace(request.Form(\"content\"),\"[/\

src=Face_pic/\"),\"]\width=22height=22>\")

content=replace(content,vbCrlf,\"
\")

sql=\"updateMsgsetMsgReply='\"&content&\"',MsgReDate='\"&date()&\"'where

MsgID=\"&CInt(request.Form(\"ReplyID\"))

conn.execute(sql)response.Write(\"language='javascript'>alert('回复成功

');window.location.href='index.asp';\")

conn.closesetconn=nothingendif

(3)显示留言信息的页面留言信息:如图10

图10

如果该数据库中存在该用户的留言信息,则会从数据库中进行遍历查询,在此页面的表格中进行显示。

其具体代码如下:$SQL=\"SELECT*FROM`biaodan`\";$query=mysql_query($SQL);

while($row=mysql_fetch_array($query)){?>width=500

border=\"0\"

cellpadding=\"5\"

cellspacing=\"1\"

bgcolor=\"#add3ef\"align=\"center\">

姓名:性别:QQ:

内容:echocode($row[count]);?>

三、留言系统的功能

该留言板具有的主要功能如下:

1、可以按照发言时间的先后顺序,留言板自动排序;2、友好简洁的管理界面,便于管理员维护留言板;3、管理员具有回复和删除留言的权限;

4、管理员可以修改留言板页面的名称和网址以及每页显示的留言数;5、拥有更多留言者的信息,包括名字、地方、QQ号等;6、留言板系统具有防灌水功能;7、具有页数跳转功能;

8、具有防止留言客户非法进入管理界面功能;(1)添加留言页面设计

有了合适的技术,确定了留言板的功能,应该就此给出整体结构的流程图:如图11图11(2)管理员表Createtableadmin(Anochar(10)Pwdchar(10))

Insertintoadmin(ano,pwd)values('gao','111')管理员(姓名、密码)对应E—R图如下:如图12

primarykey,

图12

管理员登陆主页后可输入帐号密码,并登陆.

(3)用户信息表createtableusers(unochar(20)primarykey,unamechar(20),

pwdchar(20),imgchar(100),)

用户信息(账号、姓名、密码、头像)对应E—R图如下:如图13

用户信息

账号

密码

姓名

头像

图13

(4)该留言板特色功能说明

1.对于其他留言板而言,该留言板增加了防止灌水功能。

对于灌水功能的实现,主要是考以下asp代码实现的:posttime=10

ifcint(posttime)<>0then

ifnotisnull(session(\"posttime\"))orcint(posttime)>0thenifDateDiff(\"shen

MessageBox\"错误信息:留言本防灌水功能已经打开,限制\"&posttime&\"秒内不

能重复留言。

response.end

endifendifendif

ifcint(posttime)<>0then

session(\"posttime\")=now()endif

2.在安全方面,许多留言板做了很多加密限制,我则加入了对系统中关键名字的过滤以及在index主界面的删除和回复中设置了权限,防止访客和其他人员对留言进行删除。而具体来说,对呢称的过滤,先是与数据库中的information表连接,接着从提交的表格中取出相应的信息,然后是用以下asp代码实现的:

check_name=txtnamebadid=split(badid,\fori=0toubound(badid)

ifinstr(check_name,badid(i))>0then

MessageBox\"错误信息:您使用了屏蔽的昵称。\"response.endexitforendif

next

而对于删除和回复权限的设置,则是通过先与数据库中admin表连接,然后在login管理员登陆界面中登陆成功后,将管理员的名字保存在cookies里:response.Cookies(\"adminname\")=adminname,在request.cookies(\"adminname\")=\"\"

delete.asp文件中加入if

then来判断是否是管理员,然后进行删除和回复操

作。这点保证了删除和回复权限,使留言板的安全性又上升了一个档次。

3.对于防止留言不良信息,是各大留言板严禁的,也是促进我国网络健康发展的必要措施。

而对于对不良留言屏蔽的实现,首先是先与数据库中的information表连接,然后是用以下asp代码实现的:

check_content=txtcontentbadwords=split(badwords,\fori=0toubound(badwords)

ifinstr(check_content,badwords(i))>0thenMessageBox\"错误信息:您使用了非法的留言内容。\"response.endexitforendifnext

4.MD5的全称是Message-DigestAlgorithm5(信息-摘要算法),在90年代初由MITLaboratoryforComputerScience和RSADataSecurityInc的RonaldL.Rivest开发出来,经MD2、MD3和MD4发展而来。在一些初始化处理后,MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。算法的输出由四个32位分组组成,将它们级联形成一个128位散列值。首先填充消息使其长度恰好为一个比512位的倍数仅小64位的数。填充方法是附一个1在消息后面,后接所要求的多个0,然后在其后附上64位的消息长度(填充前)。这两步的作用是使消息长度恰好是512位的整数倍(算法的其余部分要求如此),同时确保不同的消息在填充后不相同。四个32位变量初始化为:A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210

它们称为链接变量(chainingvariable)

接着进行算法的主循环,循环的次数是消息中512位消息分组的数目。将上面四个变量复制到别外的变量中:A到a,B到b,C到c,D到d。主循环有四轮(MD4只有三轮),每轮很相似。第一轮进行16次操作。每次操作对a,b,c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a,b,c或d中之一。最后用该结果取代a,b,c或d中之一。

第四章系统详细设计留言拥有大量的数据,这就需要对这些数据进行存储和管理建立数据库。因为当留言的在线用户很多时,就会出现“瓶颈”现象,造成阻塞,这里应该创建连接池来提高利用率。数据库建立成功后就应该进行具体的系统设计。然后,将进行留言信息页面的设计,包括主页面、发布留言相关页面等,是显示在留言页面,可以由用户(包括用户)以上级别的浏览者看到;最后,进行留言管理页面的设计,这是只能由管理员进行操作的页面,管理员会对留言进行安全、有条理的管理。

(1)数据表的设计

设计数据库表的字段时,需要充分考虑到留言的应用特点。数据库表的设计要求简单易于理解,扩展性好。其中记录留言发表文章的数据库表note_comment

主要有以下的以下几个描述字段:subjectName:

留言主题发贴者姓名



Comment:Email:url:

communicationIP

留言内容邮箱地址主页

其他联系方式IP地址留言提交时间

PostDate

(2)数据库的连接

Access是文件型数据库,一个文件就是一个数据库,可以利用ASP中的语法直接连接。在连接数据库之前,必须先声明一个对象来当作数据库与ASP程序之间的媒介,具体连接方式如下:

setrs=Server.CreateObject(\"ADODB.RecordSet\")

'创建RecordSet对象

'从数据库中读取留

rs.open\"select*fromnote_commentorderbyiddesc\言,并保存在rs中

ifrs.eofandrs.bofthen

response.redirect\"book_write.asp\"else

ifcounts=0orcounts=\"\"thencounts=10rs.pageSize=countsallpages=rs.pageCountpage=Request(\"page\")

IfnotisNumeric(page)thenpage=1ifisEmpty(page)orCint(page)<1then

page=1

'不存在留言记录

'转到撰写留言页面'存在记录'每页留言条数'每页记录数'总页数

'从浏览器取得当前页'page不是数字'page为空或小于1

elseifCint(page)>=allPagesthen

page=allPagesendif

rs.AbsolutePage=pageDoWhileNotrs.eof

UserName=rs(\"Name\")Comments=rs(\"Comment\")Reply=rs(\"Reply\")Usermail=rs(\"Email\")url=rs(\"Url\")

replyname=rs(\"ReplyName\")I=I+1

'page值大于总页数

'转到某页头部

'用户名'内容'回复'邮件'主页'回复人姓名'留言序号

temp=RS.RecordCount-(page-1)*rs.pageSize-I+1

%>

在打开数据库并完成相应的操作后,应关闭数据库连接。当不再需要连接时将其关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。

用Connection对象的Close方法终止Connection对象和数据库之间的连接。下面的脚本打开连接,然后将其关闭:

<%EndIfconn.CLoseSetconn=nothing%>

'关闭数据库

(3)数据添加

rs.Addnewrs(\"Name\")=Request.Form(\"username\")rs(\"Comment\")=Request.Form(\"comments\")rs(\"Email\")=Request.Form(\"usermail\")rs(\"url\")=Request.Form(\"url\")rs(\"Communication\")=Request.Form(\"communication\")rs(\"IP\")=Request.serverVariables(\"REMOTE_ADDR\")rs(\"PostDate\")=now()rs(\"Subject\")=Request.Form(\"subject\")rs.Updaters.Addnewrs(\"Name\")=Request.Form(\"username\")rs(\"Comment\")=Request.Form(\"comments\")rs(\"Email\")=Request.Form(\"usermail\")rs(\"url\")=Request.Form(\"url\")rs(\"Communication\")=Request.Form(\"communication\")rs(\"IP\")=Request.serverVariables(\"REMOTE_ADDR\")rs(\"PostDate\")=now()rs(\"Subject\")=Request.Form(\"subject\")rs.Updaters.Addnewrs(\"Name\")=Request.Form(\"username\")'添加一条记录'姓名'留言内容'邮箱地址'主页'其他联系方式'IP地址'留言提交时间'留言主题'更新数据库'添加一条记录'姓名'留言内容'邮箱地址'主页'其他联系方式'IP地址'留言提交时间'留言主题'更新数据库'添加一条记录'姓名rs(\"Comment\")=Request.Form(\"comments\")rs(\"Email\")=Request.Form(\"usermail\")rs(\"url\")=Request.Form(\"url\")rs(\"Communication\")=Request.Form(\"communication\")rs(\"IP\")=Request.serverVariables(\"REMOTE_ADDR\")rs(\"PostDate\")=now()rs(\"Subject\")=Request.Form(\"subject\")rs.Update'留言内容'邮箱地址'主页'其他联系方式'IP地址'留言提交时间'留言主题'更新数据库(4)数据删除

subdelfeedback()

ifdelid=\"\"orisnull(delid)then

'留言删除

'要删除的记录id为空则给出提示

response.write\"\"

response.redirect\"admin_main.asp\"response.endelse

'id存在

'返回到留言管理界面

'执行数据库中的删除操作,删除数据库中id列的值在delid数组中的记录

conn.Execute(\"delete*fromnote_commentwhereIDin(\"&delid&\")\")

'删除成功,给出提示

response.write\"\"请单击“确定”返回!

response.redirect\"admin_main.asp\"response.endendif

'返回到留言管理界面

endsub

第五章总结在本论文完成之际,本人由衷的感谢关怀、教诲、帮助、支持和鼓励本人完成学业的老师和朋友。

在做这个留言板中,体会到ASP的简单实用,也感受到编程的乐趣。我十分仔细的学习了一遍,并编出了这个留言板,虽然有很多不足之处,但我认为这是难免的。在以后编程的漫漫长路上,这种困难是不可避免的。但我相信,通过这次的毕业设计,对我以后的学习编程和整个编程都十分有益。

技术只是一方面,更多的是学会了利用资源。“时间作为一种最宝贵的资源”,让我在这半个多月中体会颇深。虽然付出更多的时间和精力,但想到自己的前途,我又信心百倍的做了起来。在设计的过程中出现了很多问题及错误。但是指导老师不厌其烦的教导及指正,谢谢老师孜孜不倦的教导,以及对我们的重视,让我能顺利地完成这个毕业设计。在这个设计过程之后,除了感谢还是感谢,让您为了此次的设计花费了不少的心思,也花费了您不少的时间。感谢您陪我们走过了这段美好的大学时光。也非常感谢同组的同学的互相帮助,谢谢你们的帮助。正因为你们的帮助我才能得以顺利的完成本次设计。

因篇幅问题不能全部显示,请点此查看更多更全内容