毕业设计(论文)基于Web的聊天室系统设计与实现

上传人:仙*** 文档编号:29983380 上传时间:2021-10-08 格式:DOC 页数:33 大小:665.01KB
返回 下载 相关 举报
毕业设计(论文)基于Web的聊天室系统设计与实现_第1页
第1页 / 共33页
毕业设计(论文)基于Web的聊天室系统设计与实现_第2页
第2页 / 共33页
毕业设计(论文)基于Web的聊天室系统设计与实现_第3页
第3页 / 共33页
点击查看更多>>
资源描述
中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育毕业设计(论文)毕业设计(论文)基于 Web 的聊天室系统设计与实现 2009 年 04 月 16 日中国石油大学(北京)现代远程教育毕业设计(论文)中国石油大学(北京)现代远程教育毕业设计(论文)i基于 Web 的聊天室系统设计与实现摘 要Web 聊天室,是 Web 站点上,网友们进行交流的秘密武器,注重的实时的交流、沟通、讨论,不像 BBS 一样,需要等待盖楼的折磨;聊天室,其实就是多人共同使用的 CGI 程序。程序将每个人输入的字符串,依系统接收完成的时间整理过后,再送给各个用户。而 Web 聊天室和 BBS 的聊天室不同的地方是,聊天室可以每收到一句话,就马上分送给每位在聊天室的网络用户;Web 由于 CGI 程序不能像 BBS 的 telnet 一直连接,Web CGI 必须以最快的速度将信息送出,然后结束连接。WEB 技术的广泛应用,对整个世界政治、经济、文化等各方面产生了十分广泛和深远的影响。它奇迹般地崛起、爆炸般地扩容,令全世界瞩目。WEB 互联网技术之所以能在如此短的时间内获得社会各方面的认可,并在全球范围内推广应用是因为互联网拥有庞大的信息资源、给人类提供全新的交往方式、存在着巨大的商机、虚拟现实技术 的广泛应用等等,是促进互联网发展的重要因素;其中交互性和实时性尤为重要,选择此课题的动机和意义,就是为了更加深入的了解 WEB CGI 程序的运行,同时对 web应用程序有一定了解和掌握,体验 WEB 互联网技术的飞速发展;关键词关键词:聊天室;WEB CGI 程序;互联网;实时交流中国石油大学(北京)现代远程教育毕业设计(论文)中国石油大学(北京)现代远程教育毕业设计(论文)ii目 录第一章第一章 引引 言言.11.1 WEB聊天室的引入.11.2 系统开发的意义.11.3 系统开发技术路线.2第二章第二章 可行性分析可行性分析.32.1 经济可行性.32.2 技术上的可行性.3第三章第三章 系统技术简介系统技术简介.43.1 PHP 技术 .43.2 AJAX 简介.53.3 ORACLE 技术.63.4 XML 技术.6第四章第四章 系统设计系统设计.84.1 聊天室角色设计.84.2 聊天室功能设计.84.3 系统数据库设计.9第五章第五章 系统模块和系统流程系统模块和系统流程.125.1 系统模块.125.2 系统流程.13第六章第六章 系统实现系统实现.146.1 在线注册.146.2 匿名聊天页面.156.3 注册用户聊天模块.166.4 主持人聊天模块.176.5 嘉宾聊天模块.176.6 管理员聊天模块.18第七章第七章 关键代码关键代码.207.1 AJAX 定义.207.2 注册模块.217.3 聊天模块.237.4 XML 解析模块.25第八章第八章 总总 结结.28参考文献参考文献.29中国石油大学(北京)现代远程教育毕业设计(论文)中国石油大学(北京)现代远程教育毕业设计(论文)1第一章第一章 引引 言言1.11.1 WebWeb 聊天室的引入聊天室的引入随着信息流量的日益加大,计算机网络技术得到飞速发展,各类网站不断涌现出来。而最受青睐的应属具有动态效果、实施性质的相互交流的的网络平台,其页面的内容使用的不仅仅是标准的 HTML 代码。而是加入了各种“交互性”。 将浏览器作为客户端界面,这将是今后 WEB 发展的大事所趋。 如何与别人更好地交流, 是当前人们普遍关心的问题。人们通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。其中网上聊天系统是构成网站的一个重要组成部分,为人们之间进行交流和联系提供的一个平台。1.21.2 系统开发系统开发的意义的意义Internet 是目前世界上最大的计算机互联网络它遍布全球,将世界各地各种规模的网络连接成一个整体。作为 Internet 上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称 WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前 Internet 上已有上百万个 Web 站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的 Web 站点对于一个机构的发展十分重要。近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系和交流方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。网上聊天系统作为一种方便消费者与人们之间联系的实用系统便应运而生。网上聊天系统是为人们中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文2进行交流和联系提供的一个平台。通过提供完善的网上聊天系统的管理,可以达到增进人们与消费者之间、消费者与消费者之间的交流和联系的目的。1.31.3 系统开发技术路线系统开发技术路线系统的开发采用当前最为火爆的技术 - PHP 语言,进行开发;系统测持久性设计采用 XML+ORACLE 技术;前端与数据存储之间的交互采用 PHP+AJAX 来进行;系统运行平台采用 LINUX,Web 端服务器为 APACHE;中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文3第二章第二章 可行性分析可行性分析2.12.1 经济可行性经济可行性主要是对系统的经济效益进行评价,由于本系统运行的平台对配置并不是很高,实现起来也比较方便,可以在资源上、人力上节约很大的开支,开发经费对于个人/单位在经济上是可以接受的,并且本系统实施后可以显著提高工作效率,有助于完全实现信息的实时交流。提高网站的 PV,为网站带来更大的效益;所以本系统在经济上是可行的。2.22.2 技术上的可行性技术上的可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该管理系统采用了当前流行的Browser/Server 模式进行开发。三层的 Browser/Server 体系结构具有许多传统 Client/Server 体系结构不具备的优点,而且又紧密的结合了Internet/Intranet 技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。数据库服务器选用 ORACLE 数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能,并且有益于系统的扩展。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。PHP、XML、ORACLE、AJAX 等技术现在说来,已经是相当的成熟,已经有海量的网站采用此类技术进行了开发,PHP 网站已经非常常见,AJAX 技术也有大量的应用,所以在技术上来说,也是完全可行的;中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文4第三章第三章 系统技术简介系统技术简介3.13.1 PHPPHP 技术技术PHP 是“PHP:Hypertext Preprocessor”的缩写,即“超文本预处理器” 。PHP 是一种功能强大,并且简便易用的脚本语言。PHP 是一种简单、轻便的服务器端脚本语言。PHP 最初是作为一个快速、实用的工具包出现的。1994 年,为了在自己的网站上增加一个小巧而实用的访客追踪系统,Rasmus Lerdorf 编写了 PHP 的雏形程序。这是一个用 Perl 封装的简单工具。由于使用效果并不理想,Rasmus 又用 C 语言重写了这个工具;PHP 发展至今,已经从最初的 PHP/FI 发展经历PHP2.0、PHP3.0、PHP4.0,目前已经更新至 PHP5.0;它的核心是第二代Zend 引擎,并引入了对全新的 PECL 模块的支持。PHP5 的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。另外,在对象的集成等方面也不再存在问题。使用 PHP5 引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。如同 ASP 具有 Windows 自己的开发平台一样,Zend 也为 PHP 设计了全新的开发环境 Zend Studio。这是一款集程序调试、系统发布以及开发环境为一体的 PHP 开发软件。这将大大简化 PHP 开发过程,并且缩短相应的测试周期。另外,Zend 还将与 IBM 公司合作推出集成 Zend IDE 特性的Eclipse 软件供大家使用。PHP 还具有优秀的平台兼容性。PHP 源于 UNIX 系统平台,尤其是PHP、MySQL、Apache 和 Linux 组合,备受 PHP 爱好者的欢迎。不仅如此,PHP 在 Windows 系列操作系统上也有出色的表现。其良好的程序界面、语言易用性等特点吸引了微软的开发人员。目前,有消息称未来的Windows.NET 开发环境将集成 PHP,这也意味着 PHP 的用户群将日益壮大。PHP 的特性:中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文5开放的源代码:所有的 PHP 源代码事实上都可以得到。PHP 是免费的。基于服务器端:由于 PHP 是运行在服务器端的,即使再多的用户,再复杂的程序也不会影响运行的速度。跨平台:PHP 可以运行在 UNIX、LINUX、WINDOWS 下。嵌入 HTML:因为 PHP 可以嵌入 HTML 语言,所以学习起来并不困难。简单的语言:PHP 坚持脚本语言为主,与 Java 以 C+不同。效率高:PHP 消耗相当少的系统资源。图像处理:用 PHP 动态创建图像3.23.2 AJAXAJAX 简介简介AJAX 全称为“Asynchronous JavaScript and XML” (异步 JavaScript和 XML) ,是指一种创建交互式网页应用的网页开发技术。传统的 web 应用允许用户填写表单(form),当提交表单时就向 web 服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分 HTML 代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。与此不同,AJAX 应用可以仅向服务器发送并取回必需的数据,它使用SOAP 或其它一些基于 XML 的 web service 接口,并在客户端采用JavaScript 处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以 Web 服务器的处理时间也减少了。使用 Ajax 的最大优点,就是能在不更新整个页面的前提下维护数据。这使得 Web 应用程序更为迅捷地回应用户动作,并避免了在网络上发送那中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文6些没有改变过的信息。Ajax 不需要任何浏览器插件,但需要用户允许 JavaScript 在浏览器上执行。就像 DHTML 应用程序那样,Ajax 应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着 Ajax 的成熟,一些简化 Ajax 使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持 JavaScript 的用户提供替代功能。3.33.3 ORACLEORACLE 技术技术Oracle 应用产品包括财务、供应链、制造、项目管理、人力资源和市场与销售等 150 多个模块,荣获多项世界大奖,现已被全球近 7600 多家企业所采用。由于在电子商务方面的杰出表现,Oracle 公司在美国 Mongan Stanley 公司最新公布的权威性全球企业 1000 强中,从去年的第 122 名一跃成为第 13 名,成为全球第二大独立软件公司和最大的电子商务解决方案供应商。目前, Amazon 和 Dell 等全球十个最大的 Internet 电子商务网站、全球十个最大的 B-to-B 网站中的九个、93%的上市.COM 公司、65 家“财富全球 100 强”企业均不约而同地采用 Oracle 电子商务解决方案。发展至今,Oracle 已经发展至 Oracle 11g;11g 数据库增强了 Oracle透明数据加密功能,将这种功能扩展到了卷级加密之外。11g 还增加了表空间加密功能,可用来加密整个表、索引和所存储的其它数据。存储在数据库中的大型对象也可以加密。在 Oracle 11g 中, XML DB 的性能又获得很大提高,XML DB 是 Oracle 数据库的一个组件,客户可以以本机方式存储和操作 XML 数据。11g 增加了对二进制 XML 数据的支持,现在客户可以选择适合自己特定应用及性能需求的 XML 存储选项。3.43.4 XMLXML 技术技术XML(Extensible Markup Language)即可扩展标记语言,它与 HTML一样,都是 SGML (Standard Generalized Markup Language,标准通用标中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文7记语言)。Xml 是 Internet 环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言 XML 是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然 XML 占用的空间比二进制数据要占用更多的空间,但 XML 极其简单易于掌握和使用。XML 与 Access,Oracle 和 SQL Server 等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML 仅仅是展示数据。事实上 XML 与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使 XML 与众不同。XML 的简单使其易于在任何应用程序中读写数据,这使 XML 很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持 XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux 以及其他平台下产生的信息结合,然后可以很容易加载 XML 数据到程序中并分析他,并以 XML 格式输出结果。中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文8第四章第四章 系统设计系统设计4.14.1 聊天室角色设计聊天室角色设计1、管理员添加聊天主题; 设置聊天角色; 查看网友资料、警告、禁言、踢人;角色区分:使用不同颜色显示用户名、昵称; 2、主持人 (可选角色)查看网友资料、警告;角色区分:使用不同颜色显示用户名、昵称; 3、嘉宾 (可选角色)屏蔽某人发言;角色区分:使用不同颜色显示用户名、昵称;4、会员屏蔽某人发言;角色区分:显示用户名、昵称;5、网友屏蔽某人发言;角色区分:系统自动分配昵称;4.24.2 聊天室功能设计聊天室功能设计1、用户注册用户只有拥有自己的帐号才能才能登录到聊天室系统中结交朋中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文9友,畅所欲言。这就需要到聊天室注册页面进行注册。在注册页面可以注册用户名、密码等信息;约束:用户注册时,用户名不可以重复,昵称可以重复; 用户注册后,可以个性化自己的昵称,完善自己的资料; 2、群聊正常聊天,所有人都能看到每个人的发言;3、私聊个人私聊屏,展示对方对自己所说的话,其他会员、网友看不到自己的私聊内容;4、屏蔽某人发言屏蔽“某人”的发言后,自己不再看到“某人”的发言;5、查看网友资料此功能为“管理员、主持人”所特有的权利,查看会员、网友个人资料、IP 等;6、警告此功能为“管理员、主持人”所特有的权利;可以对“违规”会员、网友进行警告,提示其注意其言论;7、踢人此功能为“管理员”所特有的权利;对多次“违规”警告的会员,仍然进行“违规”行为、或发表不文明言论,由管理员对其进行踢人操作;在一段时间内禁止其继续进入聊天室聊天;8、聊天内容个性化发言的个性化;A、可以自行选择字体、颜色;B、为了防止恶意发言,限制发言间隔(可能会影响系统效率,可考虑其他方案)中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文104.34.3 系统数据库设计系统数据库设计1、系统用户表:会员主表 - FSM_MEMBER_BASICNAMENAMECODECODEDATADATA TYPETYPELengthLength会员 IDMEMBERIDVARCHAR236会员登录名USERNAMEVARCHAR232密码PASSWORDVARCHAR232表 4-12、聊天主题管理-FSM_EXP_SUBJECTNAMENAMECODECODEDATADATA TYPETYPELengthLength主题 IDSUBJECTIDVARCHAR28坐堂主题SUBJECTTITLEVARCHAR2100开始时间STIMEDATE结束时间ETIMEDATE主题内容SUBJECTCONTENTCLOBxml 文件路径SUBJECTXMLPATHVARCHAR2300专家登陆名LOGINNAMEVARCHAR2200表 4-23、名家基本信息表-FSM_EXPERT_BASICNAMENAMECODECODEDATADATA TYPETYPELengthLength名家 ID EXPERTIDVARCHAR28前台账号 USERNAMEVARCHAR2200显示姓名 REALNAMEVARCHAR2100性别EXPERTSEXVARCHAR22联系电话EXPERTTELEPHONEVARCHAR2100中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文11邮箱EXPERTEMAILVARCHAR2150国家/籍贯EXPERTCOUNTRYVARCHAR2200表 4-34、名家角色关系表-FSM_EXP_ROLENAMENAMECODECODEDATADATA TYPETYPELengthLength主键 IDIDVARCHAR232名家 IDEXPERTIDVARCHAR28角色值ROLENUMBER2表 4-45、聊天主题相关人员表-FSM_EXP_PERSONNELNAMENAMECODECODEDATADATA TYPETYPELengthLength记录编号PERSONNELRECIDVARCHAR28坐堂主题编号SUBJECTIDVARCHAR28会员编号MEMBERIDVARCHAR236人员类型PERSONNELTYPENUMBER1会员登陆USERNAMEVARCHAR2200表 4-5中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文12第五章第五章 系统模块和系统流程系统模块和系统流程5.15.1 系统模块系统模块聊天室系统注册/登陆模块匿名网友聊天模块注册用户聊天模块主持人聊天模块嘉宾聊天模块管理员聊天模块图 5-1 系统模块图相关说明:如上图所示,系统共包括以上几个模块,用户注册/登陆模块、匿名用户聊天模块、注册用户聊天模块、主持人聊天模块、嘉宾聊天模块、管理员聊天模块;注册/登陆模块:用户注册登陆后可以享受会员级别的待遇,可以向专家提问等等权限;匿名用户聊天模块:如果用户没有注册就进入了聊天室,则他为匿名用中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文13户,聊天的过程中,会有一些操作不能进行,比如向专家提问问题等注册用户聊天模块:用户注册登陆后可以进行聊天,并且可以向专家进行提问等,提高了系统权限,使其更能充分利用系统资源;主持人聊天模块:主持人在此页面与嘉宾进行交流,活跃气氛,不至于让嘉宾一个人来跟网友进行交流;嘉宾聊天模块:嘉宾在此页面跟主持人进行交流,以及对注册用户提出的问题进行作答,实现与用户及网友的交流;管理员聊天模块:管理员的言论也将发表在这个区域,跟网友进行互动,并对会员及分会员(匿名用户)进行管理;此外,管理员还有警告、踢人的权利;可以对“违规”会员、网友进行警告,提示其注意其言论;对多次“违规”警告的会员,仍然进行“违规”行为、或发表不文明言论,由管理员对其进行踢人操作;在一段时间内禁止其继续进入聊天室聊天;5.25.2 系统流程系统流程匿名聊天模块是否登陆登陆聊天室否判断用户类型是注册用户聊天模块嘉宾聊天模块主持人聊天模块管理员聊天模块一般用户管理员主持人嘉宾向专家提问提示注册/登陆是否注册/登陆注册并登陆没有注册,继续匿名聊天图 5-2 系统流程图中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文14当用户登陆进入聊天室,系统将判断其有没有登陆,如果已经登陆,则对其用户类型进行判断,根据不同的角色进入不同的聊天模块;如果没有登陆,则直接进入“匿名聊天模块” ,享有一部分权利;当其向嘉宾进行提问时,提示其进行登陆,如果没有注册,则直接进入注册模块;如果网友选择注册并登陆后,则进入“注册用户聊天模块” ; 第六章第六章 系统实现系统实现6.16.1 在线注册在线注册用户只有拥有自己的帐号才能登录到聊天室系统中结交朋友,向名家提问问题,畅所欲言。这就需要到聊天室注册页面进行注册。在注册页面可以注册用户名、密码等信息,以完成注册。填写时要注意:A、用户名为登陆邮箱,格式必须正确,如:B、两次填写的密码必须大写六位且必须一致,否则会出错;C、注意一定要填写验证码;这里主要是为了防止滥注册行为;D、注册后系统会想您注册的邮箱发送邮件,去邮箱把你的注册用户激活,才能正常使用,这里是为了防止其他网友用您的邮箱注册或是自己注册错误等等;具体如下图所示:中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文15图 6-1 密码填写错误图 6-2 填写正确6.26.2 匿名聊天页面匿名聊天页面图 6-3中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文16上半部分为嘉宾谈话区域,主持人负责跟主持人进行交流;其他聊天室用户向嘉宾提问的问题,也有嘉宾在此区域回复;下部分为网友、聊天室用户管理员等等人的聊天显示区域;用户可以选择自己发言的字体颜色;可以选择对话的对象,如果想要跟某位网友交流,只要点击他的用户名就可以把他添加到对象列条里面;但是匿名用户(没有注册的网友) ,对象不可以为嘉宾,只有注册过的用户才能向嘉宾提问问题;清屏功能,清除目前页面内的聊天内容;6.36.3 注册用户聊天模块注册用户聊天模块图 6-4此页面的页面分布同 匿名聊天页面 ;唯一不同的地方就是,此页面中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文17内都是注册用户,也就是说都可以向嘉宾提问问题;清屏功能,清除目前页面内的聊天内容;6.46.4 主持人聊天模块主持人聊天模块此页面左侧内容同 注册用户聊天模块 的上部分;主持人在此页面与嘉宾进行交流,活跃气氛,不至于让嘉宾一个人来跟网友进行交流;右侧为注册用户向嘉宾提问的问题列表,主持人可以把问题选择到嘉宾页面,来完成用户对嘉宾提问的问题,嘉宾再在其页面作答;此外,主持人可以选择自己的字体颜色,还有使用清屏功能,清除目前页面内的聊天内容;如下图:图 6-5中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文186.56.5 嘉宾聊天模块嘉宾聊天模块页面布局同主持人聊天模块,左侧内容同 注册用户聊天模块 的上部分;嘉宾在此页面跟主持人进行交流,以及对注册用户提出的问题进行作答,实现与用户及网友的交流; 右侧为注册用户向嘉宾提问的问题列表,嘉宾可以自己选择用户提问的问题,来进行选择作答;此外,嘉宾可以选择自己的字体颜色,还有使用清屏功能,清除目前页面内的聊天内容;如下图:图 6-66.66.6 管理员聊天模块管理员聊天模块页面的左侧部分为嘉宾回答网友问题,和主持人和嘉宾;右侧为网友聊天屏,管理员的言论也将发表在这个区域,跟网友进行互动,并对会员及分会员(匿名用户)进行管理;中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文19管理员可以选择自己的字体颜色,还有使用清屏功能,清除目前页面内的聊天内容;此外,管理员还有警告、踢人的权利;可以对“违规”会员、网友进行警告,提示其注意其言论;对多次“违规”警告的会员,仍然进行“违规”行为、或发表不文明言论,由管理员对其进行踢人操作;在一段时间内禁止其继续进入聊天室聊天;图 6-7中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文20第七章第七章 关键代码关键代码7.17.1 AJAXAJAX 定义定义Ajax 简单来说通过 XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,然后用 javascript 来操作 DOM 而更新页面。这其中最关键的一步就是从服务器获得请求数据。XMLHttpRequest 是 ajax 的核心机制,是一种支持异步请求的技术。也就是 javascript 可以及时向服务器提出请求和处理响应,而不阻塞用户。达到无刷新的效果。但是,由于各浏览器之间存在差异,所以创建一个 XMLHttpRequest对象可能需要不同的方法。这个差异主要体现在 IE 和其它浏览器之间。下面是一个比较标准的创建 XMLHttpRequest 对象的方法。function CreateXmlHttp() /非 IE 浏览器创建 XmlHttpRequest 对象 if(window.XmlHttpRequest) xmlhttp=new XmlHttpRequest(); /IE 浏览器创建 XmlHttpRequest 对象 if(window.ActiveXObject) try xmlhttp=new ActiveXObject(Microsoft.XMLHTTP); catch(e) try xmlhttp=new ActiveXObject(msxml2.XMLHTTP); catch(ex) function Ustbwuyi()中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文21 var data=document.getElementById(username).value; CreateXmlHttp(); if(!xmlhttp) alert(创建 xmlhttp 对象异常!); return false; xmlhttp.open(POST,url,false); xmlhttp.onreadystatechange=function() if(xmlhttp.readyState=4) document.getElementById(user1).innerHTML=数据正在加载.; if(xmlhttp.status=200) document.write(xmlhttp.responseText); xmlhttp.send(); 如上所示,函数首先检查 XMLHttpRequest 的整体状态并且保证它已经完成(readyStatus=4) ,即数据已经发送完毕。然后根据服务器的设定询问请求状态,如果一切已经就绪(status=200) ,那么就执行下面需要的操作。对于 XmlHttpRequest 的两个方法,open 和 send,其中 open 方法指定了一些参数,用来通过指定的方式来执行发送请求操作。 XMLHttpRequest 是完全用来向服务器发出一个请求的,它的作用也局限于此,但它的作用是整个 ajax 实现的关键,因为 ajax 无非是两个过程,发出请求和响应请求。并且它完全是一种客户端的技术。而XMLHttpRequest 正是处理了服务器端和客户端通信的问题所以才会如此的重要。7.27.2 注册模块注册模块用户进入注册页面,填写注册信息,然后点击提交按钮来完成注册;在这过程中我们要对用户所输入的内容进行检查,看是按要求填写,如果不符合填写要求,则返回页面,让用户来完善自己所填写的信息;用户信中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文22息通过验证后,则注册成功,同时向用户的邮箱发送验证邮件,用户通过登录邮箱来激活自己的账户;以下是相关的代码:if($mail = ) echo 邮箱不能为空!;exit();else if(!ereg(-a-zA-Z0-9_.+(0-9A-Za-z0-9A-Za-z-+.)+A-Za-z2,5$,$mail) echo 您输入的邮箱有误,请按照正确格式输入,如:admin ;exit();if(strlen($pwd)regMember($mail,$pwd,$mail,$mail);if($mid = ) echo 末知原因,注册失败!;exit();/设置 cookiesetcookie(LOGIN, 1 , NULL , / , );setcookie(USERNAME, $mail, NULL, / , );setcookie(MEMBERID, $mid , NULL , / , );$member-addevent($mid); /为积分增加事件表添加记录/发送邮件require_once(ROOT_DIR.class/Member/smtpLong.class.php);/实例化 smtp 类,设置发信服务器,账号和密码$smtp = new smtp( 111.111.111.111 , admin ,888888);/设置发信人$smtp-setFrom(webserver );/设置收信人,多个用,隔开$smtp-setTo ($mail);/设置标题$smtp-setSubject(感谢您成为 注册用户);$body=file_get_contents(include/mailTemplate/mail_reg_tpl.htm); /以找回密码为例preg_match_all (/#a-zA-z0-9+#/, $body, $matches,PREG_PATTERN_ORDER);foreach ($matches0 as $val) $str=substr($val,2,strlen($val)-4);$body=str_replace($val,$str,$body);中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文23/设置邮件内容$smtp-setBody($body);/发送邮件,在发信任务中,任何一个发送出现问题,即返回 false7.37.3 聊天模块聊天模块用户进入聊天室后,进行跟专家、网友的互动、聊天,以下是从 XML文件读取信息,以及写入信息的相关代码:其中 GetAJAX() 和 showInfo() 方法,用来提取聊天信息,并用 AJAX技术无刷新输出到用户界面;SendAJAX()方法用来向 xml 提交信息,并写入到 XML 中;function GetAJAX()xmlhttp = new createRequest();var DataToSend = fileName= +fileName.value+&responseTime=+responseTime;alert(test);xmlhttp.open(POST,include/response.php, true);alert(back);xmlhttp.onreadystatechange = showInfo;xmlhttp.setRequestHeader(Content-Type, application/x-www-form-urlencoded;);xmlhttp.send(DataToSend); function showInfo() if(xmlhttp.readyState=4) if(xmlhttp.status=200) var responseValue=xmlhttp.responseText;if(responseValue=over)alert(聊天室已经关闭,欢迎下次光临!);deleteCookie(thisValue);window.close();else if(responseValue=kick)alert(你已经被踢出聊天室);deleteCookie(thisValue);window.close(); else /分解 text中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文24eval(var arr = +responseValue);var theTime=arr.time;if(theTime!=)responseTime=theTime;Edit.innerHTML += arr.lines0.word;Down(); function SendAJAX()var filed=ChatText2.value.replace(/(s*)|(s*$)/g, );var sendDate=new Date();var sendTime=sendDate.getTime();var g=ChatText2.value;var compareTime=eval(sendTime-CommonTime)/1000);/时间比较if ( filed!= )if(filed.length100) alert(你发言的字数不能超过 100);elseif(objectChat.optionsobjectChat.selectedIndex.value=username) alert(不能和自己私聊); elseif(compareTimeisAnon=$_COOKIEchatName:$this-isAnon=$_COOKIELOGINANON;if(file_exists($file) $this-file=$file;elseexit(文件不存在);$this-load($this-file);$this-xpath=new DOMXPath($this);中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文26/* *select 方法,非管理员返回信息:$query,xml 查询语句;$len,返回的记录条数;$arr,用户名所对应了类型;*/function select($query,$len) $this-nodeList=$this-xpath-query($query);$nodelist_len=$this-nodeList-length;if($nodelist_len)$act_len=($len=$this-nodeList-length?$this-nodeList-length:$len);else $act_len=0;$str=;if($this-debug=1) /* uxc:*/ foreach($arr as $key=$value) $str_arr.=$key.:.$value.; echo The select xml query:$query; the input len:$len; the actual display record lentth: $act_len; for($i=0;$inodeList-item($i); $id=$value-getAttribute(id); $from=$value-getAttribute(from); $to=$value-getAttribute(to); /$strip_from=strip_tags($actual_from); /$strip_to=strip_tags($actal_to); $usercolor=$value-getAttribute(usercolor); /$to=大家,对所有的人说话,否则就是私聊 if($to=大家)$mark=.$from. : ;else if($to=$this-isAnon|$from=$this-isAnon)$mark=私.$from. 对 .$to. : ; if($mark!=)if($from=管理员) $str.=$mark.$value-firstChild-中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文27nodeValue.;else $str.=$mark .$value-firstChild-nodeValue.; $last_len=$act_len-1; /把最后一条记录的时间给 session,用来算下次时间偏量 if($act_len)$responseTime=$this-nodeList-item($last_len)-getAttribute(datetime); $str=addslashes($str); return time:$responseTime,lines:word:$str;中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文28第八章第八章 总总 结结(1)PHP+AJAX+XML 模式的聊天室开发,可以实现页面的实时更新,为用户带来好的体验,同时文件存储存储在 XML 中,避免了程序对数据库的一次次读取,在一定程度上提高的系统的效率;但是,还是存在一定的问题的,比如写入 XML 文件,有可能会因为特殊字符而导致系统写入 XML失败,甚至造成 XML 乱码;另一方面,XML 文件如果太大也有可可能会出错,这些问题都是要考虑的;(2)二十一世界是一个知识突飞猛进的时代,渐渐的已经出现了更加适合做聊天室的技术 FLEX,在 flash 基础上发展起来的 flex 技术,可以做出更好的效果,大大提高了用户体验;另外出现的新技术,分布式的高速缓存服务器 memcached 技术,可以实现页面的快速刷新,它将是一个个更好的选择,所以聊天室的制作可以采用 flex+memcached 来实现,也许会更好;中国石油大学(北京)现代远程教育中国石油大学(北京)现代远程教育 07090709 批次专升本毕业论文批次专升本毕业论文29中国石油大学(北京)现代远程教育毕业设计(论文)中国石油大学(北京)现代远程教育毕业设计(论文)30参考文献参考文献1 美Rasmus Lerdorf &Kevin Tatroe 著PHP 程序设计中国电力出版社,2003 年 7 月 22 Hugh E.Williams 等著PHP & MYSQL Web 数据库应用开发指南中国电力出版社,2003 年 5 月3 STERLING HUGHES 等著. PHP 经典实例. 中国电力出版社,2003 年 4 月.4 (美)Leon Atkinson 著. MySQL 核心编程. 清华大学出版社,2003-4-1.5 David Flanagan 著 张铭泽等译. JavaScript 权威指南(第四版). 机械工业出版社,2003 年 1 月.6 (英)克拉恩,帕斯卡雷诺著. Ajax 实战,人民邮电出版社,2006-4-1.7 叶新伟等编著. PHP+Ajax Web 2.0 编程技术与项目开发大全.电子工业出版社,2008-6-1.8 (澳)泽瓦斯 著. PHP Web 2.0 开发实战. 人民邮电出版社. 2008-10-1.9 (美)雅克布斯著. XML 基础教程:入门、DOM、Ajax 与 Flash. j 人民邮电出版社. 2007-7-1.10 W. Jason GilmoreBeginning PHP and MySQL 5Apress11 Thomas Kyte Expert one-on-one Oracle
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!