论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

玩友交流网站(论文+程序)

3.2 模块功能

(1)登入/登出模块:系统有两种用户:普通用户及管理员用户,管理员用户是直接设定的,是不能通过注册得到的,而普通用户则是可以通过提交注册表单注册的。用户登录时不需要选择以普通用户或管理员的方式登录,登录处理页面logoin.asp会根据用户名自动获取该用户的权限,并以此为依据来提供用户的操作权限及显示界面。用户登录时用到的数据项为uname 、pass 、flag。其中uname 为用户名,pass 为密码,flag为用户权限。

paper51.com

(2)用户注册模块:用户在没有登录的情况下,通过点击注册按钮,阅读并同意相关条款,填写相关资料,并设置了填写资料要遵循的相关规则。提交注册后,如果没有错误产生,则注册成功。否则,注册失败,并转到错误处理程序err.asp。

内容来自www.paper51.com

(3)用户管理模块:无论普通用户还是管理员,他们登录后都可以修改自己的基本资料和密码。修改资料和密码,也要遵循注册时的填写规则。不论是管理员还是普通用户,均无法自己修改自己权限。

paper51.com

(4)用户搜索模块:提供用户的相关信息,用于相互之间了解。此处包含有查询功能,可以根据用户昵称来搜索该用户所有资料。该模块只针对注册用户开放,查询前必须先登录。 http://www.paper51.com

(5)日历模块:这里引用现成的代码,提供一个即时更新显示日历的版面。由于日历不能显示时间,所以在首页的顶部区域嵌入一个按12小时制的时间显示模块。

paper51.com

(6)站内搜索模块:此模块暂未开发,留待日后扩充。这里把它先放出来是出于让界面更美观的需要。

paper51.com

(7)火速链接模块:这是一个静态模块,为玩友提供相关的网站链接。目前连接的是17173游戏网站和QQ幻想官方网站,这两个对与本站的玩友群来说访问率最高。若有玩友有自己的网站,也可在此处做个友情链接。 paper51.com

(8)留言模块:留言板是一个开放的模块,任何人都可以使用,目的是让更多的人能够参与进来留言,发表他们的看法,提出他们的建议和意见,利于网站的发展。 内容来自论文无忧网 www.paper51.com

(9)文章管理模块:此模块将文章的标题按第页10条记录分页显示给用户,并区分用户权限以显示不同的操作界面。在管理员界面中,可以实施修改文章和删除文章的操作。在进行这些操作以前,系统会实事判断用户的登录状态和操作权限。如果登录超时或是用户越权操作,系统将会报错,并提交错误信息给err.asp页面处理。 paper51.com

(10)文章显示模块:用户和管理员都可以通过文章显示列表的链接进入到文章显示界面。文章显示界面主要显示文章标题、文章作者、发表时间、和文章内容。文章标题的显示按发表时间的先后降序排列。 内容来自www.paper51.com

(11)简介模块:这部分相对来说是一个静态的页面,对本玩友交流网站的简单介绍。在此处说明本站的用户群和作用,这样可以更有针对性的把兴趣相投的新朋友吸引进来。本站主要是用于游戏中玩友之间的交流,相当于是在玩友们QQ群思想上的一个采用,把QQ群不具备的功能在这里体现了出来,还可以根据需要不段的完善功能。从另一个方面说,这个简介模块中的内容,可以换成游戏中公会的公告,有重要通知也可放在上面。 内容来自www.paper51.com

3.3错误处理

内容来自论文无忧网 www.paper51.com

设计系统时,考虑了一些容易出错的地方,比如用户不经意的输入的不合适的内容,或是别有用心的人故意输入的带有尝试攻击的内容。在设计这个系统时,对已知会出错的内容采取过滤、丢弃、出错提示、要求重填等手段加以预防,在各个会出错的地方将出错信息提交给err.asp程序处理。当遇到出错信息,系统报错都会转入到err.asp页面,在此页面中提示出错内容以及解决方法,并能按需求跳转到前一页或者是网站首页。

paper51.com

4        设计与实现

内容来自www.paper51.com

这里只列出一些典型设计的流程(如登陆系统流程,发表文章流程,管理流程)以及重要数据表(如用户表,文章表和留言表)的设计。 http://www.paper51.com

4.1     典型模块流程图

内容来自www.paper51.com

(1)用户登录过程的详细流程: copyright paper51.com

用户登陆时候,首先检查所输入的用户名和密码是否为空,若为空则报错,不为空则与数据库中用户表中的用户资料进行验证。验证结果与数据库中的用户不匹配,则说明用户名或密码错误,系统报错;若验证通过则登录成功,并将用户登陆状态信息保存到客户端Cookies。

paper51.com

内容来自论文无忧网 www.paper51.com

图4-1  登陆流程图 内容来自论文无忧网 www.paper51.com

(2)发表文章的流程:

内容来自www.paper51.com

