《之网上聊天室的构建大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《之网上聊天室的构建大学本科毕业论文.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录摘要Abstract.1.引言12 技术简介12.1 ASP技术12.2 数据库技术23 需求分析33.1系统运行环境33.2 模块功能分析34 系统总体设计44.1 系统总体规划44.2系统总体结构44.3 系统数据库设计55 系统功能具体实现75.1 数据库连接的实现75.2 用户注册登陆模块85.3 用户密码修改105.4 用户发言125.5 聊天内容显示145.6 在线用户列表显示175.7 管理功能185.8 辅助功能区19结 论21致 谢21参考文献22基于ASP的网络聊天室的设计与实现摘要:随着网络的逐渐普及,以及网络技术的不段发展,人们通过网络进行交流的方式变得多样化。网
2、络聊天室便是其中之一。聊天室系统的即时交流方式满足了网络中多人同时聊天交流的需要,使得较多的人在同一个聊天页面进行交流变得方便,简单。本设计所完成的网络聊天室具有常用聊天室的所有功能,包括多人同时在线聊天、两人间的私密聊天、在发言的时候能够发送表情及图片,还能显示在线用户列表,同时,为了管理聊天室中的用户,设计了用户注册登陆功能,用户管理功能以及用户留言功能。并且,加入了分屏、清屏、屏蔽的辅助功能,增加了聊天室的操作性。本文首先介绍了聊天室系统所使用到的一些关键技术,接着介绍了该系统的设计思路和需求分析,然后是对系统的详细介绍,包括系统中创建的数据库以及系统的具体功能介绍。关键词:聊天室;B/
3、S模式;私聊;留言Abstract:With the popularization of the network and development of the network technology, the way which people communicate through a network becomes diversified. The network chat room is one of them. The instant communication of the chat room system has met the need that many people chat a
4、t the same time, and people can converse in an easy way on one page.The network chat room in this project has all the functions of the common chat room. People can chat with each other at the same time, chat with one people privately and send expressions and pictures when users chat. And show the on
5、line users list. In order to manage the users of the chat room, this system have designed the function of registration, management and leaving word. This system has the assistant functions such as multi-screen, clean-screen and shielding. These functions improve the operability of the chat room . Th
6、is paper first introduce the key technology of this chat room system, then introduce the main idea and the requirements analysis, the next is the introduction of the system in detail, including the database and specific operations.Key words: the chat room; B/S mode; private chat; leave word1.引言随着网络的
7、逐渐普及,以及网络技术的不段发展,人们通过网络进行交流的方式变得多样化。网络聊天室便是其中之一。在网站建设迅速发展的今天,基于B/S模式的ASP网络聊天室已经成为较多网民认可的一种聊天交流平台,各种专家座谈、在线答疑室,实质就是聊天室。聊天室系统的即时交流方式满足了网络中多人同时聊天交流的需要,使得较多的人在同一个聊天页面进行交流变得方便,简单。本聊天室的开发目的就是为人们在网络中提供一个即时的网页交流平台,通过这个平台,人们可以随意发言和观看大家发言的内容。其中的一大特点就是聊天室中的用户可以选择发言的对象,进行一对一的私聊,别人是无法看到两人间对话的内容的。本系统开发采用B/S(浏览器/服
8、务器)结构,参考网络中正在使用的大型聊天室的架构、分析聊天室可实现功能,结合本次设计的相关要求,进行开发设计并写出需求分析说明书。具体开发环境:使用windows2003作为服务器运行平台,同时搭建系统运行平台IIS、DNS域名服务器;以ASP语言作为开发语言,主要研究HTML、JAVA SCRIPT、VB SCRIPT以及SQL数据库语言;后台数据库使用SQL SERVER或系统自带的ACCESS数据库;开发工具包括DREAMAVER、PHOTOSHOP、IE、SQL SERVER等。2 技术简介2.1 ASP技术ASP技术是一种类似HTML(Hypertext Markup Languag
9、e超文本标识语言)、Script与CGI(Common Gateway Interface通用网关接口)的结合体,简单的讲它是一种运行于服务器的脚本语言,但是其运行效率比CGI更高、程序编制也比HTML更方便且更有灵活性,程序安全性及保密性也远比Script好。其特点归纳如下:1. ASP可以和HTML或其他脚本语言(VB Script与Java Script)互相嵌套。2. ASP是一种在Web服务器端运行的脚本语言,因此,程序代码完全保密。3. ASP以对象为基础,因此可以使用ActiveX控件继续扩充其功能。4. ASP内置ADO组件,因此可以轻松地存取各种数据库,大大缩短了程序开发时间
10、。5. ASP可以将运行结果以HTML的格式传送至客户端浏览器,因此ASP可以适用于各种浏览器。2.2 数据库技术从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。至60年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型”。目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只
11、是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。要领模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这一其中著名的模型是“实体联系模型”。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型”。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。3 需求分析本系统采用B/S模式设计,开发目的主要是在网络中提供一个安全的供多人休闲聊天交流的平台,同时借
12、助开发此系统提高自己的独自设计能力。3.1系统运行环境系统可以在Windows 2000 ServicePack 4.0 以上操作系统,搭建IIS系统运行平台,使用DREAMWEAVER和Frontpage作为开发工具开发的,数据库使用ACCESS 2003和sql server 2008。我选的环境是Windows xp的操作系统,IIS运行平台,使用DREAMWEAVER作为开发工具开发的,数据库使用ACCESS 2003。3.2 模块功能分析(1)用户注册登陆模块完成新用户注册,将注册信息添加到数据库中,用于用户登陆验证;经过登陆验证的用户,方可进入聊天室进行聊天交流。(2)用户密码修改
13、模块当用户不小心忘记或记错了自己的注册密码时,可通过修改密码,重新设定登陆密码,其中要经过密码提示问题的验证,顺利通过才能修改密码。(3)用户发言模块除了提供发言内容的输入外,还应能显示当前用户正在对谁发言、可选择发言的颜色和发言的表情。发言的颜色和发言表情通过下拉式组合框实现。发言内容书写完毕后,通过单击“提交”按钮或按回车,实现聊天内容的显示。(4)聊天内容显示模块主要完成将每个用户的发言的内容显示在页面中,让这些内容对每个登陆用户均可见(除开私聊内容),同时还能及时显示各用户的发言内容,以便始终能显示出最新的发言内容。(5)在线用户列表显示模块该页面实现在线人数和在线用户的统计,并将在线
14、用户依次显示出来。每个显示用户应设置为一个超链接,当单击用户名时,实现将发言区中的发言对象设置为该用户。(6)辅助功能区模块提供诸如分屏、清屏、刷新、屏蔽、显示名单的操作功能。同时为用户提供了举报的流言功能。(7)管理模块系统管理员可以查看用户注册信息以及用户留言,并对其进行管理。4 系统总体设计4.1 系统总体规划聊天室系统的总体流程由用户登陆开始,通过验证后,用户便可进入聊天页面进行交流聊天,同时,系统会将新登陆用户的用户名添加进在线用户列表,即时更新。总体流程图如图4.1所示。用户登录统计在线人数、在用户列表和发言数组中添加新用户和公告信息。进入聊天主页面注册用户?是否开始退出图4.1
15、系统总体流程图4.2系统总体结构 根据聊天室的主要功能分析,本系统一共分为七大功能模块:用户注册登陆模块、发言功能模块、聊天内容显示功能模块、显示用户列表模块、辅助功能区模块、管理功能模块以及用户密码修改功能模块。其中辅助功能区包括用户举报模块以及分屏等操作功能,功能结构图如图3.1所示。聊天室系统用户注册登陆模块分屏功能用户密码修改模块用户发言模块聊天内容显示模块在线用户列表显示模块辅助功能区模块管理功能模块清屏功能屏蔽功能用户举报图4.2 功能结构图4.3 系统数据库设计4.3.1 数据库概念模型根据系统功能和和流程所需数据要求,可以确定数据库中数据项和数据结构,其E-R图如图4.3所示。
16、表baseuser表 投诉验证用户名密码问题答案性别emaillevesdatedatequestionIDUsername1username图4.3 数据库E-R图E-R(Eneity-Relationship Approach)图是最常用的概念模型表示方法,也是数据库的核心和基础,它是按用户的观点来对数据和信息建模的。4.3.2 数据库表的设计对于聊天室系统,所需的数据库表有baseuser和投诉两张表。Baseuser表用于存放注册用户的基本信息,其具体字段设计如表4.1所示。表4.1 baseuser表字段字段名数据类型长度是否允许为空说明Name文本16否用户注册名Password密
17、码50否用户登陆密码MD5值问题文本50否密码提示问题答案密码50否密码提示问题答案MD5值Email文本50否用户邮箱性别文本2否用户性别Leves文本10否用户权限Date时间10否注册时间投诉表用于存放用户在聊天过程中向管理员反应的举报信息,具体字段设计如表4.3所示。表4.3 投诉表字段字段名数据类型长度是否允许为空说明ID自动编号Username文本16否投诉人用户名Username1文本16否被投诉人用户名Qusetion文本50否投诉描述Date时间10否投诉时间5 系统功能具体实现聊天室的功能主要是实现用户的发言和观看大家发言的内容,发言界面和聊天内容需要显示在同一屏界面中,以
18、方便发言和观看,另外,通常还需要显示当前在线的人数和用户列表,以方便选择对谁发言。用户书写发言的界面、聊天内容的显示、用户列表的显示均需要通过单独的页面来实现,为了能在同一屏界面中同时显示多个页面的内容,此时需要利用带框架集的页面来实现。框架集是多个框架的集合,每一个框架可显示一个页面的内容,在同一屏中需要显示多少个页面,就需要创建一个具有多少个框架的框架集来实现,整个框架集最后存盘形成一个页面,以后浏览该页面时,各框架集中的内容就会自动显示出来。5.1 数据库连接的实现数据库连接操作是一个相当频繁的操作,在ASP的数据库编程中,connection对象是我们不可能离开的一个对象,该对象是AD
19、O对象模块中的一个专门打开和关闭数据库连接的对象,在对数据库进行任何的操作,比如更新记录,插入,删除,检索等,都必须以connection对象的建立为前提。形象地来说,connection对象就是程序与数据库沟通的管道,所有对数据库的操作,都必须经过它,因此,本系统首先建立一个connection对象的实例变量,然后才能在它的基础上建立Recordset对象实例来操作数据库。这里首先利用connection对象的属性ConnStr 设置数据库的连接方式,使用的是Access OLE DB驱动程序。使用server.createobject方法建立connection对象的实例变量conn,使用
20、connection对象的Open方法打开数据库连接,核心代码如下:connstr=DBQ=+server.mappath(userdata.mdb)+;DefaultDir=;DRIVER=Microsoft Access Driver (*.mdb);set conn=server.createobject(ADODB.CONNECTION)conn.open connstr其中,还使用了server对象的Server.MapPath(Path)方法,作用是将(path)指定的虚拟路径转换为实际路径,大大提高了本系统的移植性。5.2 用户注册登陆模块5.2.1 用户注册在聊天室首页,单击“
21、用户注册”,便可进入用户注册页面,如图5.1所示图5.1 用户注册页面用户进入注册页面后,根据要求,填写表单中各项数据,单击确定后,系统通过表单传递的“POST”方法,将输入的内容传递给后台处理页面usersave.asp进行写入数据库处理。其中,在进行表单传递的时候,系统还调用了check()函数对填入表单的数据进行检验,一旦发现表单中有一个数据项不符合要求,系统便会弹出出错信息,提示用户重新填写。在后台处理页面中,系统先定义对应于表单各数据项的变量,利用ASP内置的Request对象,将用户填入表单的数据赋给这些变量,在存入数据库的时候直接将变量值添入数据库即可。对从表单得到的“密码”、“
22、密码提示答案”的关键数据,在存入数据库的时候,系统还调用了MD5()函数(MD5加密程序),对数据进行加密处理,这样,存入数据库中的“密码”、“密码提示答案”字段的值将以密文形式存放,提高了用户信息的安全性。当表单数据通过审核并对需要加密的数据进行加密后,后台处理页面便创建一个Recordset对象实例来访问数据库的用户信息表,实现代码为set rs=server.createobject(adodb.recordset)使用Recordset对象的BOF和EOF属性来查看此用户名是否已被注册,如果用户名已被注册,则以Response对象的Redirect方法提示用户重新注册,保证了用户名的唯
23、一性。若条件为假,则将表单数据同加密数据写入用户注册表中,完成注册,实现代码为sql=select * from user where 用户名=&name&rs.Open sql,conn,1,3if not rs.eof or not rs.bof thenresponse.write 该用户名已被注册,请重新注册其他用户名!else rs.addnew页面提示注册成功后,用户便可从聊天室首页进行登陆,进入聊天室。5.2.2 用户登录用户在聊天室登录界面填入正确的注册信息,单击登录,系统将自动把用户填入的“帐号”、“密码”于数据库中存放的用户注册信息进行比对验证。系统进行用户身份验证时,首先
24、利用Request对象,将用户填入的“帐号”(即用户名)、“密码”传递给预先定义的变量,再使用Select语句,将变量值与用户信息表进行比对sql=select * from user where password=&password& and name=&username&其中,由于系统在添加用户信息进入数据库表的时候,对“密码“字段进行了MD5加密处理,存放在数据库中的密码是经过加密后的MD5值,因此,在验证用户密码是否符合时,系统把用户输入的密码计算成MD5值,再与存放在系统中的密码MD5值进行比较,在整个过程中,系统都不知道用户的密码具体时多少。这里,同样使用了recordset对象的
25、BOF和EOF属性来查看是否有该用户的注册信息,判断语句与注册中的判断语句相同,不同的是判断结果若为真,说明该用户为聊天室注册的合法用户,这时,以Response对象的Redirect方法跳转到聊天主页面,Response对象的Redirect方法是实现页面的跳转,使当前页面跳转到指定的页面。在用户登录进聊天主页面的同时,系统将通过验证的用户名以及用户信息表中对应用户名的“leves”值传递给特别定义的session对象session(“user”)以及session(“leves”)。session(user)=usernamesession(leves)=rs(leves)Session对
26、象的用途是记录浏览器端专用的变量,将用户名和该用户对应的权限存放在session对象中,便可在后面的聊天页面和在线用户列表页面直接读取浏览器端的变量值,显示出用户名和用户权限所具有的功能,本系统中,主要是管理员的管理功能。经过上述的用户验证和数据传递,系统跳转到聊天页面,此时用户便可在聊天主页面进行聊天交流了。5.3 用户密码修改当聊天室注册用户不小心忘记了注册密码或者把密码记错,用户将无法再次进入聊天室,也就无法与聊得来的朋友继续聊天。针对这种情况,系统设置了用户密码修改功能,以便系统中合法的注册用户在忘记密码后,能重新设置新密码来登录系统,以避免用户无法登录。在聊天室首页,单击“忘记密码”
27、,进入用户密码修改页面,如图5.2所示图5.2 密码修改页面在修改密码的第一个页面中(findpass.asp),系统要求用户填入需要修改密码的用户名,单击“确定“,系统通过表单的post方法,将输入的用户名传递给下一个页面passque.asp,系统在转到该页面的同时,会对用户输入的用户名进行验证,看是否是聊天室的合法注册用户,验证方法与用户登录的验证方法相同。验证通过后,打开passque.asp页面,在该页面中,修改密码的用户需要根据页面中显示的密码提示问题,填入正确的密码提示问题答案,即在注册时用户所填写的密码提示问题答案。设计这个页面,是为了更谨慎地验证用户的身份,以避免别人冒名修改
28、密码,致使正常用户无法登录。在passque.asp页面中,系统利用request对象把findpass.asp页面传递的用户名存在name变量中,接着查询用户信息表符合用户名等于name的记录,将该记录所对应的“问题“用response.write方法显示在页面中name=Request(name)set rs = server.createobject(adodb.recordset)sql=select * from user where 用户名=&name&用户根据页面显示的密码提示问题填入相应的答案,单击“确定”,将表单内容传递给pass.asp页面。在页面后台,系统会首先将得到的答
29、案与问题在系统数据库中进行查询,只有在问题和答案在一条记录中同时匹配的时候,页面的内容才会显示,否则,系统提示出错,返回上一页面。这里由于数据库中存放的“答案”项是其MD5值,所以在进行密码提示问题答案对比的时候,同样是比较该数据的MD5值sql=select * from user where 用户名= & name & and 答案= & answer & rs.open sql,conn,1,3if rs.eof and rs.bof then%alert (密码提示答案错误,请返回验证!)location.href = javascript:history.back()在系统经过用户名
30、、密码提示问题及密码提示问题答案的双重身份验证后,用户便可进入密码修改页面。在页面中,用户需要填写新的登录密码来替换原来丢失的密码。在进行用户密码替换时,使用数据库的update语句来修改数据库中的密码字段。系统首先创建一个Connection对象实例连接数据库,以便对数据库的数据进行修改。在打开Connection对象实例后,利用该对象的execute方法执行update语句,完成对数据库数据的修改。updatesql=update user set 密码=&newpwd&set rs=server.createobject(ADODB.Connection)rs.open rs.execu
31、te updatesql5.4 用户发言进入聊天主页面后,用户便可在主页面下方的发言界面设计书写自己想要说的话,以及想对谁说,同时,系统还提供了发言字体颜色选择、插入表情、图片的功能,如图5.3所示,让用户的聊天更有趣味。图5.3 用户发言界面用户发言界面采用ASP表单模式设计,在表单中,用户根据发言对象、发言内容、以及发言颜色填写发言数据,填写完成后,单击“提交”或按回车键,将发言内容转入后台处理。在处理发言数据的时候,为了避免用户发言为空以及发言内容与上次发言内容重复的情况发生,系统定义了一个send()函数,用来检验用户的发言。在send()函数中,系统定义了msg和post_msg 2
32、个变量,用来存放本次发言内容和上次发言内容,在调用函数的执行过程中使用if语句判断上述2中情况是否发生,如果出现发言为空或内容重复,系统便弹出错误提示信息:“请输入发言或动作”;“请不要重复发言”。if (msg=)alert(请输入发言或动作!);document.af.msg.focus();return falseif (msg=post_msg)alert(请不要重复发言!);document.af.msg.focus();return false在发言界面中的字体颜色、动作、表情、图片均采用下拉式列表框的方式供用户选择,其中,各列表框的name属性为sayscolor、addsing
33、、addsays、tu,以便在获得用户发言时根据这些列表框的name取得相应的value值,显示出来。用户发言的具体流程图如图5.4所示用户发言提交发言显示发言内容显示提示信息,中止表单提交发言内容是否为空是否与上次内容相同是是否否开始结束图5.4 用户发言流程图5.5 聊天内容显示整个聊天主页面中,占有面积最大的便是聊天内容显示区。如图5.5所示。在这个区域,分了上下2个空间,上面的用来显示聊天室的所有发言内容,下面用来显示与当前使用聊天室的用户相关的内容,如系统提示信息、用户自己的发言以及其他用户发来的密语。这个区域可以通过后面介绍的分屏操作实现一个显示区和两个显示区的切换。图5.5 聊天
34、内容显示区聊天内容显示区可以显示最近50条发言,为了保存最近的50条发言内容,系统定义一个具有50成员的一维数组sd_init;为了对应保存每条发言是谁对谁发的,需定义一个towho(50,2)的二维数组,为了直观,使用时数组下标均从1开始。由于数组和变量的作用域仅限于当前页面,为了实现跨页传递数据和对所有登录用户均有效,使得所有用户都能看到聊天室里的发言内容,为此,需要将数组和所用到的相关变量的值赋给对应的一组Application对象来保存。Application对象的用法与Session对象基本相同,利用Application对象所创建的变量,可以在整个应用中被所有用户共享和访问。一个用
35、户修改或设置了改类变量的值后,对于其他所有用户,也是可见的。从而可见,利用Application对象所创建的变量,具有最大的作用域,有时也称为Application(应用程序)级变量。聊天内容显示的具体流程图如图5.6所示。获取在线用户列表数从表单中获得用户在对谁发言从表单中获得发言内容获得提交表单的其他数据获得发言内容,实现聊天内容的输出否否是是发言者在用户列表中?发言对象在列表中?发言内容不为空?否是开始结束图5.6 发言内容显示流程图在聊天显示页面,由于每个用户的发言内容均不相同,每个用户的发言对象也不相同,那么,系统在显示聊天内容的时候就要求显示页面会自动根据用户的不同而显示不同的聊天
36、内容。具体来说,就是只显示与当前使用者有关的聊天内容,如自己的发言内容、发给自己的聊天内容以及其他用户对大家的发言。要实现这些内容只有特定的用户才能看见,当然就要用客户端的session来实现。首先,内容显示页面会将存放当前页面用户名的session值传递给后台定义的一个变量,再将发言界面中的发言对象名赋给另一个变量,接着,再查找在线用户列表,判断发言对象是否还在线。判断完毕,系统会将从发言界面得到的发言人和发言对象与存放用户名的变量进行对比,同时,还会判断发言对象是否是“大家”,如果,用户名与发言人或发言对象中的一项相同或者发言对象是“大家”,那么,系统便会将传递的发言内容显示在当前的内容显
37、示区;如果都不符合说明系统中的发言内容与当前使用用户无关,显示页面将不显示该条发言信息。如此,实现了系统针对特定用户显示特定内容的功能。5.6 在线用户列表显示在聊天主页面的右边,竖长方形区域是用来显示在线用户数和在线用户列表的。如图5.7所示。图5.7 用户列表显示页面在显示列表页面中,系统定义了一个online的数组变量,用于存放在线用户。在显示时,系统将存放在Application(onlinelist)的值传递给数组online,同时调用split函数进行处理。接着用一个for循环语句,从online数组的第一个数据读取到最后一个数据,显示在于面中。online=Application
38、(onlinelist)online=split(online, )for i=lbound(online) to ubound(online)-1Response.Write msg=msg+&online(i)&;Next显示在线用户列表的流程图如图5.8所示图5.8 显示用户列表流程图5.7 管理功能本聊天室为了提高系统中用户信息的可管理性,设计了针对管理员级别的管理功能,如图5.9所示图5.9 系统功能区然而,普通用户在系统功能区中是无法看到管理功能的。在显示系统功能中的“管理”的时候,系统中设计了一个if语句来判断用户的权限是普通用户还是管理员,用户权限是存放在Session(lev
39、es)变量中的,在用户登录系统的时候查询数据库从而赋给该变量值,如果变量Session(leves)的值为admin,那么说明当前用户是系统管理员,于是,对该用户系统显示出管理功能;若Session(leves)的值为user,那么,当前用户是普通用户,无法使用管理功能。管 理在系统功能区中,单击“管理”,便可进入系统管理页面。如图5.10图5.10 系统管理页面在管理页面中,设计的是对数据库两张表的链接,通过单击“查看投诉信息”、“查看并管理注册人员名单”便可实现将后台数据库中的表显示在前台页面中,同时,在显示页面中还加入了对表中记录的删除操作。在页面中显示的数据表的每一项记录的末尾,添加了
40、删除按钮,单击它,便会执行delete语句,删除该记录。opersql=delete * from baseuser where name=&operid&conn.execute (opersql)5.8 辅助功能区辅助功能区界面如图5.9所示,用户可单击界面中的分屏、名单、举报、清屏、屏蔽、刷新以及退出,完成相应操作。其中,管理是只对系统管理员开放的功能,在前面已作介绍。(1)分屏在介绍聊天内容显示区的时候,提及了用户可根据自己的习惯和喜好,将聊天内容显示页面设置为上下两个分区或直接显示一个区域。用户只需在辅助功能区中单击分屏,便可在这两种模式下进行切换。分屏的实现方法其实是非常简单的,利
41、用了onclick事件和框架标签frameset实现的一个操作。系统中首先定义了一个tbclu的变量,用来存放分屏的状态值,“true”或“false”,然后定义了一个tbclutch()函数,当用户单击“分屏”,系统便调用该函数用来判断tbclu变量值,并执行函数中定义的操作,对frameset的属性值进行设置。function tbclutch()if (tbclu=true) this.msgfrm.rows=*,0;tbclu=false;elsethis.msgfrm.rows=1*,1*;tbclu=true;this.f2.document.af.msg.focus();(2)
42、屏蔽用户在聊天过程中,难免会遇到一些与自己交流不愉快的人,但某些人又可能对自己死缠烂打,强行进行私聊,发送私聊信息过来,扰乱用户正常发言交流,为了防范用户被无聊的人打扰,系统为用户提供了屏蔽功能,单击“屏蔽”,系统会将在线用户显示页面更换为屏蔽页面,将除当前用户外的人员显示出来,并且,在每个用户名前都设置了单选框,以便用户选择屏蔽对象。如果选择了屏蔽某位用户,那么该用户发送的密语将不会在聊天内容窗口中显示,用户也就无法看到屏蔽对象的发言,避免了骚扰。(3)名单单击名单,是为了用户在选择了屏蔽对象后,返回用户列表页面设置的。主要就是利用reload()函数进行屏蔽和在线用户列表名单切换。名 单(
43、4)清屏当聊天室里的在线人员逐渐增多,大家的发言内容也会随着增加,聊天内容显示区很快便会被这些内容填满,显得杂乱,使得用户在查看聊天内容时不方便。这时,用户单击“清屏”,系统会调用focus()函数,将指定区域的内容删除,即聊天内容显示区变会把当前最新发言以前的所有发言内容清空,使聊天内容显示区回到最初的无内容状态。onClick=parent.write();parent.f2.document.af.msg.focus()(5) 举报当用户在聊天过程中,发现有人在聊天室中的言行恶劣,发言内容带有侮辱性或不文明的语言,严重影响了聊天室的和平交流、轻松聊天的氛围。在这种情况下,用户单击举报,打
44、开用户投诉举报页面,在页面中,用户根据表单内容,填写完毕后,回车或提交。系统将自动把从表单获得的内容存放在数据库的投诉表中,待系统管理员查看。其存储实现过程与用户注册流程基本相似。(6) 刷新该功能为用户刷新聊天内容所设,与浏览器上的刷新功能类似,不过,这里的刷新仅限于聊天内容显示区的刷新,实现代码如下:parent.f4.location.reload()(7) 退出 用户单击退出,触发onclick事件调用exitchat()函数,系统弹出询问对话框,“你真的要退出聊天室?”,单击确定,聊天室系统关闭,并释放该客户端存放的session变量。结 论通过这三个月的学习和工作,完成了ASP网络聊天室系统的设计,满足了用户需求。由于设计是基于B/S模式,该系统具有良好的可移植性等优点,并且具有相当不错的应用前景。同时由于该系统使用的是基于VBScript和JavaScript的ASP技术,使我对该门技术又有了更加深入的了解,并且对应用Dr