基于Web的聊天室系统设计与实现_第1页
基于Web的聊天室系统设计与实现_第2页
基于Web的聊天室系统设计与实现_第3页
基于Web的聊天室系统设计与实现_第4页
基于Web的聊天室系统设计与实现_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国石油高校(北京)现代远程教化毕业设计(论文)基于Web的闲聊室系统设计与实现2基于Web的闲聊室系统设计与实现摘要Web闲聊室,是Web站点上,网友们进行沟通的隐私武器,留意的实时的沟通、沟通、探讨,不像BBS一样,须要等待盖楼的熬煎;闲聊室,其实就是多人共同运用的CGI程序。程序将每个人输入的字符串,依系统接收完成的时间整理过后,再送给各个用户。而Web闲聊室和BBS的闲聊室不同的地方是,闲聊室可以每收到一句话,就立刻分送给每位在闲聊室的网络用户;Web由于CGI程序不能像BBS的telnet始终连接,WebCGI必需以最快的速度将信息送出,然后结束连接。WEB技术的广泛应用,对整个世界政治、经济、文化等各方面产生了特别广泛和深远的影响。它奇迹般地崛起、爆炸般地扩容,令全世界瞩目。WEB互联网技术之所以能在如此短的时间内获得社会各方面的认可,并在全球范围内推广应用是因为互联网拥有浩大的信息资源、给人类供应全新的交往方式、存在着巨大的商机、虚拟现实技术的广泛应用等等,是促进互联网发展的重要因素;其中交互性和实时性尤为重要,选择此课题的动机和意义,就是为了更加深化的了解WEBCGI程序的运行,同时对web应用程序有肯定了解和驾驭,体验WEB互联网技术的飞速发展;关键词:闲聊室;WEBCGI程序;互联网;实时沟通目录第一章引言 11.1Web闲聊室的引入 11.2系统开发的意义 11.3系统开发技术路途 2其次章可行性分析 32.1经济可行性 32.2技术上的可行性 3第三章系统技术简介 43.1PHP技术 43.2AJAX简介 53.3ORACLE技术 63.4XML技术 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.1AJAX定义 207.2注册模块 217.3闲聊模块 237.4XML解析模块 25第八章总结 28参考文献 29第一章引言1.1Web闲聊室的引入随着信息流量的日益加大,计算机网络技术得到飞速发展,各类网站不断涌现出来。而最受青睐的应属具有动态效果、实施性质的相互沟通的的网络平台,其页面的内容运用的不仅仅是标准的HTML代码。而是加入了各种“交互性”。将阅读器作为客户端界面,这将是今后WEB发展的大事所趋。如何与别人更好地沟通,是当前人们普遍关切的问题。人们通过网站可以展示产品,发布最新动态,与用户进行沟通和沟通,与合作伙伴建立联系,以及开展电子商务等。其中网上闲聊系统是构成网站的一个重要组成部分,为人们之间进行沟通和联系供应的一个平台。1.2系统开发的意义Internet是目前世界上最大的计算机互联网络它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,WorldWideWeb(简称WWW)发展特别快速,成为目前世界上最大的信息资源宝库。据估计,目前Internet上已有上百万个Web站点,其内容范围跨越了教化科研、文化事业、金融、商业、新闻出版、消遣、体育等各个领域,其用户群特别浩大,因此,建设一个好的Web站点对于一个机构的发展特别重要。近年来计算机技术的快速发展,特殊是计算机网络的发展,越来越深刻的变更了人们生活的方方面面。使得人们能以更低廉的价格,开发出更便利、更好用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系和沟通方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满意现代生活的须要。网上闲聊系统作为一种便利消费者与人们之间联系的好用系统便应运而生。网上闲聊系统是为人们进行沟通和联系供应的一个平台。通过供应完善的网上闲聊系统的管理,可以达到增进人们与消费者之间、消费者与消费者之间的沟通和联系的目的。1.3系统开发技术路途 系统的开发采纳当前最为火爆的技术-PHP语言,进行开发;系统测长久性设计采纳XML+ORACLE技术;前端与数据存储之间的交互采纳PHP+AJAX来进行; 系统运行平台采纳LINUX,Web端服务器为APACHE;其次章可行性分析2.1经济可行性主要是对系统的经济效益进行评价,由于本系统运行的平台对配置并不是很高,实现起来也比较便利,可以在资源上、人力上节约很大的开支,开发经费对于个人/单位在经济上是可以接受的,并且本系统实施后可以显著提高工作效率,有助于完全实现信息的实时沟通。提高网站的PV,为网站带来更大的效益;所以本系统在经济上是可行的。2.2技术上的可行性技术上的可行性分析主要分析技术条件能否顺当完成开发工作,硬、软件能否满意开发者的须要等。该管理系统采纳了当前流行的Browser/Server模式进行开发。三层的Browser/Server体系结构具有很多传统Client/Server体系结构不具备的优点,而且又紧密的结合了Internet/Intranet技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。数据库服务器选用ORACLE数据库,它能够处理大量数据,同时保持数据的完整性并供应很多高级管理功能,并且有益于系统的扩展。它的敏捷性、平安性和易用性为数据库编程供应了良好的条件。因此,系统的开发平台已成熟可行。硬件方面,科技飞速发展的今日,硬件更新的速度越来越快,容量越来越大,牢靠性越来越高,价格越来越低,其硬件平台完全能满意此系统的须要。PHP、XML、ORACLE、AJAX等技术现在说来,已经是相当的成熟,已经有海量的网站采纳此类技术进行了开发,PHP网站已经非经常见,AJAX技术也有大量的应用,所以在技术上来说,也是完全可行的;第三章系统技术简介3.1PHP技术PHP是“PHP:HypertextPreprocessor”的缩写,即“超文本预处理器”。PHP是一种功能强大,并且简便易用的脚本语言。PHP是一种简洁、轻巧的服务器端脚本语言。PHP最初是作为一个快速、好用的工具包出现的。1994年,为了在自己的网站上增加一个小巧而好用的访客追踪系统,RasmusLerdorf编写了PHP的雏形程序。这是一个用Perl封装的简洁工具。由于运用效果并不志向,Rasmus又用C语言重写了这个工具;PHP发展至今,已经从最初的PHP/FI发展经验PHP2.0、PHP3.0、PHP4.0,目前已经更新至PHP5.0;它的核心是其次代Zend引擎,并引入了对全新的PECL模块的支持。PHP5的最大特点是引入了面对对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的爱护。另外,在对象的集成等方面也不再存在问题。运用PHP5引进了类型提示和异样处理机制,能更有效的处理和避开错误的发生。犹如ASP具有Windows自己的开发平台一样,Zend也为PHP设计了全新的开发环境ZendStudio。这是一款集程序调试、系统发布以及开发环境为一体的PHP开发软件。这将大大简化PHP开发过程,并且缩短相应的测试周期。另外,Zend还将与IBM公司合作推出集成ZendIDE特性的Eclipse软件供大家运用。PHP还具有优秀的平台兼容性。PHP源于UNIX系统平台,尤其是PHP、MySQL、Apache和Linux组合,备受PHP爱好者的欢迎。不仅如此,PHP在Windows系列操作系统上也有精彩的表现。其良好的程序界面、语言易用性等特点吸引了微软的开发人员。目前,有消息称将来的Windows.NET开发环境将集成PHP,这也意味着PHP的用户群将日益壮大。PHP的特性:开放的源代码:全部的PHP源代码事实上都可以得到。

