玩友交流网站的设计与实现

玩友交流网站的设计与实现[java毕业论文下载]

玩友交流网站的设计与实现

摘  要

随着互联网技术的迅猛发展,网络给人们带来了很多便利,比如人们借助于网络进行相互交流变得更加方便。如今,信息经济时代已经来临而且发展势头更加迅猛,这是一个大的趋势。Internet时代,造就了我们新的工作和生活方式,其互联性、开放性和共享信息的模式,打破了传统信息传播方式的重重壁垒。

利用ASP实现个人网站,可以为游戏中的玩家们提供一个相互交流的平台。玩家不仅可以通过发表文章的方式来发表自己的见解,而且相互之间的资料均可以进行查找,联系起来也非常的方便。该网站的开发使用了ASP语言和Access数据库。它实现了通过结构化查询语言连接后台数据库来实现用户注册,添加,查找和删除等功能。在设计中还使用了设置验证码和管理员权限的方法,有效提高了网站的安全性。

 

关键词B/S;玩友交流;个人网站

 

Design and Implementation of Player Forum by using ASP

Abstract

With the fast development of the Internet techniques, it has brought people a lot of convenience. For example, the communication among people becomes more convenient through the Internet. Nowadays, the times of information economy has come and developed quickly. This is the main trend of the society. The times of the Internet has created new ways for our jobs and livings. Its characteristics of connection, opening and information-sharing mode have improved the efficiency of information transmission.

 Design and implementation of personal website by using ASP language can provide a communication platform for the players who are playing computer games. Players can not only announce their ideas by sending message, but can also search for each others' personal information. So they can contact with each other easily. The development of such website uses the ASP language and Access database. It implements these functions, such as registration, addition, search and deletion through operating database by SQL language. And also set the valid code and authority of the administrators to improve the security of this system.

 

Key words: B/S; Player Communication; Personal Website

 

目  录

论文总页数:18页

1引言 1

1.1 课题背景 1

1.2 选题意义 1

2基础理论 1

2.1 开发环境 1

2.2 技术简介 1

3设计方案 3

3.1框架结构 3

3.2 模块功能 4

3.3错误处理 5

4 设计与实现 5

4.1 典型模块流程图 5

4.2 数据表设计 7

4.3 典型算法 8

5 测试与调试 12

   15

参考文献 16

  17

   18

 

 

1引言

1.1 课题背景

随着互联网技术的迅猛发展,网络给人们带来了很多便利,比如人们借助于网络进行相互交流变得更加方便。人类已进入21世纪,科学技术突飞猛进。人类社会前进的脚步在逐渐加快,每一天都有新的事情发生,每一天都在创造着奇迹。随着互联网技术的迅猛发展,网络给人们带来了很多便利,比如人们借助于网络进行相互交流变得更加方便。经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速发展和广泛应用。对社会的政治,经济,军事,文化等领域产生越来越深刻的影响,也正在改变人们的工作,生活学习,交流方式。人们的娱乐方式也又由以前传统的方式逐渐转移到互联网上,通过网络认识到更多更广的朋友。

1.2 选题意义

Internet时代,造就了我们新的工作和生活方式,其互联性、开放性和共享信息的模式,打破了传统信息传播方式的重重壁垒,为我们带来了新的机遇。随着计算机和信息时代的到来,人类社会前进的脚步在逐渐加快,每一天都有新的事情发生,每一天都在创造着奇迹。随着互联网技术的迅猛发展,网络给人们带来了很多便利,比如人们借助于网络进行相互交流变得更加方便。如今,信息经济时代已经来临而且发展势头更加迅猛,这是一个大的趋势。比尔·盖茨曾经说过,“二十一世纪要么做电子商务,要么就无商可务”。在这个趋势下,会出现很多电子商务站,而且更离不开后台的管理。因此,学会网站的开发变的犹为重要。毕业设计的目的主要是为了检查使学生综合运用以前所学知识,主要是为了锻炼自己的网站开发能力和维护能力。首先从简单的个人网站做起,今后再在此基础上不段的发展和完善,通过日后更多的学习最终实现开发出大型电子商务网站的能力。在为玩友提供交流平台同时还能够作为个人博客来使用,发挥它的功能,做到学以致用。