用户在发表文章之前,首先要判断其是否登录,若没有登录,则系统报错并要求用户登录;若已经登录,用户便可以写文章。由于写文章的时间长短不一定,很有可能在用户写完文章的时候登录已经超时了。若超时系统会报错,则要求用户重新登录;若在有效登录状态,则文章发表成功并返回文章列表。

http://www.paper51.com

paper51.com

图4-2  发表文章流程图 内容来自www.paper51.com

(3)管理员管理流程:

http://www.paper51.com

管理员的身份是由用户表中每个用户的flag值确定的,0为普通用户,1为管理员。因此,在用户登录的时候,系统就已经确定了你是否具有管理员权限,用户不用再去选择什么样的登录方式。

内容来自论文无忧网 www.paper51.com

当管理员进行管理的时候,首先会检查是否登录或者登录超时。若没有登录或已经登录超时,系统会提示错处信息。若登录状态有效,管理就可以对用户发的文章或者留言进行一些管理操作。操作结束后,系统保存并返回。 http://www.paper51.com

内容来自论文无忧网 www.paper51.com

图4-3  管理流程图 http://www.paper51.com

4.2     数据表设计 paper51.com

图4-4为文章表,该表中定义了用户在发表文章时候文章的数据类型。以ID号为区别,ID是自增的。tid是文章的ID号,title是文章题目,txt是文章的内容,datatime是文章的发表时间(12小时制),tuname是发表者的用户名(不是呢称)。

http://www.paper51.com

内容来自www.paper51.com

图4-4 文章表

copyright paper51.com

图4-5是留言表,该表中定义了留言者发留言时所填资料的各种数据类型。由于这里是开放的模块不需要注册登陆过程,所以就简单一点。id是留言的序号,它是自增的。title是留言标题,connect是留言的正文,ldatatime是留言的时间(12小时制),name为留言者的姓名,这里不需要注册。 内容来自www.paper51.com

内容来自www.paper51.com

图4-5 留言表

内容来自www.paper51.com

图4-6是用户表,该表中定义了用户注册时所填个人资料的数据类型。这里表中没有显示出uid,因为一旦注册,会自动添加一个uid来做为用户的区别。Nick是用户的昵称,uname是用户名,sex是用户性别,pass是用户密码,flag是权限标志(0为普通用户,1为管理员,用户不能填写此项),qq是用户的QQ号码,tel是联系电话,email是用户的E-mail地址。 paper51.com

paper51.com

图4-6 用户表 paper51.com

4.3     典型算法 copyright paper51.com

(1)数据库连接: http://www.paper51.com

MM_conn_STRING = "Driver={Microsoft  Access  Driver(*.mdb)};DBQ=C:\Inetpub\wwwroot\database\asp.mdb;"

内容来自www.paper51.com

(2)验证码:为了加大暴力破解的难度,在登陆时设置了随机验证码。典型程序代码如下:

paper51.com

dim rank

内容来自www.paper51.com

Randomize http://www.paper51.com

rank=Cstr(int(rnd*8999)+1000) 内容来自www.paper51.com

response.cookies("rank")=rank

内容来自论文无忧网 www.paper51.com

Response.Write(rank) 内容来自论文无忧网 www.paper51.com

(3)用户注册:用户注册分为两大步骤,先要阅读注册须知,上面的各项条款要全部同意后才能进入资料填写页面。用户注册需要填写用户名,密码,确认密码,昵称,电子邮件,联系电话。其中用户名由a~z的英文字母、0~9的数字组成,长度为3~12个字符。密码长度为6~12位,区分字母大小写。昵称长度为4~12位。QQ只能是数字。在注册模块中,设定了一些专门的函数来检查用户资料的填写是否规范,只有在全部正确的情况下才允许注册。 copyright paper51.com

典型代码如下: http://www.paper51.com

              dim err 内容来自论文无忧网 www.paper51.com

            err=0

内容来自www.paper51.com

            subckqq(obj)

paper51.com

              if not isnumeric(obj.value) then

copyright paper51.com

                msgbox("QQ号会不是数字的吗?") 内容来自论文无忧网 www.paper51.com

                obj.value="" 内容来自论文无忧网 www.paper51.com

              end if

内容来自论文无忧网 www.paper51.com

            endsub

内容来自www.paper51.com

            subckuname(obj) 内容来自www.paper51.com

              dim lenth 内容来自论文无忧网 www.paper51.com

              lenth=len(obj.value)

paper51.com

              if lenth>12 or lenth<3 then paper51.com

              msgbox("用户名长度不对!") copyright paper51.com

              end if

内容来自www.paper51.com

            endsub copyright paper51.com

            subckpassword(obj) 内容来自www.paper51.com

              dim lenth

内容来自论文无忧网 www.paper51.com

              lenth=len(obj.value) 内容来自论文无忧网 www.paper51.com

              if lenth>12 or lenth<6 then

http://www.paper51.com

              msgbox("密码长度不对!")

内容来自www.paper51.com

              end if 内容来自www.paper51.com

            endsub

