关闭

关闭

关闭

封号提示

内容

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

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

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

上传者: 自you女娲补锅 2017-09-21 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《毕业设计(论文)-基于Web的聊天室系统设计与实现doc》,可适用于IT/计算机领域,主题内容包含毕业设计(论文)基于Web的聊天室系统设计与实现中国石油大学(北京)现代远程教育毕业设计(论文)基于Web的聊天室系统设计与实现年月日中国石油大学,符等。

毕业设计(论文)基于Web的聊天室系统设计与实现中国石油大学(北京)现代远程教育毕业设计(论文)基于Web的聊天室系统设计与实现年月日中国石油大学,北京,现代远程教育毕业设计,论文,基于Web的聊天室系统设计与实现摘要Web聊天室是Web站点上网友们进行交流的秘密武器注重的实时的交流、沟通、讨论不像BBS一样需要等待盖楼的折磨聊天室其实就是多人共同使用的CGI程序。程序将每个人输入的字符串依系统接收完成的时间整理过后再送给各个用户。而Web聊天室和BBS的聊天室不同的地方是聊天室可以每收到一句话就马上分送给每位在聊天室的网络用户Web由于CGI程序不能像BBS的telnet一直连接WebCGI必须以最快的速度将信息送出然后结束连接。WEB技术的广泛应用对整个世界政治、经济、文化等各方面产生了十分广泛和深远的影响。它奇迹般地崛起、爆炸般地扩容令全世界瞩目。WEB互联网技术之所以能在如此短的时间内获得社会各方面的认可并在全球范围内推广应用是因为互联网拥有庞大的信息资源、给人类提供全新的交往方式、存在着巨大的商机、虚拟现实技术的广泛应用等等是促进互联网发展的重要因素其中交互性和实时性尤为重要选择此课题的动机和意义就是为了更加深入的了解WEBCGI程序的运行同时对web应用程序有一定了解和掌握体验WEB互联网技术的飞速发展关键词:聊天室WEBCGI程序互联网实时交流i中国石油大学,北京,现代远程教育毕业设计,论文,目录第一章引言WEB聊天室的引入系统开发的意义系统开发技术路线第二章可行性分析经济可行性技术上的可行性第三章系统技术简介PHP技术AJAX简介ORACLE技术XML技术第四章系统设计聊天室角色设计聊天室功能设计系统数据库设计第五章系统模块和系统流程系统模块系统流程第六章系统实现在线注册匿名聊天页面注册用户聊天模块主持人聊天模块嘉宾聊天模块管理员聊天模块第七章关键代码AJAX定义注册模块聊天模块XML解析模块第八章总结参考文献ii中国石油大学,北京,现代远程教育毕业设计,论文,第一章引言Web聊天室的引入随着信息流量的日益加大计算机网络技术得到飞速发展各类网站不断涌现出来。而最受青睐的应属具有动态效果、实施性质的相互交流的的网络平台其页面的内容使用的不仅仅是标准的HTML代码。而是加入了各种“交互性”。将浏览器作为客户端界面这将是今后WEB发展的大事所趋。如何与别人更好地交流,是当前人们普遍关心的问题。人们通过网站可以展示产品发布最新动态与用户进行交流和沟通与合作伙伴建立联系以及开展电子商务等。其中网上聊天系统是构成网站的一个重要组成部分为人们之间进行交流和联系提供的一个平台。系统开发的意义Internet是目前世界上最大的计算机互联网络它遍布全球将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的易于被人们所接受的信息检索手段WorldWideWeb(简称WWW)发展十分迅速成为目前世界上最大的信息资源宝库。据估计目前Internet上已有上百万个Web站点其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域其用户群十分庞大因此建设一个好的Web站点对于一个机构的发展十分重要。近年来计算机技术的快速发展特别是计算机网络的发展越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格开发出更方便、更实用的网络工具。各种在线服务系统更是深刻的影响了人们的联系和交流方式使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式已经不能满足现代生活的需要。网上聊天系统作为一种方便消费者与人们之间联系的实用系统便应运而生。网上聊天系统是为人们进行交流和联系中国石油大学,北京,现代远程教育批次专升本毕业论文提供的一个平台。通过提供完善的网上聊天系统的管理可以达到增进人们与消费者之间、消费者与消费者之间的交流和联系的目的。系统开发技术路线系统的开发采用当前最为火爆的技术PHP语言进行开发系统测持久性设计采用XMLORACLE技术前端与数据存储之间的交互采用PHPAJAX来进行系统运行平台采用LINUXWeb端服务器为APACHE中国石油大学,北京,现代远程教育批次专升本毕业论文第二章可行性分析经济可行性主要是对系统的经济效益进行评价由于本系统运行的平台对配置并不是很高实现起来也比较方便可以在资源上、人力上节约很大的开支开发经费对于个人单位在经济上是可以接受的并且本系统实施后可以显著提高工作效率有助于完全实现信息的实时交流。提高网站的PV为网站带来更大的效益所以本系统在经济上是可行的。技术上的可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作硬、软件能否满足开发者的需要等。该管理系统采用了当前流行的BrowserServer模式进行开发。三层的BrowserServer体系结构具有许多传统ClientServer体系结构不具备的优点而且又紧密的结合了InternetIntranet技术是技术发展的大势所趋它把应用系统带入了一个崭新的发展时代。数据库服务器选用ORACLE数据库它能够处理大量数据同时保持数据的完整性并提供许多高级管理功能并且有益于系统的扩展。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此系统的开发平台已成熟可行。硬件方面科技飞速发展的今天硬件更新的速度越来越快容量越来越大可靠性越来越高价格越来越低其硬件平台完全能满足此系统的需要。PHP、XML、ORACLE、AJAX等技术现在说来已经是相当的成熟已经有海量的网站采用此类技术进行了开发PHP网站已经非常常见AJAX技术也有大量的应用所以在技术上来说也是完全可行的中国石油大学,北京,现代远程教育批次专升本毕业论文第三章系统技术简介PHP技术PHP是“PHP:HypertextPreprocessor”的缩写即“超文本预处理器”。PHP是一种功能强大并且简便易用的脚本语言。PHP是一种简单、轻便的服务器端脚本语言。PHP最初是作为一个快速、实用的工具包出现的。年为了在自己的网站上增加一个小巧而实用的访客追踪系统RasmusLerdorf编写了PHP的雏形程序。这是一个用Perl封装的简单工具。由于使用效果并不理想Rasmus又用C语言重写了这个工具PHP发展至今已经从最初的PHPFI发展经历PHP、PHP、PHP目前已经更新至PHP它的核心是第二代Zend引擎并引入了对全新的PECL模块的支持。PHP的最大特点是引入了面向对象的全部机制并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类并且能够以多种方法实现类的保护。另外在对象的集成等方面也不再存在问题。使用PHP引进了类型提示和异常处理机制能更有效的处理和避免错误的发生。如同ASP具有Windows自己的开发平台一样Zend也为PHP设计了全新的开发环境ZendStudio。这是一款集程序调试、系统发布以及开发环境为一体的PHP开发软件。这将大大简化PHP开发过程并且缩短相应的测试周期。另外Zend还将与IBM公司合作推出集成ZendIDE特性的Eclipse软件供大家使用。PHP还具有优秀的平台兼容性。PHP源于UNIX系统平台尤其是PHP、MySQL、Apache和Linux组合备受PHP爱好者的欢迎。不仅如此PHP在Windows系列操作系统上也有出色的表现。其良好的程序界面、语言易用性等特点吸引了微软的开发人员。目前有消息称未来的WindowsNET开发环境将集成PHP这也意味着PHP的用户群将日益壮大。PHP的特性:开放的源代码:所有的PHP源代码事实上都可以得到。中国石油大学,北京,现代远程教育批次专升本毕业论文PHP是免费的。基于服务器端:由于PHP是运行在服务器端的即使再多的用户再复杂的程序也不会影响运行的速度。跨平台:PHP可以运行在UNIX、LINUX、WINDOWS下。嵌入HTML:因为PHP可以嵌入HTML语言所以学习起来并不困难。简单的语言:PHP坚持脚本语言为主与Java以C不同。效率高:PHP消耗相当少的系统资源。图像处理:用PHP动态创建图像AJAX简介AJAX全称为“AsynchronousJavaScriptandXML”(异步JavaScript和XML)是指一种创建交互式网页应用的网页开发技术。传统的web应用允许用户填写表单(form)当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单然後返回一个新的网页。这个做法浪费了许多带宽因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。与此不同AJAX应用可以仅向服务器发送并取回必需的数据它使用SOAP或其它一些基于XML的webservice接口并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成所以Web服务器的处理时间也减少了。使用Ajax的最大优点就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作并避免了在网络上发送那些没有改变过的信息。Ajax不需要任何浏览器插件但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样Ajax应用程序必须在众多不同的浏览器中国石油大学,北京,现代远程教育批次专升本毕业论文和平台上经过严格的测试。随着Ajax的成熟一些简化Ajax使用方法的程序库也相继问世。同样也出现了另一种辅助程序设计的技术为那些不支持JavaScript的用户提供替代功能。ORACLE技术Oracle应用产品包括财务、供应链、制造、项目管理、人力资源和市场与销售等多个模块荣获多项世界大奖,现已被全球近多家企业所采用。由于在电子商务方面的杰出表现Oracle公司在美国MonganStanley公司最新公布的权威性全球企业强中从去年的第名一跃成为第名成为全球第二大独立软件公司和最大的电子商务解决方案供应商。目前Amazon和Dell等全球十个最大的Internet电子商务网站、全球十toB网站中的九个、的上市COM公司、家“财富全球个最大的B强”企业均不约而同地采用Oracle电子商务解决方案。发展至今Oracle已经发展至Oraclegg数据库增强了Oracle透明数据加密功能将这种功能扩展到了卷级加密之外。g还增加了表空间加密功能可用来加密整个表、索引和所存储的其它数据。存储在数据库中的大型对象也可以加密。在Oracleg中XMLDB的性能又获得很大提高XMLDB是Oracle数据库的一个组件客户可以以本机方式存储和操作XML数据。g增加了对二进制XML数据的支持现在客户可以选择适合自己特定应用及性能需求的XML存储选项。XML技术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格式输出结果。中国石油大学,北京,现代远程教育批次专升本毕业论文第四章系统设计聊天室角色设计、管理员添加聊天主题设置聊天角色查看网友资料、警告、禁言、踢人角色区分:使用不同颜色显示用户名、昵称、主持人(可选角色)查看网友资料、警告角色区分:使用不同颜色显示用户名、昵称、嘉宾(可选角色)屏蔽某人发言角色区分:使用不同颜色显示用户名、昵称、会员屏蔽某人发言角色区分:显示用户名、昵称、网友屏蔽某人发言角色区分:系统自动分配昵称聊天室功能设计、用户注册用户只有拥有自己的帐号才能才能登录到聊天室系统中结交朋友畅所欲言。这就需要到聊天室注册页面进行注册。在注册页面可以注册用户名、密码等信息约束:用户注册时用户名不可以重复昵称可以重复用户注册后可以个性化自己的昵称完善自己的资料中国石油大学,北京,现代远程教育批次专升本毕业论文、群聊正常聊天所有人都能看到每个人的发言、私聊个人私聊屏展示对方对自己所说的话其他会员、网友看不到自己的私聊内容、屏蔽某人发言屏蔽“某人”的发言后自己不再看到“某人”的发言、查看网友资料此功能为“管理员、主持人”所特有的权利查看会员、网友个人资料、IP等、警告此功能为“管理员、主持人”所特有的权利可以对“违规”会员、网友进行警告提示其注意其言论、踢人此功能为“管理员”所特有的权利对多次“违规”警告的会员仍然进行“违规”行为、或发表不文明言论由管理员对其进行踢人操作在一段时间内禁止其继续进入聊天室聊天、聊天内容个性化发言的个性化A、可以自行选择字体、颜色B、为了防止恶意发言限制发言间隔(可能会影响系统效率可考虑其他方案)系统数据库设计、系统用户表:会员主表FSMMEMBERBASICNAMECODEDATATYPELength会员IDMEMBERIDVARCHAR中国石油大学,北京,现代远程教育批次专升本毕业论文会员登录名USERNAMEVARCHAR密码PASSWORDVARCHAR表、聊天主题管理FSMEXPSUBJECTNAMECODEDATATYPELength主题IDSUBJECTIDVARCHAR坐堂主题SUBJECTTITLEVARCHAR开始时间STIMEDATE结束时间ETIMEDATE主题内容SUBJECTCONTENTCLOBxml文件路径SUBJECTXMLPATHVARCHAR专家登陆名LOGINNAMEVARCHAR表、名家基本信息表FSMEXPERTBASICNAMECODEDATATYPELength名家IDEXPERTIDVARCHAR前台账号USERNAMEVARCHAR显示姓名REALNAMEVARCHAR性别EXPERTSEXVARCHAR联系电话EXPERTTELEPHONEVARCHAR邮箱EXPERTEMAILVARCHAR国家籍贯EXPERTCOUNTRYVARCHAR表、名家角色关系表FSMEXPROLE中国石油大学,北京,现代远程教育批次专升本毕业论文NAMECODEDATATYPELength主键IDIDVARCHAR名家IDEXPERTIDVARCHAR角色值ROLENUMBER表、聊天主题相关人员表FSMEXPPERSONNELNAMECODEDATATYPELength记录编号PERSONNELRECIDVARCHAR坐堂主题编号SUBJECTIDVARCHAR会员编号MEMBERIDVARCHAR人员类型PERSONNELTYPENUMBER会员登陆USERNAMEVARCHAR表中国石油大学,北京,现代远程教育批次专升本毕业论文第五章系统模块和系统流程系统模块聊天室系统匿名网友聊天模块注册用户聊天模块主持人聊天模块注册登陆模块嘉宾聊天模块管理员聊天模块图系统模块图相关说明:如上图所示系统共包括以上几个模块用户注册登陆模块、匿名用户聊天模块、注册用户聊天模块、主持人聊天模块、嘉宾聊天模块、管理员聊天模块注册登陆模块:用户注册登陆后可以享受会员级别的待遇可以向专家提问等等权限匿名用户聊天模块:如果用户没有注册就进入了聊天室则他为匿名用户聊天的过程中会有一些操作不能进行比如向专家提问问题等注册用户聊天模块:用户注册登陆后可以进行聊天并且可以向专家进行提问等提高了系统权限使其更能充分利用系统资源主持人聊天模块:主持人在此页面与嘉宾进行交流活跃气氛不至于中国石油大学,北京,现代远程教育批次专升本毕业论文让嘉宾一个人来跟网友进行交流嘉宾聊天模块:嘉宾在此页面跟主持人进行交流以及对注册用户提出的问题进行作答实现与用户及网友的交流管理员聊天模块:管理员的言论也将发表在这个区域跟网友进行互动并对会员及分会员(匿名用户)进行管理此外管理员还有警告、踢人的权利可以对“违规”会员、网友进行警告提示其注意其言论对多次“违规”警告的会员仍然进行“违规”行为、或发表不文明言论由管理员对其进行踢人操作在一段时间内禁止其继续进入聊天室聊天系统流程没有注册继续匿名聊天匿名提示否向专家提问聊天模块注册登陆注册用户是否一般用户注册并登陆登陆聊天模块注册登陆是否登陆聊天室嘉宾嘉宾聊天模块判断是用户类型主持人主持人聊天模块管理员管理员聊天模块图系统流程图当用户登陆进入聊天室系统将判断其有没有登陆如果已经登陆则对其用户类型进行判断根据不同的角色进入不同的聊天模块如果没有登陆则直接进入“匿名聊天模块”享有一部分权利当其向嘉宾进行提问时提示其进行登陆如果没有注册则直接进入注册模块如果网友选择注册并登陆后则进入“注册用户聊天模块”中国石油大学,北京,现代远程教育批次专升本毕业论文第六章系统实现在线注册用户只有拥有自己的帐号才能登录到聊天室系统中结交朋友向名家提问问题畅所欲言。这就需要到聊天室注册页面进行注册。在注册页面可以注册用户名、密码等信息以完成注册。填写时要注意:A、用户名为登陆邮箱格式必须正确如:zhennayahoocomcnB、两次填写的密码必须大写六位且必须一致否则会出错C、注意一定要填写验证码这里主要是为了防止滥注册行为D、注册后系统会想您注册的邮箱发送邮件去邮箱把你的注册用户激活才能正常使用这里是为了防止其他网友用您的邮箱注册或是自己注册错误等等具体如下图所示:图密码填写错误中国石油大学,北京,现代远程教育批次专升本毕业论文图填写正确匿名聊天页面图上半部分为嘉宾谈话区域主持人负责跟主持人进行交流其他聊天室用户向嘉宾提问的问题也有嘉宾在此区域回复中国石油大学,北京,现代远程教育批次专升本毕业论文下部分为网友、聊天室用户管理员等等人的聊天显示区域用户可以选择自己发言的字体颜色可以选择对话的对象如果想要跟某位网友交流只要点击他的用户名就可以把他添加到对象列条里面但是匿名用户(没有注册的网友)对象不可以为嘉宾只有注册过的用户才能向嘉宾提问问题清屏功能清除目前页面内的聊天内容注册用户聊天模块图此页面的页面分布同匿名聊天页面唯一不同的地方就是此页面内都是注册用户也就是说都可以向嘉宾提问问题清屏功能清除目前页面内的聊天内容中国石油大学,北京,现代远程教育批次专升本毕业论文主持人聊天模块此页面左侧内容同注册用户聊天模块的上部分主持人在此页面与嘉宾进行交流活跃气氛不至于让嘉宾一个人来跟网友进行交流右侧为注册用户向嘉宾提问的问题列表主持人可以把问题选择到嘉宾页面来完成用户对嘉宾提问的问题嘉宾再在其页面作答此外主持人可以选择自己的字体颜色还有使用清屏功能清除目前页面内的聊天内容如下图:图嘉宾聊天模块页面布局同主持人聊天模块左侧内容同注册用户聊天模块的上部分嘉宾在此页面跟主持人进行交流以及对注册用户提出的问题进行作答中国石油大学,北京,现代远程教育批次专升本毕业论文实现与用户及网友的交流右侧为注册用户向嘉宾提问的问题列表嘉宾可以自己选择用户提问的问题来进行选择作答此外嘉宾可以选择自己的字体颜色还有使用清屏功能清除目前页面内的聊天内容如下图:图管理员聊天模块页面的左侧部分为嘉宾回答网友问题和主持人和嘉宾右侧为网友聊天屏管理员的言论也将发表在这个区域跟网友进行互动并对会员及分会员(匿名用户)进行管理管理员可以选择自己的字体颜色还有使用清屏功能清除目前页面内的聊天内容此外管理员还有警告、踢人的权利可以对“违规”会员、网友进行中国石油大学,北京,现代远程教育批次专升本毕业论文警告提示其注意其言论对多次“违规”警告的会员仍然进行“违规”行为、或发表不文明言论由管理员对其进行踢人操作在一段时间内禁止其继续进入聊天室聊天图中国石油大学,北京,现代远程教育批次专升本毕业论文第七章关键代码AJAX定义Ajax简单来说通过XmlHttpRequest对象来向服务器发异步请求从服务器获得数据然后用javascript来操作DOM而更新页面。这其中最关键的一步就是从服务器获得请求数据。XMLHttpRequest是ajax的核心机制是一种支持异步请求的技术。也就是javascript可以及时向服务器提出请求和处理响应而不阻塞用户。达到无刷新的效果。但是由于各浏览器之间存在差异所以创建一个XMLHttpRequest对象可能需要不同的方法。这个差异主要体现在IE和其它浏览器之间。下面是一个比较标准的创建XMLHttpRequest对象的方法。functionCreateXmlHttp(){非IE浏览器创建XmlHttpRequest对象if(windowXmlHttpRequest){xmlhttp=newXmlHttpRequest()}IE浏览器创建XmlHttpRequest对象if(windowActiveXObject){try{xmlhttp=newActiveXObject("MicrosoftXMLHTTP")}catch(e){try{xmlhttp=newActiveXObject("msxmlXMLHTTP")}catch(ex){}}}}functionUstbwuyi(){vardata=documentgetElementById("username")valueCreateXmlHttp()if(!xmlhttp){alert("创建xmlhttp对象异常~")returnfalse中国石油大学,北京,现代远程教育批次专升本毕业论文}xmlhttpopen("POST",url,false)xmlhttponreadystatechange=function(){if(xmlhttpreadyState==){documentgetElementById("user")innerHTML="数据正在加载"if(xmlhttpstatus==){documentwrite(xmlhttpresponseText)}}}xmlhttpsend()}如上所示函数首先检查XMLHttpRequest的整体状态并且保证它已经完成(readyStatus=)即数据已经发送完毕。然后根据服务器的设定询问请求状态如果一切已经就绪(status=)那么就执行下面需要的操作。对于XmlHttpRequest的两个方法open和send其中open方法指定了一些参数用来通过指定的方式来执行发送请求操作。XMLHttpRequest是完全用来向服务器发出一个请求的它的作用也局限于此但它的作用是整个ajax实现的关键因为ajax无非是两个过程发出请求和响应请求。并且它完全是一种客户端的技术。而XMLHttpRequest正是处理了服务器端和客户端通信的问题所以才会如此的重要。注册模块用户进入注册页面填写注册信息然后点击提交按钮来完成注册在这过程中我们要对用户所输入的内容进行检查看是按要求填写如果不符合填写要求则返回页面让用户来完善自己所填写的信息用户信息通过验证后则注册成功同时向用户的邮箱发送验证邮件用户通过登录邮箱来激活自己的账户以下是相关的代码:if($mail==""){echo"邮箱不能为空~~"exit()}elseif(!ereg("^azAZ(AZazAZaz)AZaz{,}$",$mail)){中国石油大学,北京,现代远程教育批次专升本毕业论文echo"您输入的邮箱有误请按照正确格式输入如:adminadmincom"exit()}if(strlen($pwd)<){echo"您设置的密码不足位请重新填写!!"exit()}else{注册FSMMEMBERBASIC$mid=$member>regMember($mail,$pwd,$mail,$mail)if($mid==""){echo'末知原因注册失败~~'exit()}设置cookiesetcookie("LOGIN","",,'',admincom')setcookie("USERNAME",$mail,,'',admincom')setcookie("MEMBERID",$mid,,'',admincom')$member>addevent($mid)为积分增加事件表添加记录发送邮件requireonce(ROOTDIR"classMembersmtpLongclassphp")实例化smtp类设置发信服务器账号和密码$smtp=newsmtp("","adminadmincom","")设置发信人$smtp>setFrom("webserveradmincom")设置收信人多个用,隔开$smtp>setTo($mail)设置标题$smtp>setSubject("感谢您成为admincom注册用户")$body=filegetcontents("includemailTemplatemailregtplhtm")以找回密码为例pregmatchall("{#azAz#}",$body,$matches,PREGPATTERNORDER)foreach($matchesas$val){$str=substr($val,,strlen($val))$body=strreplace($val,$$str,$body)}设置邮件内容$smtp>setBody($body)发送邮件在发信任务中任何一个发送出现问题即返回false}中国石油大学,北京,现代远程教育批次专升本毕业论文聊天模块用户进入聊天室后进行跟专家、网友的互动、聊天以下是从XML文件读取信息以及写入信息的相关代码:其中GetAJAX()和showInfo()方法用来提取聊天信息并用AJAX技术无刷新输出到用户界面SendAJAX()方法用来向xml提交信息并写入到XML中functionGetAJAX(){xmlhttp=newcreateRequest()varDataToSend="fileName="fileNamevalue"responseTime="responseTimealert('test')xmlhttpopen("POST","includeresponsephp",true)alert('back')xmlhttponreadystatechange=showInfoxmlhttpsetRequestHeader("ContentType","applicationxwwwformurlencoded")xmlhttpsend(DataToSend)}functionshowInfo(){if(xmlhttpreadyState==){if(xmlhttpstatus==){varresponseValue=xmlhttpresponseTextif(responseValue=="over"){alert("聊天室已经关闭欢迎下次光临~")deleteCookie("thisValue")windowclose()}else{if(responseValue=="kick"){alert("你已经被踢出聊天室")deleteCookie("thisValue")windowclose()}else{分解texteval("vararr="responseValue)vartheTime=arrtimeif(theTime!='')responseTime=theTimeEditinnerHTML=arrlineswordDown()中国石油大学,北京,现代远程教育批次专升本毕业论文}}}}}functionSendAJAX(){varfiled=ChatTextvaluereplace((^s*)|(s*$)g,"")varsendDate=newDate()varsendTime=sendDategetTime()varg=ChatTextvaluevarcompareTime=eval((sendTimeCommonTime))时间比较if(filed!=""){if(filedlength>){alert("你发言的字数不能超过")}else{if(objectChatoptionsobjectChatselectedIndexvalue==username){alert("不能和自己私聊")}else{if(compareTime<=){alert("对不起您在秒内只能发一次言")}else{if(objectChatoptionsobjectChatselectedIndexvalue=="嘉宾"){alert("只有登录后才可以向嘉宾提问题~")}else{CommonTime=sendTime组合数据varDataToSend="ChatText="ChatTextvalue"objectChat="objectChatoptionsobjectChatselectedIndexvalue"fileName="fileNamevalue"usercolor="usercolorvaluesendhttp=newcreateRequest()调用createRequest()方法得到HTTPREQUEST对像sendhttpopen("POST","includeeditrecievephp",true)sendhttponreadystatechange=sendInfosendhttpsetRequestHeader("ContentType","applicationxwwwformurlencoded")sendhttpsend(DataToSend)ChatTextvalue=""GetAJAX()}}}中国石油大学,北京,现代远程教育批次专升本毕业论文}}}XML解析模块PHP对XML提供了的强大的支持。它使用了一个XML的“解析器”并且为了支持这个解析器它提供了很多个XML的解析函数。下面采用最常用的PHP通过DOM的方式来解析XML文件DOM是一个与平台、语言无关的程序接口它提供了动态访问和更新文档的内容、结构与风格的手段。可以对文当作进一步的处理并将处理的结果更新到表示页面。以下是相关代码:classselectXMLextendsDOMDocument{private$fileprivate$queryprivate$stringXMLprivate$xpathprivate$nodeListprivate$str=""private$arrprivate$debug=做为标识是否在调试状态是的话输出调试信息private$isAnon=""functionconstruct($file){isset($COOKIE'chatName')$this>isAnon=$COOKIE'chatName':$this>isAnon=$COOKIE'LOGINANON'if(fileexists($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)$nodelistlen=$this>nodeList>lengthif($nodelistlen)$actlen=($len>=$this>nodeList>length$this>nodeList>length:$len)else$actlen=$str=""if($this>debug==){*uxc:*foreach($arras$key=>$value){$strarr=$key":"$value""}echo"Theselectxmlquery:$querytheinputlen:$lentheactualdisplayrecordlentth:$actlen"}for($i=$i<$actlen$i){把xml信息已文本的形式返回$mark=""$value=$this>nodeList>item($i)$id=$value>getAttribute('id')$from=$value>getAttribute('from')$to=$value>getAttribute('to')$stripfrom=striptags($actualfrom)$stripto=striptags($actalto)$usercolor=$value>getAttribute('usercolor')$to=="大家",对所有的人说话,否则就是私聊if($to=="大家"){$mark="<aonclick="select('$from','$from')">"$from"<a>:"}elseif($to==$this>isAnon||$from==$this>isAnon){$mark="<fontcolor=red>私<font><aonclick="select('$from','$from')">"$from"<a>对"$to":"}if($mark!=""){if($from=="管理员")$str="$mark<fontolor='$usercolor'><b>"$value>firstChild>nodeValue"<b><font><br>"else{$str="$mark<fontcolor='$usercolor'>"$value>firstChild>nodeValue"<font><br>"}}中国石油大学,北京,现代远程教育批次专升本毕业论文}$lastlen=$actlen把最后一条记录的时间给session用来算下次时间偏量if($actlen)$responseTime=$this>nodeList>item($lastlen)>getAttribute('datetime')$str=addslashes($str)return"{time:'$responseTime',lines:{word:'$str'}}"}中国石油大学,北京,现代远程教育批次专升本毕业论文第八章总结()PHPAJAXXML模式的聊天室开发可以实现页面的实时更新为用户带来好的体验同时文件存储存储在XML中避免了程序对数据库的一次次读取在一定程度上提高的系统的效率但是还是存在一定的问题的比如写入XML文件有可能会因为特殊字符而导致系统写入XML失败甚至造成XML乱码另一方面XML文件如果太大也有可可能会出错这些问题都是要考虑的()二十一世界是一个知识突飞猛进的时代渐渐的已经出现了更加适合做聊天室的技术FLEX在flash基础上发展起来的flex技术可以做出更好的效果大大提高了用户体验另外出现的新技术分布式的高速缓存服务器memcached技术可以实现页面的快速刷新它将是一个个更好的选择所以聊天室的制作可以采用flexmemcached来实现也许会更好中国石油大学,北京,现代远程教育毕业设计,论文,参考文献美RasmusLerdorfKevinTatroe著(PHP程序设计(中国电力出版社年月(HughEWilliams等著(PHPMYSQLWeb数据库应用开发指南(中国电力出版社年月(STERLINGHUGHES等著PHP经典实例中国电力出版社年月(美)LeonAtkinson著MySQL核心编程清华大学出版社DavidFlanagan著张铭泽等译JavaScript权威指南(第四版)机械工业出版社年月(英)克拉恩帕斯卡雷诺著Ajax实战人民邮电出版社叶新伟等编著PHPAjaxWeb编程技术与项目开发大全电子工业出版社(澳)泽瓦斯著PHPWeb开发实战人民邮电出版社入门、DOM、Ajax与Flashj人民(美)雅克布斯著XML基础教程:邮电出版社WJasonGilmore(BeginningPHPandMySQL(Apress(ExpertoneononeOracleThomasKyte(

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/42
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部