2基础理论

2.1 开发环境

WinXp SP2、 IIS6.0、 IE6.0、Dreamweaver、Fireworks、Access

2.2 技术简介

本设计采用的是B/S模式, 用ASP语言和Access数据库进行开发。这里先对相关的技术做个简介。

(一)B/S模式简介:b/s 是 brower/server 就是用浏览器(如IE)为应用程序客户端操作服务器。这样用浏览器来操作简单易用,但是对输入没有很好的验证。逻辑实现不多。本地只是用于获取数据然后大部分验证需要提交服务器来完成。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

(二)ASP技术简介: Microsoft Active Server Pages 即我们所称的ASP,其实是一套微软开发的服务器端脚本环境。Active Server Page 是创建动态网页的一个很好的工具,它起一种编程语言的作用,可以利用它编写动态产生HTML的程序代码。因此,只要用户浏览Web站点并请求一个ASP页,Web服务器就可以处理相应的ASP代码,生成HTML代码,然后将它传递到用户浏览器并显示出网页。 ASP之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的HTML格式,而且这些程序是在网络服务端中执行,使用一般的浏览器(如IE 或Netscape)都可以正确地获得ASP的“执行”结果,并且将这ASP执行的结果直接在浏览器中“浏览”,不像VBScript或 JavaScript是在客户端(client)的浏览器上执行,若使用VBScript来设计程序,客户端(client)在IE浏览器中可以显示程序执行的结果,可是,客户端(client)若使用Netscape浏览器就无法显示VBScript的执行结果。

ASP程序的优点:

1.ASP使用VBScript脚本语言直接源于VB语言,秉承了VB简单易学的特点,掌管起来非常容易。

2.无须编译,容易编写,可在服务器端直接执行。

3.利用ADO组件轻松存取数据库。

4.与浏览器无关,客户端只要使用可执行HTML码的浏览器,即可浏览ASP所设计的网页内容。

5.ASP能与任何ActiveX scripting语言相容。除了可使用VBScript或JavaScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言。

6.ASP技术的处理速度相当快,并且其安全性也很高,ASP的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。

7.ASP的对象和组件:ASP有7个固有对象这7个固有对象分别是Request, Response, Server, Application, Session, ASP Error和ObjectContext.

(三)Access简介: Access就是关系数据库开发工具,数据库能汇集各种信息以供查询,存储和检索。那么什么叫数据库呢?数据库(Database)是由一些有意义和有关系的数据(data)所组合而成。一个数据库中,包含了许多条记录(Record),而每条记录是由多个字段(Field)所组成,不同的字段存放这不同的数据。所以数据库的严格定义是一组相关记录的集合,而字段则是最基本的数据项,也是数据库中最小的单位。在计算机中用来帮我们管理数据库的系统,我们称之为数据库管理管理系统(Database Management System DBMS)。数据库管理系统是架构在一个或多个数据库之上,并针对数据库中的数据进行管理运用。

Access 的优点: 它能使用数据表示图或自定义窗体收集信息,数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。

3设计方案

3.1框架结构

 本着方便实用、安全可靠的原则,我们按功能划分为11个模块:登入/登出模块、用户注册模块、用户管理模块、日历模块、用户搜索模块、站内搜索模块、火速链接模块、留言版模块、文章显示模块、文章管理模块以及网站简介模块。各模块之间是平行的,根据需要的不同嵌入在首页的主要区域中。用户不管怎样操作,首页的框架图是不会变的,变动的只是中间嵌入功能模块部分。

 

 

 

图3-1 首页结构图

