版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中國石油高校(北京)現(xiàn)代遠(yuǎn)程教化畢業(yè)設(shè)計(jì)(論文)基于Web的閑聊室系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)2基于Web的閑聊室系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要Web閑聊室,是Web站點(diǎn)上,網(wǎng)友們進(jìn)行溝通的隱私武器,留意的實(shí)時(shí)的溝通、溝通、探討,不像BBS一樣,須要等待蓋樓的熬煎;閑聊室,其實(shí)就是多人共同運(yùn)用的CGI程序。程序?qū)⒚總€(gè)人輸入的字符串,依系統(tǒng)接收完成的時(shí)間整理過后,再送給各個(gè)用戶。而Web閑聊室和BBS的閑聊室不同的地方是,閑聊室可以每收到一句話,就立刻分送給每位在閑聊室的網(wǎng)絡(luò)用戶;Web由于CGI程序不能像BBS的telnet始終連接,WebCGI必需以最快的速度將信息送出,然后結(jié)束連接。WEB技術(shù)的廣泛應(yīng)用,對(duì)整個(gè)世界政治、經(jīng)濟(jì)、文化等各方面產(chǎn)生了特別廣泛和深遠(yuǎn)的影響。它奇跡般地崛起、爆炸般地?cái)U(kuò)容,令全世界矚目。WEB互聯(lián)網(wǎng)技術(shù)之所以能在如此短的時(shí)間內(nèi)獲得社會(huì)各方面的認(rèn)可,并在全球范圍內(nèi)推廣應(yīng)用是因?yàn)榛ヂ?lián)網(wǎng)擁有浩大的信息資源、給人類供應(yīng)全新的交往方式、存在著巨大的商機(jī)、虛擬現(xiàn)實(shí)技術(shù)的廣泛應(yīng)用等等,是促進(jìn)互聯(lián)網(wǎng)發(fā)展的重要因素;其中交互性和實(shí)時(shí)性尤為重要,選擇此課題的動(dòng)機(jī)和意義,就是為了更加深化的了解WEBCGI程序的運(yùn)行,同時(shí)對(duì)web應(yīng)用程序有肯定了解和駕馭,體驗(yàn)WEB互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展;關(guān)鍵詞:閑聊室;WEBCGI程序;互聯(lián)網(wǎng);實(shí)時(shí)溝通目錄第一章引言 11.1Web閑聊室的引入 11.2系統(tǒng)開發(fā)的意義 11.3系統(tǒng)開發(fā)技術(shù)路途 2其次章可行性分析 32.1經(jīng)濟(jì)可行性 32.2技術(shù)上的可行性 3第三章系統(tǒng)技術(shù)簡(jiǎn)介 43.1PHP技術(shù) 43.2AJAX簡(jiǎn)介 53.3ORACLE技術(shù) 63.4XML技術(shù) 6第四章系統(tǒng)設(shè)計(jì) 84.1閑聊室角色設(shè)計(jì) 84.2閑聊室功能設(shè)計(jì) 84.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) 9第五章系統(tǒng)模塊和系統(tǒng)流程 125.1系統(tǒng)模塊 125.2系統(tǒng)流程 13第六章系統(tǒng)實(shí)現(xiàn) 146.1在線注冊(cè) 146.2匿名閑聊頁面 156.3注冊(cè)用戶閑聊模塊 166.4主持人閑聊模塊 176.5嘉賓閑聊模塊 176.6管理員閑聊模塊 18第七章關(guān)鍵代碼 207.1AJAX定義 207.2注冊(cè)模塊 217.3閑聊模塊 237.4XML解析模塊 25第八章總結(jié) 28參考文獻(xiàn) 29第一章引言1.1Web閑聊室的引入隨著信息流量的日益加大,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)得到飛速發(fā)展,各類網(wǎng)站不斷涌現(xiàn)出來。而最受青睞的應(yīng)屬具有動(dòng)態(tài)效果、實(shí)施性質(zhì)的相互溝通的的網(wǎng)絡(luò)平臺(tái),其頁面的內(nèi)容運(yùn)用的不僅僅是標(biāo)準(zhǔn)的HTML代碼。而是加入了各種“交互性”。將閱讀器作為客戶端界面,這將是今后WEB發(fā)展的大事所趨。如何與別人更好地溝通,是當(dāng)前人們普遍關(guān)切的問題。人們通過網(wǎng)站可以展示產(chǎn)品,發(fā)布最新動(dòng)態(tài),與用戶進(jìn)行溝通和溝通,與合作伙伴建立聯(lián)系,以及開展電子商務(wù)等。其中網(wǎng)上閑聊系統(tǒng)是構(gòu)成網(wǎng)站的一個(gè)重要組成部分,為人們之間進(jìn)行溝通和聯(lián)系供應(yīng)的一個(gè)平臺(tái)。1.2系統(tǒng)開發(fā)的意義Internet是目前世界上最大的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò)它遍布全球,將世界各地各種規(guī)模的網(wǎng)絡(luò)連接成一個(gè)整體。作為Internet上一種先進(jìn)的,易于被人們所接受的信息檢索手段,WorldWideWeb(簡(jiǎn)稱WWW)發(fā)展特別快速,成為目前世界上最大的信息資源寶庫。據(jù)估計(jì),目前Internet上已有上百萬個(gè)Web站點(diǎn),其內(nèi)容范圍跨越了教化科研、文化事業(yè)、金融、商業(yè)、新聞出版、消遣、體育等各個(gè)領(lǐng)域,其用戶群特別浩大,因此,建設(shè)一個(gè)好的Web站點(diǎn)對(duì)于一個(gè)機(jī)構(gòu)的發(fā)展特別重要。近年來計(jì)算機(jī)技術(shù)的快速發(fā)展,特殊是計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,越來越深刻的變更了人們生活的方方面面。使得人們能以更低廉的價(jià)格,開發(fā)出更便利、更好用的網(wǎng)絡(luò)工具。各種在線服務(wù)系統(tǒng),更是深刻的影響了人們的聯(lián)系和溝通方式,使得人們可以在遠(yuǎn)隔千里之遙隨時(shí)通訊。過去的種種陳舊的聯(lián)系方式,已經(jīng)不能滿意現(xiàn)代生活的須要。網(wǎng)上閑聊系統(tǒng)作為一種便利消費(fèi)者與人們之間聯(lián)系的好用系統(tǒng)便應(yīng)運(yùn)而生。網(wǎng)上閑聊系統(tǒng)是為人們進(jìn)行溝通和聯(lián)系供應(yīng)的一個(gè)平臺(tái)。通過供應(yīng)完善的網(wǎng)上閑聊系統(tǒng)的管理,可以達(dá)到增進(jìn)人們與消費(fèi)者之間、消費(fèi)者與消費(fèi)者之間的溝通和聯(lián)系的目的。1.3系統(tǒng)開發(fā)技術(shù)路途 系統(tǒng)的開發(fā)采納當(dāng)前最為火爆的技術(shù)-PHP語言,進(jìn)行開發(fā);系統(tǒng)測(cè)長(zhǎng)久性設(shè)計(jì)采納XML+ORACLE技術(shù);前端與數(shù)據(jù)存儲(chǔ)之間的交互采納PHP+AJAX來進(jìn)行; 系統(tǒng)運(yùn)行平臺(tái)采納LINUX,Web端服務(wù)器為APACHE;其次章可行性分析2.1經(jīng)濟(jì)可行性主要是對(duì)系統(tǒng)的經(jīng)濟(jì)效益進(jìn)行評(píng)價(jià),由于本系統(tǒng)運(yùn)行的平臺(tái)對(duì)配置并不是很高,實(shí)現(xiàn)起來也比較便利,可以在資源上、人力上節(jié)約很大的開支,開發(fā)經(jīng)費(fèi)對(duì)于個(gè)人/單位在經(jīng)濟(jì)上是可以接受的,并且本系統(tǒng)實(shí)施后可以顯著提高工作效率,有助于完全實(shí)現(xiàn)信息的實(shí)時(shí)溝通。提高網(wǎng)站的PV,為網(wǎng)站帶來更大的效益;所以本系統(tǒng)在經(jīng)濟(jì)上是可行的。2.2技術(shù)上的可行性技術(shù)上的可行性分析主要分析技術(shù)條件能否順當(dāng)完成開發(fā)工作,硬、軟件能否滿意開發(fā)者的須要等。該管理系統(tǒng)采納了當(dāng)前流行的Browser/Server模式進(jìn)行開發(fā)。三層的Browser/Server體系結(jié)構(gòu)具有很多傳統(tǒng)Client/Server體系結(jié)構(gòu)不具備的優(yōu)點(diǎn),而且又緊密的結(jié)合了Internet/Intranet技術(shù),是技術(shù)發(fā)展的大勢(shì)所趨,它把應(yīng)用系統(tǒng)帶入了一個(gè)嶄新的發(fā)展時(shí)代。數(shù)據(jù)庫服務(wù)器選用ORACLE數(shù)據(jù)庫,它能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)的完整性并供應(yīng)很多高級(jí)管理功能,并且有益于系統(tǒng)的擴(kuò)展。它的敏捷性、平安性和易用性為數(shù)據(jù)庫編程供應(yīng)了良好的條件。因此,系統(tǒng)的開發(fā)平臺(tái)已成熟可行。硬件方面,科技飛速發(fā)展的今日,硬件更新的速度越來越快,容量越來越大,牢靠性越來越高,價(jià)格越來越低,其硬件平臺(tái)完全能滿意此系統(tǒng)的須要。PHP、XML、ORACLE、AJAX等技術(shù)現(xiàn)在說來,已經(jīng)是相當(dāng)?shù)某墒?,已?jīng)有海量的網(wǎng)站采納此類技術(shù)進(jìn)行了開發(fā),PHP網(wǎng)站已經(jīng)非經(jīng)常見,AJAX技術(shù)也有大量的應(yīng)用,所以在技術(shù)上來說,也是完全可行的;第三章系統(tǒng)技術(shù)簡(jiǎn)介3.1PHP技術(shù)PHP是“PHP:HypertextPreprocessor”的縮寫,即“超文本預(yù)處理器”。PHP是一種功能強(qiáng)大,并且簡(jiǎn)便易用的腳本語言。PHP是一種簡(jiǎn)潔、輕巧的服務(wù)器端腳本語言。PHP最初是作為一個(gè)快速、好用的工具包出現(xiàn)的。1994年,為了在自己的網(wǎng)站上增加一個(gè)小巧而好用的訪客追蹤系統(tǒng),RasmusLerdorf編寫了PHP的雛形程序。這是一個(gè)用Perl封裝的簡(jiǎn)潔工具。由于運(yùn)用效果并不志向,Rasmus又用C語言重寫了這個(gè)工具;PHP發(fā)展至今,已經(jīng)從最初的PHP/FI發(fā)展經(jīng)驗(yàn)PHP2.0、PHP3.0、PHP4.0,目前已經(jīng)更新至PHP5.0;它的核心是其次代Zend引擎,并引入了對(duì)全新的PECL模塊的支持。PHP5的最大特點(diǎn)是引入了面對(duì)對(duì)象的全部機(jī)制,并且保留了向下的兼容性。程序員不必再編寫缺乏功能性的類,并且能夠以多種方法實(shí)現(xiàn)類的愛護(hù)。另外,在對(duì)象的集成等方面也不再存在問題。運(yùn)用PHP5引進(jìn)了類型提示和異樣處理機(jī)制,能更有效的處理和避開錯(cuò)誤的發(fā)生。猶如ASP具有Windows自己的開發(fā)平臺(tái)一樣,Zend也為PHP設(shè)計(jì)了全新的開發(fā)環(huán)境ZendStudio。這是一款集程序調(diào)試、系統(tǒng)發(fā)布以及開發(fā)環(huán)境為一體的PHP開發(fā)軟件。這將大大簡(jiǎn)化PHP開發(fā)過程,并且縮短相應(yīng)的測(cè)試周期。另外,Zend還將與IBM公司合作推出集成ZendIDE特性的Eclipse軟件供大家運(yùn)用。PHP還具有優(yōu)秀的平臺(tái)兼容性。PHP源于UNIX系統(tǒng)平臺(tái),尤其是PHP、MySQL、Apache和Linux組合,備受PHP愛好者的歡迎。不僅如此,PHP在Windows系列操作系統(tǒng)上也有精彩的表現(xiàn)。其良好的程序界面、語言易用性等特點(diǎn)吸引了微軟的開發(fā)人員。目前,有消息稱將來的Windows.NET開發(fā)環(huán)境將集成PHP,這也意味著PHP的用戶群將日益壯大。PHP的特性:開放的源代碼:全部的PHP源代碼事實(shí)上都可以得到。
PHP是免費(fèi)的。
基于服務(wù)器端:由于PHP是運(yùn)行在服務(wù)器端的,即使再多的用戶,再困難的程序也不會(huì)影響運(yùn)行的速度。
跨平臺(tái):PHP可以運(yùn)行在UNIX、LINUX、WINDOWS下。
嵌入HTML:因?yàn)镻HP可以嵌入HTML語言,所以學(xué)習(xí)起來并不困難。
簡(jiǎn)潔的語言:PHP堅(jiān)持腳本語言為主,與Java以C++不同。
效率高:PHP消耗相當(dāng)少的系統(tǒng)資源。
圖像處理:用PHP動(dòng)態(tài)創(chuàng)建圖像3.2AJAX簡(jiǎn)介AJAX全稱為“AsynchronousJavaScriptandXML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。傳統(tǒng)的web應(yīng)用允許用戶填寫表單(form),當(dāng)提交表單時(shí)就向web服務(wù)器發(fā)送一個(gè)懇求。服務(wù)器接收并處理傳來的表單,然後返回一個(gè)新的網(wǎng)頁。這個(gè)做法奢侈了很多帶寬,因?yàn)樵谇搬醿蓚€(gè)頁面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都須要向服務(wù)器發(fā)送懇求,應(yīng)用的響應(yīng)時(shí)間就依靠于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它運(yùn)用SOAP或其它一些基于XML的webservice接口,并在客戶端采納JavaScript處理來自服務(wù)器的響應(yīng)。因?yàn)樵诜?wù)器和閱讀器之間交換的數(shù)據(jù)大量削減,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用。同時(shí)很多的處理工作可以在發(fā)出懇求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也削減了。運(yùn)用Ajax的最大優(yōu)點(diǎn),就是能在不更新整個(gè)頁面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動(dòng)作,并避開了在網(wǎng)絡(luò)上發(fā)送那些沒有變更過的信息。Ajax不須要任何閱讀器插件,但須要用戶允許JavaScript在閱讀器上執(zhí)行。就像DHTML應(yīng)用程序那樣,Ajax應(yīng)用程序必需在眾多不同的閱讀器和平臺(tái)上經(jīng)過嚴(yán)格的測(cè)試。隨著Ajax的成熟,一些簡(jiǎn)化Ajax運(yùn)用方法的程序庫也相繼問世。同樣,也出現(xiàn)了另一種協(xié)助程序設(shè)計(jì)的技術(shù),為那些不支持JavaScript的用戶供應(yīng)替代功能。3.3ORACLE技術(shù)Oracle應(yīng)用產(chǎn)品包括財(cái)務(wù)、供應(yīng)鏈、制造、項(xiàng)目管理、人力資源和市場(chǎng)與銷售等150多個(gè)模塊,榮獲多項(xiàng)世界大獎(jiǎng),現(xiàn)已被全球近7600多家企業(yè)所采納。由于在電子商務(wù)方面的杰出表現(xiàn),Oracle公司在美國MonganStanley公司最新公布的權(quán)威性全球企業(yè)1000強(qiáng)中,從去年的第122名一躍成為第13名,成為全球其次大獨(dú)立軟件公司和最大的電子商務(wù)解決方案供應(yīng)商。目前,Amazon和Dell等全球十個(gè)最大的Internet電子商務(wù)網(wǎng)站、全球十個(gè)最大的B-to-B網(wǎng)站中的九個(gè)、93%的上市公司、65家“財(cái)寶全球100強(qiáng)”企業(yè)均不謀而合地采納Oracle電子商務(wù)解決方案。發(fā)展至今,Oracle已經(jīng)發(fā)展至Oracle11g;11g數(shù)據(jù)庫增加了Oracle透亮數(shù)據(jù)加密功能,將這種功能擴(kuò)展到了卷級(jí)加密之外。11g還增加了表空間加密功能,可用來加密整個(gè)表、索引和所存儲(chǔ)的其它數(shù)據(jù)。存儲(chǔ)在數(shù)據(jù)庫中的大型對(duì)象也可以加密。在Oracle11g中,XMLDB的性能又獲得很大提高,XMLDB是Oracle數(shù)據(jù)庫的一個(gè)組件,客戶可以以本機(jī)方式存儲(chǔ)和操作XML數(shù)據(jù)。11g增加了對(duì)二進(jìn)制XML數(shù)據(jù)的支持,現(xiàn)在客戶可以選擇適合自己特定應(yīng)用及性能需求的XML存儲(chǔ)選項(xiàng)。3.4XML技術(shù)XML(ExtensibleMarkupLanguage)即可擴(kuò)展標(biāo)記語言,它與HTML一樣,都是SGML(StandardGeneralizedMarkupLanguage,標(biāo)準(zhǔn)通用標(biāo)記語言)。Xml是Internet環(huán)境中跨平臺(tái)的,依靠于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。擴(kuò)展標(biāo)記語言XML是一種簡(jiǎn)潔的數(shù)據(jù)存儲(chǔ)語言,運(yùn)用一系列簡(jiǎn)潔的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用便利的方式建立,雖然XML占用的空間比二進(jìn)制數(shù)據(jù)要占用更多的空間,但XML極其簡(jiǎn)潔易于駕馭和運(yùn)用。XML與Access,Oracle和SQLServer等數(shù)據(jù)庫不同,數(shù)據(jù)庫供應(yīng)了更強(qiáng)有力的數(shù)據(jù)存儲(chǔ)和分析實(shí)力,例如:數(shù)據(jù)索引、排序、查找、相關(guān)一樣性等,XML僅僅是展示數(shù)據(jù)。事實(shí)上XML與其他數(shù)據(jù)表現(xiàn)形式最大的不同是:他極其簡(jiǎn)潔。這是一個(gè)看上去有點(diǎn)瑣細(xì)的優(yōu)點(diǎn),但正是這點(diǎn)使XML別出心裁。XML的簡(jiǎn)潔使其易于在任何應(yīng)用程序中讀寫數(shù)據(jù),這使XML很快成為數(shù)據(jù)交換的唯一公共語言,雖然不同的應(yīng)用軟件也支持其它的數(shù)據(jù)交換格式,但不久之后他們都將支持XML,那就意味著程序可以更簡(jiǎn)潔的與Windows、MacOS,Linux以及其他平臺(tái)下產(chǎn)生的信息結(jié)合,然后可以很簡(jiǎn)潔加載XML數(shù)據(jù)到程序中并分析他,并以XML格式輸出結(jié)果。第四章系統(tǒng)設(shè)計(jì)4.1閑聊室角色設(shè)計(jì)管理員添加閑聊主題;設(shè)置閑聊角色;查看網(wǎng)友資料、警告、禁言、踢人;角色區(qū)分:運(yùn)用不同顏色顯示用戶名、昵稱;主持人(可選角色)查看網(wǎng)友資料、警告;角色區(qū)分:運(yùn)用不同顏色顯示用戶名、昵稱;嘉賓(可選角色)屏蔽某人發(fā)言;角色區(qū)分:運(yùn)用不同顏色顯示用戶名、昵稱;會(huì)員屏蔽某人發(fā)言;角色區(qū)分:顯示用戶名、昵稱;網(wǎng)友屏蔽某人發(fā)言;角色區(qū)分:系統(tǒng)自動(dòng)安排昵稱;4.2閑聊室功能設(shè)計(jì)1、用戶注冊(cè)用戶只有擁有自己的帳號(hào)才能才能登錄到閑聊室系統(tǒng)中結(jié)交摯友,暢所欲言。這就須要到閑聊室注冊(cè)頁面進(jìn)行注冊(cè)。在注冊(cè)頁面可以注冊(cè)用戶名、密碼等信息; 約束:用戶注冊(cè)時(shí),用戶名不行以重復(fù),昵稱可以重復(fù); 用戶注冊(cè)后,可以特性化自己的昵稱,完善自己的資料;2、群聊 正常閑聊,全部人都能看到每個(gè)人的發(fā)言;3、私聊 個(gè)人私聊屏,展示對(duì)方對(duì)自己所說的話,其他會(huì)員、網(wǎng)友看不到自己的私聊內(nèi)容;4、屏蔽某人發(fā)言 屏蔽“某人”的發(fā)言后,自己不再看到“某人”的發(fā)言;5、查看網(wǎng)友資料 此功能為“管理員、主持人”所特有的權(quán)利,查看會(huì)員、網(wǎng)友個(gè)人資料、IP等;6、警告此功能為“管理員、主持人”所特有的權(quán)利;可以對(duì)“違規(guī)”會(huì)員、網(wǎng)友進(jìn)行警告,提示其留意其言論;7、踢人 此功能為“管理員”所特有的權(quán)利;對(duì)多次“違規(guī)”警告的會(huì)員,仍舊進(jìn)行“違規(guī)”行為、或發(fā)表不文明言論,由管理員對(duì)其進(jìn)行踢人操作;在一段時(shí)間內(nèi)禁止其接著進(jìn)入閑聊室閑聊;8、閑聊內(nèi)容特性化 發(fā)言的特性化;A、可以自行選擇字體、顏色;B、為了防止惡意發(fā)言,限制發(fā)言間隔(可能會(huì)影響系統(tǒng)效率,可考慮其他方案)4.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)1、系統(tǒng)用戶表:會(huì)員主表-FSM_MEMBER_BASICNAMECODEDATATYPELength會(huì)員IDMEMBERIDVARCHAR236會(huì)員登錄名USERNAMEVARCHAR232密碼PASSWORDVARCHAR232表4-12、閑聊主題管理--FSM_EXP_SUBJECTNAMECODEDATATYPELength主題IDSUBJECTIDVARCHAR28坐堂主題SUBJECTTITLEVARCHAR2100起先時(shí)間STIMEDATE結(jié)束時(shí)間ETIMEDATE主題內(nèi)容SUBJECTCONTENTCLOBxml文件路徑SUBJECTXMLPATHVARCHAR2300專家登陸名LOGINNAMEVARCHAR2200表4-23、名家基本信息表--FSM_EXPERT_BASICNAMECODEDATATYPELength名家ID EXPERTIDVARCHAR28前臺(tái)賬號(hào) USERNAMEVARCHAR2200顯示姓名 REALNAMEVARCHAR2100性別EXPERTSEXVARCHAR22聯(lián)系電話 EXPERTTELEPHONEVARCHAR2100郵箱EXPERTEMAILVARCHAR2150國家/籍貫EXPERTCOUNTRYVARCHAR2200表4-34、名家角色關(guān)系表--FSM_EXP_ROLENAMECODEDATATYPELength主鍵IDIDVARCHAR232名家IDEXPERTIDVARCHAR28角色值ROLENUMBER2表4-45、閑聊主題相關(guān)人員表--FSM_EXP_PERSONNELNAMECODEDATATYPELength記錄編號(hào)PERSONNELRECIDVARCHAR28坐堂主題編號(hào)SUBJECTIDVARCHAR28會(huì)員編號(hào)MEMBERIDVARCHAR236人員類型PERSONNELTYPENUMBER1會(huì)員登陸USERNAMEVARCHAR2200表4-5第五章系統(tǒng)模塊和系統(tǒng)流程5.1系統(tǒng)模塊圖5-1系統(tǒng)模塊圖相關(guān)說明:如上圖所示,系統(tǒng)共包括以上幾個(gè)模塊,用戶注冊(cè)/登陸模塊、匿名用戶閑聊模塊、注冊(cè)用戶閑聊模塊、主持人閑聊模塊、嘉賓閑聊模塊、管理員閑聊模塊;注冊(cè)/登陸模塊:用戶注冊(cè)登陸后可以享受會(huì)員級(jí)別的待遇,可以向?qū)<姨釂柕鹊葯?quán)限; 匿名用戶閑聊模塊:假如用戶沒有注冊(cè)就進(jìn)入了閑聊室,則他為匿名用戶,閑聊的過程中,會(huì)有一些操作不能進(jìn)行,比如向?qū)<姨釂枂栴}等 注冊(cè)用戶閑聊模塊:用戶注冊(cè)登陸后可以進(jìn)行閑聊,并且可以向?qū)<疫M(jìn)行提問等,提高了系統(tǒng)權(quán)限,使其更能充分利用系統(tǒng)資源; 主持人閑聊模塊:主持人在此頁面與嘉賓進(jìn)行溝通,活躍氣氛,不至于讓嘉賓一個(gè)人來跟網(wǎng)友進(jìn)行溝通; 嘉賓閑聊模塊:嘉賓在此頁面跟主持人進(jìn)行溝通,以及對(duì)注冊(cè)用戶提出的問題進(jìn)行作答,實(shí)現(xiàn)與用戶及網(wǎng)友的溝通;管理員閑聊模塊:管理員的言論也將發(fā)表在這個(gè)區(qū)域,跟網(wǎng)友進(jìn)行互動(dòng),并對(duì)會(huì)員及分會(huì)員(匿名用戶)進(jìn)行管理;此外,管理員還有警告、踢人的權(quán)利;可以對(duì)“違規(guī)”會(huì)員、網(wǎng)友進(jìn)行警告,提示其留意其言論;對(duì)多次“違規(guī)”警告的會(huì)員,仍舊進(jìn)行“違規(guī)”行為、或發(fā)表不文明言論,由管理員對(duì)其進(jìn)行踢人操作;在一段時(shí)間內(nèi)禁止其接著進(jìn)入閑聊室閑聊;5.2系統(tǒng)流程圖5-2系統(tǒng)流程圖 當(dāng)用戶登陸進(jìn)入閑聊室,系統(tǒng)將推斷其有沒有登陸,假如已經(jīng)登陸,則對(duì)其用戶類型進(jìn)行推斷,依據(jù)不同的角色進(jìn)入不同的閑聊模塊;假如沒有登陸,則干脆進(jìn)入“匿名閑聊模塊”,享有一部分權(quán)利;當(dāng)其向嘉賓進(jìn)行提問時(shí),提示其進(jìn)行登陸,假如沒有注冊(cè),則干脆進(jìn)入注冊(cè)模塊;假如網(wǎng)友選擇注冊(cè)并登陸后,則進(jìn)入“注冊(cè)用戶閑聊模塊”;第六章系統(tǒng)實(shí)現(xiàn)6.1在線注冊(cè)用戶只有擁有自己的帳號(hào)才能登錄到閑聊室系統(tǒng)中結(jié)交摯友,向名家提問問題,暢所欲言。這就須要到閑聊室注冊(cè)頁面進(jìn)行注冊(cè)。在注冊(cè)頁面可以注冊(cè)用戶名、密碼等信息,以完成注冊(cè)。填寫時(shí)要留意:A、用戶名為登陸郵箱,格式必需正確,如:zhenna@yahooB、兩次填寫的密碼必需大寫六位且必需一樣,否則會(huì)出錯(cuò);C、留意肯定要填寫驗(yàn)證碼;這里主要是為了防止濫注冊(cè)行為;D、注冊(cè)后系統(tǒng)會(huì)想您注冊(cè)的郵箱發(fā)送郵件,去郵箱把你的注冊(cè)用戶激活,才能正常運(yùn)用,這里是為了防止其他網(wǎng)友用您的郵箱注冊(cè)或是自己注冊(cè)錯(cuò)誤等等;詳細(xì)如下圖所示:圖6-1密碼填寫錯(cuò)誤圖6-2填寫正確6.2匿名閑聊頁面圖6-3上半部分為嘉賓談話區(qū)域,主持人負(fù)責(zé)跟主持人進(jìn)行溝通;其他閑聊室用戶向嘉賓提問的問題,也有嘉賓在此區(qū)域回復(fù);下部分為網(wǎng)友、閑聊室用戶管理員等等人的閑聊顯示區(qū)域;用戶可以選擇自己發(fā)言的字體顏色;可以選擇對(duì)話的對(duì)象,假如想要跟某位網(wǎng)友溝通,只要點(diǎn)擊他的用戶名就可以把他添加到對(duì)象列條里面;但是匿名用戶(沒有注冊(cè)的網(wǎng)友),對(duì)象不行以為嘉賓,只有注冊(cè)過的用戶才能向嘉賓提問問題;清屏功能,清除目前頁面內(nèi)的閑聊內(nèi)容;6.3注冊(cè)用戶閑聊模塊圖6-4此頁面的頁面分布同匿名閑聊頁面;唯一不同的地方就是,此頁面內(nèi)都是注冊(cè)用戶,也就是說都可以向嘉賓提問問題;清屏功能,清除目前頁面內(nèi)的閑聊內(nèi)容;6.4主持人閑聊模塊此頁面左側(cè)內(nèi)容同注冊(cè)用戶閑聊模塊的上部分;主持人在此頁面與嘉賓進(jìn)行溝通,活躍氣氛,不至于讓嘉賓一個(gè)人來跟網(wǎng)友進(jìn)行溝通; 右側(cè)為注冊(cè)用戶向嘉賓提問的問題列表,主持人可以把問題選擇到嘉賓頁面,來完成用戶對(duì)嘉賓提問的問題,嘉賓再在其頁面作答;此外,主持人可以選擇自己的字體顏色,還有運(yùn)用清屏功能,清除目前頁面內(nèi)的閑聊內(nèi)容;如下圖:圖6-56.5嘉賓閑聊模塊頁面布局同主持人閑聊模塊,左側(cè)內(nèi)容同注冊(cè)用戶閑聊模塊的上部分;嘉賓在此頁面跟主持人進(jìn)行溝通,以及對(duì)注冊(cè)用戶提出的問題進(jìn)行作答,實(shí)現(xiàn)與用戶及網(wǎng)友的溝通; 右側(cè)為注冊(cè)用戶向嘉賓提問的問題列表,嘉賓可以自己選擇用戶提問的問題,來進(jìn)行選擇作答;此外,嘉賓可以選擇自己的字體顏色,還有運(yùn)用清屏功能,清除目前頁面內(nèi)的閑聊內(nèi)容;如下圖:圖6-66.6管理員閑聊模塊頁面的左側(cè)部分為嘉賓回答網(wǎng)友問題,和主持人和嘉賓;右側(cè)為網(wǎng)友閑聊屏,管理員的言論也將發(fā)表在這個(gè)區(qū)域,跟網(wǎng)友進(jìn)行互動(dòng),并對(duì)會(huì)員及分會(huì)員(匿名用戶)進(jìn)行管理;管理員可以選擇自己的字體顏色,還有運(yùn)用清屏功能,清除目前頁面內(nèi)的閑聊內(nèi)容;此外,管理員還有警告、踢人的權(quán)利;可以對(duì)“違規(guī)”會(huì)員、網(wǎng)友進(jìn)行警告,提示其留意其言論;對(duì)多次“違規(guī)”警告的會(huì)員,仍舊進(jìn)行“違規(guī)”行為、或發(fā)表不文明言論,由管理員對(duì)其進(jìn)行踢人操作;在一段時(shí)間內(nèi)禁止其接著進(jìn)入閑聊室閑聊;圖6-7第七章關(guān)鍵代碼7.1AJAX定義Ajax簡(jiǎn)潔來說通過XmlRequest對(duì)象來向服務(wù)器發(fā)異步懇求,從服務(wù)器獲得數(shù)據(jù),然后用javascript來操作DOM而更新頁面。這其中最關(guān)鍵的一步就是從服務(wù)器獲得懇求數(shù)據(jù)。XMLRequest是ajax的核心機(jī)制,是一種支持異步懇求的技術(shù)。也就是javascript可以剛好向服務(wù)器提出懇求和處理響應(yīng),而不堵塞用戶。達(dá)到無刷新的效果。但是,由于各閱讀器之間存在差異,所以創(chuàng)建一個(gè)XMLRequest對(duì)象可能須要不同的方法。這個(gè)差異主要體現(xiàn)在IE和其它閱讀器之間。下面是一個(gè)比較標(biāo)準(zhǔn)的創(chuàng)建XMLRequest對(duì)象的方法。functionCreateXml(){//非IE閱讀器創(chuàng)建XmlRequest對(duì)象if(window.XmlRequest){xml=newXmlRequest();}//IE閱讀器創(chuàng)建XmlRequest對(duì)象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("創(chuàng)建xml對(duì)象異樣!");returnfalse;}xml.open("POST",url,false);xml.onreadystatechange=function(){if(xml.readyState==4){document.getElementById("user1").innerHTML="數(shù)據(jù)正在加載...";if(xml.status==200){document.write(xml.responseText);}}}xml.send();}如上所示,函數(shù)首先檢查XMLRequest的整體狀態(tài)并且保證它已經(jīng)完成(readyStatus=4),即數(shù)據(jù)已經(jīng)發(fā)送完畢。然后依據(jù)服務(wù)器的設(shè)定詢問懇求狀態(tài),假如一切已經(jīng)就緒(status=200),那么就執(zhí)行下面須要的操作。對(duì)于XmlRequest的兩個(gè)方法,open和send,其中open方法指定了一些參數(shù),用來通過指定的方式來執(zhí)行發(fā)送懇求操作。XMLRequest是完全用來向服務(wù)器發(fā)出一個(gè)懇求的,它的作用也局限于此,但它的作用是整個(gè)ajax實(shí)現(xiàn)的關(guān)鍵,因?yàn)閍jax無非是兩個(gè)過程,發(fā)出懇求和響應(yīng)懇求。并且它完全是一種客戶端的技術(shù)。而XMLRequest正是處理了服務(wù)器端和客戶端通信的問題所以才會(huì)如此的重要。7.2注冊(cè)模塊 用戶進(jìn)入注冊(cè)頁面,填寫注冊(cè)信息,然后點(diǎn)擊提交按鈕來完成注冊(cè);在這過程中我們要對(duì)用戶所輸入的內(nèi)容進(jìn)行檢查,看是按要求填寫,假如不符合填寫要求,則返回頁面,讓用戶來完善自己所填寫的信息;用戶信息通過驗(yàn)證后,則注冊(cè)勝利,同時(shí)向用戶的郵箱發(fā)送驗(yàn)證郵件,用戶通過登錄郵箱來激活自己的賬戶;以下是相關(guān)的代碼: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"您輸入的郵箱有誤,請(qǐng)依據(jù)正確格式輸入,如:admin@admin"; exit();}if(strlen($pwd)<6){ echo"您設(shè)置的密碼不足6位,請(qǐng)重新填寫!!"; exit();}else{ //注冊(cè)FSM_MEMBER_BASIC $mid=$member->regMember($mail,$pwd,$mail,$mail); if($mid==""){ echo'末知緣由,注冊(cè)失?。?!'; exit(); } //設(shè)置cookie setcookie("LOGIN","1",NULL,'/',admin'); setcookie("USERNAME",$mail,NULL,'/',admin'); setcookie("MEMBERID",$mid,NULL,'/',admin'); $member->addevent($mid); //為積分增加事務(wù)表添加記錄 //發(fā)送郵件 require_once(ROOT_DIR."class/Member/smtpLong.class.php"); //實(shí)例化smtp類,設(shè)置發(fā)信服務(wù)器,賬號(hào)和密碼 $smtp=newsmtp("11","admin@admin","888888"); //設(shè)置發(fā)信人 $smtp->setFrom("webserver@admin"); //設(shè)置收信人,多個(gè)用,隔開 $smtp->setTo($mail); //設(shè)置標(biāo)題 $smtp->setSubject("感謝您成為admin注冊(cè)用戶"); $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); } //設(shè)置郵件內(nèi)容 $smtp->setBody($body); //發(fā)送郵件,在發(fā)信任務(wù)中,任何一個(gè)發(fā)送出現(xiàn)問題,即返回false}7.3閑聊模塊 用戶進(jìn)入閑聊室后,進(jìn)行跟專家、網(wǎng)友的互動(dòng)、閑聊,以下是從XML文件讀取信息,以及寫入信息的相關(guān)代碼: 其中GetAJAX()和showInfo()方法,用來提取閑聊信息,并用AJAX技術(shù)無刷新輸出到用戶界面;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("閑聊室已經(jīng)關(guān)閉,歡迎下次光臨!"); deleteCookie("thisValue"); window.close(); }else{ if(responseValue=="kick"){ alert("你已經(jīng)被踢出閑聊室"); 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);//時(shí)間比較 if(filed!=""){ if(filed.length>100){ alert("你發(fā)言的字?jǐn)?shù)不能超過100"); }else{ if(objectChat.options[objectChat.selectedIndex].value==username){ alert("不能和自己私聊"); }else{ if(compareTime<=2){ alert("對(duì)不起,您在2秒內(nèi)只能發(fā)一次言"); }else{ if(objectChat.options[objectChat.selectedIndex].value=="嘉賓"){alert("只有登錄后才可以向嘉賓提問題!"); }else{ CommonTime=sendTime; //組合數(shù)據(jù) varDataToSend="ChatText2="+ChatText2.value+"&objectChat="+objectChat.options[objectChat.selectedIndex].value+"&fileName="+fileName.value+"&usercolor="+usercolor.value; send=newcreateRequest();//調(diào)用createRequest();方法得到REQUEST對(duì)像 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對(duì)XML供應(yīng)了的強(qiáng)大的支持。它運(yùn)用了一個(gè)XML的“解析器”,并且為了支持這個(gè)解析器,它供應(yīng)了很多個(gè)XML的解析函數(shù)。下面采納最常用的PHP通過DOM的方式來解析XML文件;DOM是一個(gè)與平臺(tái)、語言無關(guān)的程序接口,它供應(yīng)了動(dòng)態(tài)訪問和更新文檔的內(nèi)容、結(jié)構(gòu)與風(fēng)格的手段??梢詫?duì)文當(dāng)作進(jìn)一步的處理,并將處理的結(jié)果更新到表示頁面。以下是相關(guān)代碼:classselectXMLextendsDOMDocument{ private$file; private$query; private$stringXML; private$xpath; private$nodeList; private$str=""; private$arr; private$debug=0;//做為標(biāo)識(shí),是否在調(diào)試狀態(tài),是的話,輸出調(diào)試信息 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,返回的記錄條數(shù);$arr,用戶名所對(duì)應(yīng)了類型; */ 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- XX電力調(diào)度中心調(diào)度自動(dòng)化管理規(guī)定試行可編輯范本
- 南安市初二年道德與法治期中試卷
- 企業(yè)用電費(fèi)用年度規(guī)劃預(yù)算
- 2024年福州客運(yùn)資格從業(yè)資格證
- 生態(tài)文明示范區(qū)引領(lǐng)美麗中國風(fēng)
- 中考語文復(fù)習(xí)備考精彩演講稿范文
- 《口腔功能性矯正器》課件
- 《焊接工藝補(bǔ)充擴(kuò)展》課件
- 工程轉(zhuǎn)租合同模板
- ppp合同解除合同范例
- 洗胃法操作(課堂)課件
- 先天性青光眼課件
- 總監(jiān)帶班巡視記錄
- 建筑工程質(zhì)檢員培訓(xùn)講義課件
- 價(jià)值流程圖培訓(xùn)講義(-53張)課件
- 心理防御機(jī)制課件-2
- (整理)打印機(jī)配件英文名稱
- 痔瘡精品課件
- 蘇教版六年級(jí)科學(xué)上冊(cè)復(fù)習(xí)提綱
- 縣級(jí)中職網(wǎng)絡(luò)搭建技能比賽題和答案
- 白血病試題及答案
評(píng)論
0/150
提交評(píng)論