内容来自论文无忧网 www.paper51.com

            subckpwd(obj)

内容来自www.paper51.com

              dim lenth

copyright paper51.com

              lenth=len(obj.value) 内容来自www.paper51.com

              if lenth>12 or lenth<6 then 内容来自www.paper51.com

              msgbox("密码长度不对!") 内容来自论文无忧网 www.paper51.com

              end if

内容来自www.paper51.com

            endsub http://www.paper51.com

            subckreg() paper51.com

              if err=0 then 内容来自论文无忧网 www.paper51.com

                megbox("ok") 内容来自www.paper51.com

              else paper51.com

                return false 内容来自www.paper51.com

              end if 内容来自论文无忧网 www.paper51.com

            endsub http://www.paper51.com

(4)文章添加:新发表文章的添加算法。

内容来自www.paper51.com

title=replace(replace(Trim(Request.Form("title")),"'","''"),"<","&lt;") http://www.paper51.com

if title=""  then 内容来自论文无忧网 www.paper51.com

  Response  Redirect  "err.asp? txt=标题不能为空"

内容来自论文无忧网 www.paper51.com

end if   text=replace(replace(replace(Trim(Request.Form("text")),chr(10),"<br>"),"'","''"),"<","&lt;") copyright paper51.com

   if text=""  then    

内容来自www.paper51.com

Response Redirect  "err.asp?txt=内容不能为空"

paper51.com

   end if  

copyright paper51.com

 uname=Trim(Request.Cookies("login")("user"))

内容来自www.paper51.com

 times=now()

paper51.com

MM_dbValues="'"&title&"','"&text&"','"&uname&"','"&times&"'" paper51.com

MM_editQuery = "insertinto t1 (title,txt,tuname,tdatetime) values ("& MM_dbValues&")"

copyright paper51.com

(5)文章显示:文章在文章列表中的排列。 http://www.paper51.com

用户和管理员都可以通过文章显示列表的链接进入到文章显示界面。文章显示界面主要显示文章标题、文章作者、发表时间、和文章内容。这里文章的顺序是按照发贴时间进行降序排列。典型代码如下: copyright paper51.com

Set Rs =Server.CreateObject("ADODB.Recordset")

http://www.paper51.com

Rs.ActiveConnection= MM_conn_STRING http://www.paper51.com

Rs.Source ="SELECT * FROM t1 WHERE tid = " + Replace(Rs__MMColParam,"'", "''") + " ORDER BY tdatetime DESC" 内容来自论文无忧网 www.paper51.com

(6)用户搜索 :根据用户昵称来搜索该用户所有个人资料。

内容来自论文无忧网 www.paper51.com

If (Request.Form("nick")<> "")  Then http://www.paper51.com

r2__MMColParam =Request.Form("nick") paper51.com

End If

内容来自论文无忧网 www.paper51.com

r2.ActiveConnection =MM_conn_STRING http://www.paper51.com

r2.Source = "SELECT *FROM users WHERE nick = '" + Replace(r2__MMColParam, "'","''") + "'"

http://www.paper51.com

(7)留言飞语 :留言板是一个开放的模块,任何人都可以使用,目的是让更多的人能够参与进来留言,发表他们的看法,提出他们的建议和意见,利于网站的发展。因此,这里不用考虑用户登录的问题。但是,这里与发帖不同的是留言最多只允许输入200个字符。

paper51.com

title=replace(replace(Trim(Request.Form("title")),"'","''"),"<","&lt;")

内容来自www.paper51.com

  if title="" then

http://www.paper51.com

     Response.Redirect"err.asp?txt=标题不能为空" http://www.paper51.com

  end if  内容来自论文无忧网 www.paper51.com

 text=Trim(Request.Form("text")) paper51.com

  if len(text)>200 then

copyright paper51.com

     Response.Redirect"err.asp?txt=留言内容超过200个字了" 内容来自www.paper51.com

  end if paper51.com

 text=replace(replace(text,"'","''"),"<","&lt;")

copyright paper51.com

 text=replace(text,chr(10),"<br>") 内容来自论文无忧网 www.paper51.com

    if text="" then

copyright paper51.com

     Response.Redirect"err.asp?txt=内容不能为空"

paper51.com

    end if  内容来自论文无忧网 www.paper51.com

  uname=Trim(Request.Form("name"))

内容来自www.paper51.com

 uname=replace(replace(uname,"'","''"),"<","&lt;")

内容来自www.paper51.com

  if uname="" then

paper51.com

     Response.Redirect"err.asp?txt=留言者不能为空" 内容来自论文无忧网 www.paper51.com

  end if    内容来自www.paper51.com

  times=now() paper51.com

 MM_dbValues="'"&title&"','"&text&"','"&uname&"','"&times&"'"

paper51.com

MM_editQuery ="insert into lyb (title,content,name,ldatetime) values ("&MM_dbValues &")"

copyright paper51.com

------分隔线----------------------------
联系方式