3.2 模块功能

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

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

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

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

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

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

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

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

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

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

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

3.3错误处理

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

设计与实现

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

1.3 典型模块流程图

(1)用户登录过程的详细流程:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图4-1  登陆流程图

(2)发表文章的流程:

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

 

 

 

 

 

 

 

 

 

图4-2  发表文章流程图

 

(3)管理员管理流程:

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

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

 

 

 

 

 

 

 

 

 

图4-3  管理流程图

1.4 数据表设计

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

 

 

图4-4 文章表

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

 

 

图4-5  留言表

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

 

图4-6 用户表

1.5 典型算法

(1)数据库连接:

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

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

dim rank

Randomize

rank=Cstr(int(rnd*8999)+1000)

response.cookies("rank")=rank

Response.Write(rank)

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

典型代码如下:

              dim err

err=0

sub ckqq(obj)

  if not isnumeric(obj.value) then

    msgbox("QQ号会不是数字的吗?")

obj.value=""

  end if

end sub

sub ckuname(obj)

  dim lenth

  lenth=len(obj.value)

  if lenth>12 or lenth<3 then

  msgbox("用户名长度不对!")

  end if

end sub

sub ckpassword(obj)

  dim lenth

  lenth=len(obj.value)

  if lenth>12 or lenth<6 then

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

  end if

end sub

sub ckpwd(obj)

  dim lenth

  lenth=len(obj.value)

  if lenth>12 or lenth<6 then

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

  end if

end sub

sub ckreg()

  if err=0 then

    megbox("ok")

  else

    return false

  end if

end sub

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

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

if title=""  then

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

end if    text=replace(replace(replace(Trim(Request.Form("text")),chr(10),"<br>"),"'","''"),"<","<")

   if text=""  then     

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

   end if   

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

 times=now()

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

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

(5)文章显示:文章在文章列表中的排列。

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

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

Rs.ActiveConnection = MM_conn_STRING

Rs.Source = "SELECT * FROM t1 WHERE tid = " + Replace(Rs__MMColParam, "'", "''") + " ORDER BY tdatetime DESC"

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

If (Request.Form("nick") <> "")  Then

r2__MMColParam = Request.Form("nick")

End If

r2.ActiveConnection = MM_conn_STRING

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

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

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

  if title="" then

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

  end if  

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

  if len(text)>200 then

     Response.Redirect "err.asp?txt=留言内容超过200个字了"

  end if

  text=replace(replace(text,"'","''"),"<","<")

  text=replace(text,chr(10),"<br>")

    if text="" then

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

    end if  

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

  uname=replace(replace(uname,"'","''"),"<","<")

  if uname="" then

     Response.Redirect "err.asp?txt=留言者不能为空"

  end if    

  times=now()

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

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

测试与调试

本设计中网站采用统一界面风格,使用Fireworks制作完成,主色彩调采用蓝、黑、白、灰搭配。页面能适应 800×600和 1024×768 两种分辨率。

每个页面由三个大的部分组成――顶部区域、主要区域、尾部区域。主要区域嵌入了顶部区域、尾部区域。

主要区域根据其功能的需要略有不同,但都包含了:登录/登出模块、日历模块、站内搜索模块、火速链接模块等。

(1)登陆界面如图5-1:

 

 

图5-1 登陆界面

 这里要求输入用户名和密码,以及验证码。如果输入完全正确则登录成功,登陆成功后显示用户的权限,并且可以继续修改资料和密码,要退出则点击“退出登录”就安全登出。

如图5-2所示:

 

 

图5-2 登陆成功界面

(2)日历模块:该模块上面的日历是及时更新的(如图5-3),同时在顶部区域的最左端显示当前时间和星期几(如图5-4),给用户带来了一定的方便。  

              

玩友交流网站的设计与实现[点击下载]

如需要全部源码,联系QQ:2812491287如需要全部源码,联系QQ:2812491287

评论