PHP是免费的。

基于服务器端:由于PHP是运行在服务器端的,即使再多的用户,再困难的程序也不会影响运行的速度。

跨平台:PHP可以运行在UNIX、LINUX、WINDOWS下。

嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。

简洁的语言:PHP坚持脚本语言为主,与Java以C++不同。

效率高:PHP消耗相当少的系统资源。

图像处理:用PHP动态创建图像3.2AJAX简介AJAX全称为“AsynchronousJavaScriptandXML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个恳求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法奢侈了很多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都须要向服务器发送恳求,应用的响应时间就依靠于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它运用SOAP或其它一些基于XML的webservice接口,并在客户端采纳JavaScript处理来自服务器的响应。因为在服务器和阅读器之间交换的数据大量削减,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出恳求的客户端机器上完成,所以Web服务器的处理时间也削减了。运用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避开了在网络上发送那些没有变更过的信息。Ajax不须要任何阅读器插件,但须要用户允许JavaScript在阅读器上执行。就像DHTML应用程序那样,Ajax应用程序必需在众多不同的阅读器和平台上经过严格的测试。随着Ajax的成熟,一些简化Ajax运用方法的程序库也相继问世。同样,也出现了另一种协助程序设计的技术,为那些不支持JavaScript的用户供应替代功能。3.3ORACLE技术Oracle应用产品包括财务、供应链、制造、项目管理、人力资源和市场与销售等150多个模块,荣获多项世界大奖,现已被全球近7600多家企业所采纳。由于在电子商务方面的杰出表现,Oracle公司在美国MonganStanley公司最新公布的权威性全球企业1000强中,从去年的第122名一跃成为第13名,成为全球其次大独立软件公司和最大的电子商务解决方案供应商。目前,Amazon和Dell等全球十个最大的Internet电子商务网站、全球十个最大的B-to-B网站中的九个、93%的上市公司、65家“财宝全球100强”企业均不谋而合地采纳Oracle电子商务解决方案。发展至今,Oracle已经发展至Oracle11g;11g数据库增加了Oracle透亮数据加密功能,将这种功能扩展到了卷级加密之外。11g还增加了表空间加密功能,可用来加密整个表、索引和所存储的其它数据。存储在数据库中的大型对象也可以加密。在Oracle11g中,XMLDB的性能又获得很大提高,XMLDB是Oracle数据库的一个组件,客户可以以本机方式存储和操作XML数据。11g增加了对二进制XML数据的支持,现在客户可以选择适合自己特定应用及性能需求的XML存储选项。3.4XML技术XML(ExtensibleMarkupLanguage)即可扩展标记语言,它与HTML一样,都是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。Xml是Internet环境中跨平台的,依靠于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简洁的数据存储语言,运用一系列简洁的标记描述数据,而这些标记可以用便利的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简洁易于驾驭和运用。XML与Access,Oracle和SQLServer等数据库不同,数据库供应了更强有力的数据存储和分析实力,例如:数据索引、排序、查找、相关一样性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简洁。这是一个看上去有点琐细的优点,但正是这点使XML别出心裁。XML的简洁使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更简洁的与Windows、MacOS,Linux以及其他平台下产生的信息结合,然后可以很简洁加载XML数据到程序中并分析他,并以XML格式输出结果。第四章系统设计4.1闲聊室角色设计管理员添加闲聊主题;设置闲聊角色;查看网友资料、警告、禁言、踢人;角色区分:运用不同颜色显示用户名、昵称;主持人(可选角色)查看网友资料、警告;角色区分:运用不同颜色显示用户名、昵称;嘉宾(可选角色)屏蔽某人发言;角色区分:运用不同颜色显示用户名、昵称;会员屏蔽某人发言;角色区分:显示用户名、昵称;网友屏蔽某人发言;角色区分:系统自动安排昵称;4.2闲聊室功能设计1、用户注册用户只有拥有自己的帐号才能才能登录到闲聊室系统中结交挚友,畅所欲言。这就须要到闲聊室注册页面进行注册。在注册页面可以注册用户名、密码等信息; 约束:用户注册时,用户名不行以重复,昵称可以重复; 用户注册后,可以特性化自己的昵称,完善自己的资料;2、群聊 正常闲聊,全部人都能看到每个人的发言;3、私聊 个人私聊屏,展示对方对自己所说的话,其他会员、网友看不到自己的私聊内容;4、屏蔽某人发言 屏蔽“某人”的发言后,自己不再看到“某人”的发言;5、查看网友资料 此功能为“管理员、主持人”所特有的权利,查看会员、网友个人资料、IP等;6、警告此功能为“管理员、主持人”所特有的权利;可以对“违规”会员、网友进行警告,提示其留意其言论;7、踢人 此功能为“管理员”所特有的权利;对多次“违规”警告的会员,仍旧进行“违规”行为、或发表不文明言论,由管理员对其进行踢人操作;在一段时间内禁止其接着进入闲聊室闲聊;8、闲聊内容特性化 发言的特性化;A、可以自行选择字体、颜色;B、为了防止恶意发言,限制发言间隔(可能会影响系统效率,可考虑其他方案)4.3系统数据库设计1、系统用户表:会员主表-FSM_MEMBER_BASICNAMECODEDATATYPELength会员IDMEMBERIDVARCHAR236会员登录名USERNAMEVARCHAR232密码PASSWORDVARCHAR232表4-12、闲聊主题管理--FSM_EXP_SUBJECTNAMECODEDATATYPELength主题IDSUBJECTIDVARCHAR28坐堂主题SUBJECTTITLEVARCHAR2100起先时间STIMEDATE结束时间ETIMEDATE主题内容SUBJECTCONTENTCLOBxml文件路径SUBJECTXMLPATHVARCHAR2300专家登陆名LOGINNAMEVARCHAR2200表4-23、名家基本信息表--FSM_EXPERT_BASICNAMECODEDATATYPELength名家ID EXPERTIDVARCHAR28前台账号 USERNAMEVARCHAR2200显示姓名 REALNAMEVARCHAR2100性别EXPERTSEXVARCHAR22联系电话 EXPERTTELEPHONEVARCHAR2100邮箱EXPERTEMAILVARCHAR2150国家/籍贯EXPERTCOUNTRYVARCHAR2200表4-34、名家角色关系表--FSM_EXP_ROLENAMECODEDATATYPELength主键IDIDVARCHAR232名家IDEXPERTIDVARCHAR28角色值ROLENUMBER2表4-45、闲聊主题相关人员表--FSM_EXP_PERSONNELNAMECODEDATATYPELength记录编号PERSONNELRECIDVARCHAR28坐堂主题编号SUBJECTIDVARCHAR28会员编号MEMBERIDVARCHAR236人员类型PERSONNELTYPENUMBER1会员登陆USERNAMEVARCHAR2200表4-5第五章系统模块和系统流程5.1系统模块图5-1系统模块图相关说明:如上图所示,系统共包括以上几个模块,用户注册/登陆模块、匿名用户闲聊模块、注册用户闲聊模块、主持人闲聊模块、嘉宾闲聊模块、管理员闲聊模块;注册/登陆模块:用户注册登陆后可以享受会员级别的待遇,可以向专家提问等等权限; 匿名用户闲聊模块:假如用户没有注册就进入了闲聊室,则他为匿名用户,闲聊的过程中,会有一些操作不能进行,比如向专家提问问题等 注册用户闲聊模块:用户注册登陆后可以进行闲聊,并且可以向专家进行提问等,提高了系统权限,使其更能充分利用系统资源; 主持人闲聊模块:主持人在此页面与嘉宾进行沟通,活跃气氛,不至于让嘉宾一个人来跟网友进行沟通; 嘉宾闲聊模块:嘉宾在此页面跟主持人进行沟通,以及对注册用户提出的问题进行作答,实现与用户及网友的沟通;管理员闲聊模块:管理员的言论也将发表在这个区域,跟网友进行互动,并对会员及分会员(匿名用户)进行管理;此外,管理员还有警告、踢人的权利;可以对“违规”会员、网友进行警告,提示其留意其言论;对多次“违规”警告的会员,仍旧进行“违规”行为、或发表不文明言论,由管理员对其进行踢人操作;在一段时间内禁止其接着进入闲聊室闲聊;5.2系统流程图5-2系统流程图 当用户登陆进入闲聊室,系统将推断其有没有登陆,假如已经登陆,则对其用户类型进行推断,依据不同的角色进入不同的闲聊模块;假如没有登陆,则干脆进入“匿名闲聊模块”,享有一部分权利;当其向嘉宾进行提问时,提示其进行登陆,假如没有注册,则干脆进入注册模块;假如网友选择注册并登陆后,则进入“注册用户闲聊模块”;第六章系统实现6.1在线注册用户只有拥有自己的帐号才能登录到闲聊室系统中结交挚友,向名家提问问题,畅所欲言。这就须要到闲聊室注册页面进行注册。在注册页面可以注册用户名、密码等信息,以完成注册。填写时要留意:A、用户名为登陆邮箱,格式必需正确,如:zhenna@yahooB、两次填写的密码必需大写六位且必需一样,否则会出错;C、留意肯定要填写验证码;这里主要是为了防止滥注册行为;D、注册后系统会想您注册的邮箱发送邮件,去邮箱把你的注册用户激活,才能正常运用,这里是为了防止其他网友用您的邮箱注册或是自己注册错误等等;详细如下图所示:图6-1密码填写错误图6-2填写正确6.2匿名闲聊页面图6-3上半部分为嘉宾谈话区域,主持人负责跟主持人进行沟通;其他闲聊室用户向嘉宾提问的问题,也有嘉宾在此区域回复;下部分为网友、闲聊室用户管理员等等人的闲聊显示区域;用户可以选择自己发言的字体颜色;可以选择对话的对象,假如想要跟某位网友沟通,只要点击他的用户名就可以把他添加到对象列条里面;但是匿名用户(没有注册的网友),对象不行以为嘉宾,只有注册过的用户才能向嘉宾提问问题;清屏功能,清除目前页面内的闲聊内容;6.3注册用户闲聊模块图6-4此页面的页面分布同匿名闲聊页面;唯一不同的地方就是,此页面内都是注册用户,也就是说都可以向嘉宾提问问题;清屏功能,清除目前页面内的闲聊内容;6.4主持人闲聊模块此页面左侧内容同注册用户闲聊模块的上部分;主持人在此页面与嘉宾进行沟通,活跃气氛,不至于让嘉宾一个人来跟网友进行沟通; 右侧为注册用户向嘉宾提问的问题列表,主持人可以把问题选择到嘉宾页面,来完成用户对嘉宾提问的问题,嘉宾再在其页面作答;此外,主持人可以选择自己的字体颜色,还有运用清屏功能,清除目前页面内的闲聊内容;如下图:图6-56.5嘉宾闲聊模块页面布局同主持人闲聊模块,左侧内容同注册用户闲聊模块的上部分;嘉宾在此页面跟主持人进行沟通,以及对注册用户提出的问题进行作答,实现与用户及网友的沟通; 右侧为注册用户向嘉宾提问的问题列表,嘉宾可以自己选择用户提问的问题,来进行选择作答;此外,嘉宾可以选择自己的字体颜色,还有运用清屏功能,清除目前页面内的闲聊内容;如下图:图6-66.6管理员闲聊模块页面的左侧部分为嘉宾回答网友问题,和主持人和嘉宾;右侧为网友闲聊屏,管理员的言论也将发表在这个区域,跟网友进行互动,并对会员及分会员(匿名用户)进行管理;管理员可以选择自己的字体颜色,还有运用清屏功能,清除目前页面内的闲聊内容;此外,管理员还有警告、踢人的权利;可以对“违规”会员、网友进行警告,提示其留意其言论;对多次“违规”警告的会员,仍旧进行“违规”行为、或发表不文明言论,由管理员对其进行踢人操作;在一段时间内禁止其接着进入闲聊室闲聊;图6-7第七章关键代码7.1AJAX定义Ajax简洁来说通过XmlRequest对象来向服务器发异步恳求,从服务器获得数据,然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得恳求数据。XMLRequest是ajax的核心机制,是一种支持异步恳求的技术。也就是javascript可以刚好向服务器提出恳求和处理响应,而不堵塞用户。达到无刷新的效果。但是,由于各阅读器之间存在差异,所以创建一个XMLRequest对象可能须要不同的方法。这个差异主要体现在IE和其它阅读器之间。下面是一个比较标准的创建XMLRequest对象的方法。functionCreateXml(){//非IE阅读器创建XmlRequest对象if(window.XmlRequest){xml=newXmlRequest();}//IE阅读器创建XmlRequest对象if(window.ActiveXObject){try{xml=newActiveXObject("Microsoft.XML");}catch(e){try{xml=newActiveXObject("msxml2.XML");}catch(ex){}}}}functionUstbwuyi(){vardata=document.getElementById("username").value;CreateXml();if(!xml){alert("创建xml对象异样!");returnfalse;}xml.open("POST",url,false);xml.onreadystatechange=function(){if(xml.readyState==4){document.getElementById("user1").innerHTML="数据正在加载...";if(xml.status==200){document.write(xml.responseText);}}}xml.send();}如上所示,函数首先检查XMLRequest的整体状态并且保证它已经完成(readyStatus=4),即数据已经发送完毕。然后依据服务器的设定询问恳求状态,假如一切已经就绪(status=200),那么就执行下面须要的操作。对于XmlRequest的两个方法,open和send,其中open方法指定了一些参数,用来通过指定的方式来执行发送恳求操作。XMLRequest是完全用来向服务器发出一个恳求的,它的作用也局限于此,但它的作用是整个ajax实现的关键,因为ajax无非是两个过程,发出恳求和响应恳求。并且它完全是一种客户端的技术。而XMLRequest正是处理了服务器端和客户端通信的问题所以才会如此的重要。7.2注册模块 用户进入注册页面,填写注册信息,然后点击提交按钮来完成注册;在这过程中我们要对用户所输入的内容进行检查,看是按要求填写,假如不符合填写要求,则返回页面,让用户来完善自己所填写的信息;用户信息通过验证后,则注册胜利,同时向用户的邮箱发送验证邮件,用户通过登录邮箱来激活自己的账户;以下是相关的代码:if($mail==""){ echo"邮箱不能为空!!"; exit();}elseif(!ereg("^[-a-zA-Z0-9_\.]+\@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,5}$",$mail)){ echo"您输入的邮箱有误,请依据正确格式输入,如:admin@admin"; exit();}if(strlen($pwd)<6){ echo"您设置的密码不足6位,请重新填写!!"; exit();}else{ //注册FSM_MEMBER_BASIC $mid=$member->regMember($mail,$pwd,$mail,$mail); if($mid==""){ echo'末知缘由,注册失败!!'; exit(); } //设置cookie setcookie("LOGIN","1",NULL,'/',admin'); setcookie("USERNAME",$mail,NULL,'/',admin'); setcookie("MEMBERID",$mid,NULL,'/',admin'); $member->addevent($mid); //为积分增加事务表添加记录 //发送邮件 require_once(ROOT_DIR."class/Member/smtpLong.class.php"); //实例化smtp类,设置发信服务器,账号和密码 $smtp=newsmtp("11","admin@admin","888888"); //设置发信人 $smtp->setFrom("webserver@admin"); //设置收信人,多个用,隔开 $smtp->setTo($mail); //设置标题 $smtp->setSubject("感谢您成为admin注册用户"); $body=file_get_contents("include/mailTemplate/mail_reg_tpl.htm");//以找回密码为例 preg_match_all("/{\#[a-zA-z0-9]+\#}/",$body,$matches,PREG_PATTERN_ORDER); foreach($matches[0]as$val){ $str=substr($val,2,strlen($val)-4); $body=str_replace($val,$$str,$body); } //设置邮件内容 $smtp->setBody($body); //发送邮件,在发信任务中,任何一个发送出现问题,即返回false}7.3闲聊模块 用户进入闲聊室后,进行跟专家、网友的互动、闲聊,以下是从XML文件读取信息,以及写入信息的相关代码: 其中GetAJAX()和showInfo()方法,用来提取闲聊信息,并用AJAX技术无刷新输出到用户界面;SendAJAX()方法用来向xml提交信息,并写入到XML中; functionGetAJAX(){ xml=newcreateRequest(); varDataToSend="fileName="+fileName.value+"&responseTime="+responseTime; alert('test'); xml.open("POST","include/response.php",true); alert('back'); xml.onreadystatechange=showInfo; xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); xml.send(DataToSend);}functionshowInfo(){ if(xml.readyState==4){ if(xml.status==200){ varresponseValue=xml.responseText; if(responseValue=="over"){ alert("闲聊室已经关闭,欢迎下次光临!"); deleteCookie("thisValue"); window.close(); }else{ if(responseValue=="kick"){ alert("你已经被踢出闲聊室"); deleteCookie("thisValue"); window.close(); }else{ //分解text eval("vararr="+responseValue); vartheTime=arr.time; if(theTime!='') responseTime=theTime; Edit.innerHTML+=arr.lines[0].word; Down(); } } }}}functionSendAJAX(){ varfiled=ChatText2.value.replace(/(^\s*)|(\s*$)/g,""); varsendDate=newDate(); varsendTime=sendDate.getTime(); varg=ChatText2.value; varcompareTime=eval((sendTime-CommonTime)/1000);//时间比较 if(filed!=""){ if(filed.length>100){ alert("你发言的字数不能超过100"); }else{ if(objectChat.options[objectChat.selectedIndex].value==username){ alert("不能和自己私聊"); }else{ if(compareTime<=2){ alert("对不起,您在2秒内只能发一次言"); }else{ if(objectChat.options[objectChat.selectedIndex].value=="嘉宾"){alert("只有登录后才可以向嘉宾提问题!"); }else{ CommonTime=sendTime; //组合数据 varDataToSend="ChatText2="+ChatText2.value+"&objectChat="+objectChat.options[objectChat.selectedIndex].value+"&fileName="+fileName.value+"&usercolor="+usercolor.value; send=newcreateRequest();//调用createRequest();方法得到REQUEST对像 send.open("POST","include/edit_recieve.php",true); send.onreadystatechange=sendInfo; send.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); send.send(DataToSend); ChatText2.value=""; GetAJAX(); } } } } } }7.4XML解析模块PHP对XML供应了的强大的支持。它运用了一个XML的“解析器”,并且为了支持这个解析器,它供应了很多个XML的解析函数。下面采纳最常用的PHP通过DOM的方式来解析XML文件;DOM是一个与平台、语言无关的程序接口,它供应了动态访问和更新文档的内容、结构与风格的手段。可以对文当作进一步的处理,并将处理的结果更新到表示页面。以下是相关代码:classselectXMLextendsDOMDocument{ private$file; private$query; private$stringXML; private$xpath; private$nodeList; private$str=""; private$arr; private$debug=0;//做为标识,是否在调试状态,是的话,输出调试信息 private$isAnon=""; function__construct($file){ isset($_COOKIE['chatName'])?$this->isAnon=$_COOKIE['chatName']:$this->isAnon=$_COOKIE['LOGINANON']; if(file_exists($file)){ $this->file=$file; }else{ exit("文件不存在"); } $this->load($this->file); $this->xpath=newDOMXPath($this); } /* *select方法,非管理员返回信息:$query,xml查询语句;$len,返回的记录条数;$arr,用户名所对应了类型; */ functionselect($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($arras$key=>$value) { $str_arr.=$key.":".$value.";"; } echo"Theselectxmlquery:$query;theinputlen:$len;theactualdisplayrecordlentth:$act_len;"; } for($i=0;$i<$act_len;$i++){//把xml信息已文本的形式返回 $mark=""; $value=$this->nodeList->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'); //$t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论