1、目录第一章 留言板需求分析.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
2、(3)数据添加.23(4)数据删除.25第五章 总结.26第一章 留言板需求分析第一章 留言板需求分析一、任务概述一、任务概述经过对 QQ 等具有留言功能的系统进行详细调查,加深了对留言板模块功能的了解,与此同时,将整个留言板的业务流程抽象描述如下:1、留言者进入留言系统后,进行发布留言、查看回复留言。2、管理者进入留言板后,进行回复留言、删除留言。根据以上调查分析,可以给出其现行业务分析图,如图 1.图 1二、功能需求二、功能需求经过详细的调查,我们已经清楚了解了现行的业务流程,接下来给出系统的逻辑模型。构造系统逻辑模型的工具是数据流图和数据字典。根据现行留言板的业务流程,首先把数据流图中的
3、点选定为管理员和访客,因此可以得到留言板系统的基本系统模型,如图 2.图 2根据基本系统模型,对其逐步细化,得到描述逻辑系统细化后的系统模块结构图,如图3.图 3三、功能设计三、功能设计留言板系统面向两类用户:访客和管理员。网友可以留言和查看当前留言。管理员可以查看当前留言,回复留言和删除留言。留言板系统需要实现以下功能:网友留言、分页显示留言、管理员登陆、管理员回复留言、管理员删除留言。其中每个功能详细描述如下:访客留言:网友需要输入自己的昵称、QQ 号、邮箱、留言内容进行留言。分页显示留言:对网友的留言按照时间顺序显示,留言的内容包括网友昵称、留言时间、留言内容、管理员回复内容。每页显示
4、5 条留言,如果留言数超出 5 条则需要分页。分页要求有首页、尾页、上一页、下一页、当前页码、留言条数、转到指定页等功能。管理员登陆:管理员在进入登陆界面后,输入用户名和密码登陆,登陆后可以回复留言和删除留言。、功能设计管理员登陆:管理员在进入登陆界面后,输入用户名和密码登陆,登陆后可以回复留言和删除留言。、功能设计留言板系统面向两类用户:访客和管理员。网友可以留言和查看当前留言。管理员可以查看当前留言,回复留言和删除留言。留言板系统需要实现以下功能:网友留言、分页显示留言、管理员登陆、管理员回复留言、管理员删除留言。其中每个功能详细描述如下:访客留言:网友需要输入自己的昵称、QQ 号、邮箱、
5、留言内容进行留言。分页显示留言:对网友的留言按照时间顺序显示,留言的内容包括网友昵称、留言时间、留言内容、管理员回复内容。每页显示 5 条留言,如果留言数超出 5 条则需要分页。分页要求有首页、尾页、上一页、下一页、当前页码、留言条数、转到指定页等功能。管理员登陆:管理员在进入登陆界面后,输入用户名和密码登陆,登陆后可以回复留言和删除留言。管理员回复留言:管理员登陆后可回复留言。回复后的留言需要在留言列表中显示。管理员删除留言:管理员登陆后可删除留言,删除时需要弹出对话框确认再删除。管理员回复留言:管理员登陆后可回复留言。回复后的留言需要在留言列表中显示。管理员删除留言:管理员登陆后可删除留言
6、,删除时需要弹出对话框确认再删除。第二章 留言板总体设计第二章 留言板总体设计一、新的业务流程一、新的业务流程根据需求分析的得到的现行业务处理流程,在用户反复研究后,首先确定目标系统的业务流程,如图 4.图 4二、系统功能模块图二、系统功能模块图为了保证系统能够长期、安全、稳定、可靠、高效的运行,留言板系统的设计流程,如图5.图 5第三章 留言板详细设计第三章 留言板详细设计一、数据库设计一、数据库设计数据库在一个信息系统中占有十分重要的地位,数据库结构设计的好坏直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据库的完整性和一致性,同时合理的数据库
7、结构设计也有利于和程序的实现。这一设计阶段是在需求分析的基础上,设计出能够满足用户需要的各种实体以及它们的关系。采用的数据库是 Mysql 建立 liuyan.sql 文件。biaodan 表设计如下:用户留言信息表,如图 6图 6字段信息解释如下:Name:用户留言的名字Password:用户留言的信息Sex:留言者的名字QQ:留言者留的 QQ 号Count:留言者的留言内容(1)留言板数据库连接)留言板数据库连接留言板中很多数据例如,用户登陆时检测名字和密码,进行查看和留言时,都需要用到和数据库的连接。所以应该将与数据库的连接专门作为一个 PHP 文件,这样不仅方便,而且也增加安全性。我的
8、这个留言板中,就是以 conn.php 文件作为单独一个 PHP 文件连接数据库的!而具体连接数据库的 PHP 代码见下:?php$conn=mysql_connect(localhost,root,admin)or die(连接失败);mysql_select_db(liuyan,$conn);mysql_query(set names GBK);function code($count)$count=str_replace(n,str_replace(, ,$count);return$count;?而在每个连接数据库的文件中,都加上这么一句来简单而又很有模块复用功能的 PHP
9、语句,使的整个系统显得更加精干而严紧。(2)留言板文件夹中文件的介绍)留言板文件夹中文件的介绍有了数据库,就应该设计留言板的各个页面。本留言板由 1 个文件夹(用来存放图片的),6 个文件组成,简单介绍各文件的作用:index.PHP:留言板主页,主要功能是查看留言,添加留言、注销。conn.PHP:留言板与数据库的连接的文件,作为单独的一个 PHP 文件,适合进行修改和管理。show.PHP:用来显示用户的留言信息。admin.PHP:用户登陆界面的 PHP 文件。tijiao.PHP:当用户提交信息时,此页面是将数据插入到数据库中。biaodan.PHP:用来进行留言信息的编辑,包括要留言
10、的姓名、性别、留言的信息等。(3)关键技术分析)关键技术分析1、不能直接访问数据库Web 页不能直接访问数据库中存储的数据,而是需要与记录集进行交互。记录集是从数据库中提取的信息或记录的子集。该信息子集是通过数据库查询提取出来的。Php 使用结构查询语言(SQL)来生成查询。使用 php 中的简单【记录集】对话框和高级【记录集】对话框都可以定义记录集。在简单【记录集】对话框中,可以轻松构建简单的 SQL 语句;在高级【记录集】对话框中,可以编写自己的 SQL 语句或使用图形化“数据库项”树创建SQL 语句。将数据库用做动态网页的内容源时,必须首先创建一个要在其中存储检索数据的记录集。记录集在存
11、储内容的数据库和生成页面的应用程序服务器之间起一种桥梁作用。2、如何能使密码不被透露现在盗取密码的方式很多,盗取密码的技术也不计其数,因此我们要保护好自己的密码,以免被人盗取。保护密码的方法是把密码设置成复杂的密码,那是靠拥护自己去设置,但是开发者要保证最基本的保障,那便是不让别人看到用户输入的密码。所以在密码设置的时候需要注意,为了不让别人看到自己输入的密码,因此要保护密码,所以设置密码时,在选择密码文本框的时候在类型中要选择密码。只有选择类型中的密码才会在登录的时候不会被透露。二、留言板页面设计二、留言板页面设计(1)登陆页面设计)登陆页面设计留言板的首页文件,功能主要是为访客留下相关的信
12、息,并进行留言,。界面相对简单,但功能很实用!留言板的基本功能实现具体如下:在留言中,最重要是要保留留言用户的相关信息和留言内容,我将其放入 guest 数据库中。主页中留言的页面如下:如图 7图 7里登录主要就是个用户验证登录的问题。思路主要就是,先从表单获取到用户名、密码,然后跟指定的用户名和密码比对是否一样。一样就通过进入主页面,否则回去继续登录。代码:if(form1.txtUser.value=)form1.UserTS.value=帐号不能为空;form1.txtUser.focus();return false;else if(form1.txtUser.value.length
13、12)form1.UserTS.value=帐号长度错误;form1.txtUser.focus();return false;else if(!isNumberOr_Letter()form1.UserTS.value=帐号格式错误;form1.txtUser.focus();return false;elseform1.UserTS.value=;(2)主界面设计)主界面设计主界面:如图 8。.图 8当用户登录成功之后显示该页面,该页面主要有添加留言、浏览留言、注销等功能。同时登录成功会显示登录成功提示。如果是用户名是 admin,则提示登录成功,否则不提示。代码如下:function m
14、sgchk()if(form1.title.value=)alert(标题不能为空);form1.title.focus();return false;if(form1.content.value=)alert(请输入留言内容);form1.content.focus();return false;return true();(3)添加留言页面设计)添加留言页面设计主要进行留言信息的编辑以及提交操作,重置按钮后则重置为零,当按提交按钮时则进行跳转,如图 9图 9回复时点击回复,然后会跳转到回复页面,当回复完成后同样会弹出提示栏“回复成功”具体代码:if request.Form(Submit)
15、=发表回复 thendim sql,contentcontent=replace(replace(request.Form(content),/,)content=replace(content,vbCrlf,)sql=update Msg set MsgReply=&content&,MsgReDate=&date()&whereMsgID=&CInt(request.Form(ReplyID)conn.execute(sql)response.Write(alert(回复成功);window.location.href=index.asp;)conn.closeset conn=nothi
16、ngend if(3)显示留言信息的页面)显示留言信息的页面留言信息:如图 10图 10如果该数据库中存在该用户的留言信息,则会从数据库中进行遍历查询,在此页面的表格中进行显示。其具体代码如下:姓名:性别:QQ:内容:三、留言系统的功能三、留言系统的功能该留言板具有的主要功能如下:1、可以按照发言时间的先后顺序,留言板自动排序;2、友好简洁的管理界面,便于管理员维护留言板;3、管理员具有回复和删除留言的权限;4、管理员可以修改留言板页面的名称和网址以及每页显示的留言数;5、拥有更多留言者的信息,包括名字、地方、QQ 号等;6、留言板系统具有防灌水功能;7、具有页数跳转功能;8、具有防止留言客户
17、非法进入管理界面功能;(1)添加留言页面设计)添加留言页面设计有了合适的技术,确定了留言板的功能,应该就此给出整体结构的流程图:如图 11图 11(2)管理员表)管理员表Create table admin(Ano char(10)primary key,Pwd char(10)Insert into admin(ano,pwd)values(gao,111)管理员(姓名、密码)对应 ER 图如下:如图 12图 12管理员登陆主页后可输入帐号密码,并登陆.(3)用户信息表)用户信息表create table users(uno char(20)primary key,uname char(20
18、),pwd char(20),img char(100),)用户信息(账号、姓名、密码、头像)对应 ER 图如下:如图 13用户信息账号姓名密码头像图 13(4)该留言板特色功能说明)该留言板特色功能说明1对于其他留言板而言,该留言板增加了防止灌水功能。对于灌水功能的实现,主要是考以下 asp 代码实现的:posttime=10if cint(posttime)0 thenif not isnull(session(posttime)or cint(posttime)0 thenif DateDiff(s,session(posttime),Now()cint(posttime)thenMes
19、sageBox 错误信息:留言本防灌水功能已经打开,限制&posttime&秒内不能重复留言。response.endend ifend ifend ifif cint(posttime)0 thensession(posttime)=now()end if2在安全方面,许多留言板做了很多加密限制,我则加入了对系统中关键名字的过滤以及在 index 主界面的删除和回复中设置了权限,防止访客和其他人员对留言进行删除。而具体来说,对呢称的过滤,先是与数据库中的 information 表连接,接着从提交的表格中取出相应的信息,然后是用以下 asp 代码实现的:check_name=txtnameb
20、adid=split(badid,)for i=0 to ubound(badid)if instr(check_name,badid(i)0 thenMessageBox 错误信息:您使用了屏蔽的昵称。response.endexit forend ifnext而对于删除和回复权限的设置,则是通过先与数据库中 admin 表连接,然后在 login管 理 员 登 陆 界 面 中 登 陆 成 功 后,将 管 理 员 的 名 字 保 存 在 cookies 里:response.Cookies(adminname)=adminname,在delete.asp 文 件 中 加 入 ifreques
21、t.cookies(adminname)=then 来判断是否是管理员,然后进行删除和回复操作。这点保证了删除和回复权限,使留言板的安全性又上升了一个档次。3.对于防止留言不良信息,是各大留言板严禁的,也是促进我国网络健康发展的必要措施。而对于对不良留言屏蔽的实现,首先是先与数据库中的 information 表连接,然后是用以下 asp 代码实现的:check_content=txtcontentbadwords=split(badwords,)for i=0 to ubound(badwords)if instr(check_content,badwords(i)0 thenMessage
22、Box 错误信息:您使用了非法的留言内容。response.endexit forend ifnext4.MD5 的全称是 Message-Digest Algorithm 5(信息-摘要算法),在 90 年代初由MIT Laboratory for Computer Science 和 RSA Data Security Inc 的 Ronald L.Rivest开发出来,经 MD2、MD3 和 MD4 发展而来。在一些初始化处理后,MD5 以 512 位分组来处理输入文本,每一分组又划分为16 个 32 位子分组。算法的输出由四个 32 位分组组成,将它们级联形成一个 128 位散列值。首
23、先填充消息使其长度恰好为一个比 512 位的倍数仅小 64 位的数。填充方法是附一个 1 在消息后面,后接所要求的多个 0,然后在其后附上 64 位的消息长度(填充前)。这两步的作用是使消息长度恰好是 512 位的整数倍(算法的其余部分要求如此),同时确保不同的消息在填充后不相同。四个 32 位变量初始化为:A=0 x01234567B=0 x89abcdefC=0 xfedcba98D=0 x76543210它们称为链接变量(chaining variable)接着进行算法的主循环,循环的次数是消息中 512 位消息分组的数目。将上面四个变量复制到别外的变量中:A 到 a,B 到 b,C 到
24、 c,D 到 d。主循环有四轮(MD4 只有三轮),每轮很相似。第一轮进行 16 次操作。每次操作对 a,b,c 和 d 中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上 a,b,c 或 d 中之一。最后用该结果取代 a,b,c 或 d 中之一。第四章 系统详细设计第四章 系统详细设计留言拥有大量的数据,这就需要对这些数据进行存储和管理建立数据库。因为当留言的在线用户很多时,就会出现“瓶颈”现象,造成阻塞,这里应该创建连接池来提高利用率。数据库建立成功后就应该进行具体的系统设计。然后,将进行留言信息页面的设计,
25、包括主页面、发布留言相关页面等,是显示在留言页面,可以由用户(包括用户)以上级别的浏览者看到;最后,进行留言管理页面的设计,这是只能由管理员进行操作的页面,管理员会对留言进行安全、有条理的管理。(1)数据表的设计(1)数据表的设计设计数据库表的字段时,需要充分考虑到留言的应用特点。数据库表的设计要求简单易于理解,扩展性好。其中记录留言发表文章的数据库表 note_comment主要有以下的以下几个描述字段:subject留言主题Name:发贴者姓名Comment:留言内容Email:邮箱地址url:主页communication其他联系方式IPIP 地址 PostDate留言提交时间(2)数据
26、库的连接(2)数据库的连接Access 是文件型数据库,一个文件就是一个数据库,可以利用 ASP 中的语法直接连接。在连接数据库之前,必须先声明一个对象来当作数据库与 ASP 程序之间的媒介,具体连接方式如下:set rs=Server.CreateObject(ADODB.RecordSet)创建 RecordSet 对象rs.open select*from note_comment order by id desc,conn,1,3从数据库中读取留言,并保存在 rs 中if rs.eof and rs.bof then不存在留言记录response.redirect book_write
27、.asp转到撰写留言页面else存在记录if counts=0 or counts=then counts=10每页留言条数rs.pageSize=counts每页记录数allpages=rs.pageCount总页数page=Request(page)从浏览器取得当前页If not isNumeric(page)then page=1page 不是数字if isEmpty(page)or Cint(page)=allPages thenpage 值大于总页数page=allPagesend ifrs.AbsolutePage=page转到某页头部Do While Not rs.eofUser
28、Name=rs(Name)用户名Comments=rs(Comment)内容Reply=rs(Reply)回复Usermail=rs(Email)邮件url=rs(Url)主页replyname=rs(ReplyName)回复人姓名I=I+1留言序号temp=RS.RecordCount-(page-1)*rs.pageSize-I+1%在打开数据库并完成相应的操作后,应关闭数据库连接。当不再需要连接时将其关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。用 Connection 对象的 Close 方法终止 Connection 对象和数据库之间的连接。下面的脚本打开连接,然
29、后将其关闭:(3)数据添加(3)数据添加rs.Addnew添加一条记录rs(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)IP 地址rs(PostDate)=now()留言提交时间rs(Subje
30、ct)=Request.Form(subject)留言主题rs.Update更新数据库rs.Addnew添加一条记录rs(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)IP 地址rs(PostDa
31、te)=now()留言提交时间rs(Subject)=Request.Form(subject)留言主题rs.Update更新数据库rs.Addnew添加一条记录rs(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(REM
32、OTE_ADDR)IP 地址rs(PostDate)=now()留言提交时间rs(Subject)=Request.Form(subject)留言主题rs.Update更新数据库(4)数据删除(4)数据删除sub delfeedback()留言删除if delid=or isnull(delid)then要删除的记录 id 为空则给出提示response.write alert(操作失败,没有选择合适参数,请单击“确定”返回!);response.redirect admin_main.asp返回到留言管理界面response.endelseid 存在执行数据库中的删除操作,删除数据库中 id
33、 列的值在 delid 数组中的记录conn.Execute(delete*from note_comment where ID in(&delid&)删除成功,给出提示response.write alert(留言删除成功,请单击“确定”返回!);response.redirect admin_main.asp返回到留言管理界面response.endend ifend sub第五章 总结第五章 总结在本论文完成之际,本人由衷的感谢关怀、教诲、帮助、支持和鼓励本人完成学业的老师和朋友。在做这个留言板中,体会到 ASP 的简单实用,也感受到编程的乐趣。我十分仔细的学习了一遍,并编出了这个留言板
34、,虽然有很多不足之处,但我认为这是难免的。在以后编程的漫漫长路上,这种困难是不可避免的。但我相信,通过这次的毕业设计,对我以后的学习编程和整个编程都十分有益。技术只是一方面,更多的是学会了利用资源。“时间作为一种最宝贵的资源”,让我在这半个多月中体会颇深。虽然付出更多的时间和精力,但想到自己的前途,我又信心百倍的做了起来。在设计的过程中出现了很多问题及错误。但是指导老师不厌其烦的教导及指正,谢谢老师孜孜不倦的教导,以及对我们的重视,让我能顺利地完成这个毕业设计。在这个设计过程之后,除了感谢还是感谢,让您为了此次的设计花费了不少的心思,也花费了您不少的时间。感谢您陪我们走过了这段美好的大学时光。也非常感谢同组的同学的互相帮助,谢谢你们的帮助。正因为你们的帮助我才能得以顺利的完成本次设计。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100