網(wǎng)絡(luò)聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
網(wǎng)絡(luò)聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
網(wǎng)絡(luò)聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
網(wǎng)絡(luò)聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
網(wǎng)絡(luò)聊天室的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 畢業(yè)設(shè)計(jì)(論文)題目 網(wǎng)絡(luò)聊天室設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)(開(kāi)題報(bào)告)畢業(yè)設(shè)計(jì)(論文)教師指導(dǎo)記錄表指導(dǎo)教師系別職稱(chēng)學(xué)生姓名學(xué)號(hào)系別專(zhuān)業(yè)第一次指導(dǎo)指導(dǎo)時(shí)間:指導(dǎo)內(nèi)容:第二次指導(dǎo)指導(dǎo)時(shí)間:指導(dǎo)內(nèi)容:第三次指導(dǎo)指導(dǎo)時(shí)間:指導(dǎo)內(nèi)容:第四次指導(dǎo)指導(dǎo)時(shí)間:指導(dǎo)內(nèi)容: 摘要:隨著網(wǎng)絡(luò)的逐漸普及,以及網(wǎng)絡(luò)技術(shù)的不段發(fā)展,人們通過(guò)網(wǎng)絡(luò)進(jìn)行交流的方式變得多樣化。網(wǎng)絡(luò)聊天室便是其中之一。聊天室系統(tǒng)的即時(shí)交流方式滿(mǎn)足了網(wǎng)絡(luò)中多人同時(shí)聊天交流的需要,使得較多的人在同一個(gè)聊天頁(yè)面進(jìn)行交流變得方便,簡(jiǎn)單。 本設(shè)計(jì)所完成的網(wǎng)絡(luò)聊天室具有常用聊天室的所有功能,包括多人同時(shí)在線(xiàn)聊天、兩人間的私密聊天、在發(fā)言的時(shí)候能夠

2、發(fā)送表情及圖片,還能顯示在線(xiàn)用戶(hù)列表,同時(shí),為了管理聊天室中的用戶(hù),設(shè)計(jì)了用戶(hù)注冊(cè)登陸功能,用戶(hù)管理功能以及用戶(hù)留言功能。并且,加入了分屏、清屏、屏蔽的輔助功能,增加了聊天室的操作性。本文首先介紹了聊天室系統(tǒng)所使用到的一些關(guān)鍵技術(shù),接著介紹了該系統(tǒng)的設(shè)計(jì)思路和需求分析,然后是對(duì)系統(tǒng)的詳細(xì)介紹,包括系統(tǒng)中創(chuàng)建的數(shù)據(jù)庫(kù)以及系統(tǒng)的具體功能介紹。關(guān)鍵詞:聊天室;B/S模式;私聊;留言目錄 1.引言22 技術(shù)簡(jiǎn)介22.1 ASP技術(shù)22.2 數(shù)據(jù)庫(kù)技術(shù)32.3 加密技術(shù)33 需求分析43.1系統(tǒng)運(yùn)行環(huán)境43.2系統(tǒng)總體結(jié)構(gòu)43.3 模塊功能分析44 系統(tǒng)總體設(shè)計(jì)54.1 系統(tǒng)總體規(guī)劃54.2 系統(tǒng)數(shù)據(jù)庫(kù)

3、設(shè)計(jì)64.2.1 數(shù)據(jù)庫(kù)概念模型64.2.2 數(shù)據(jù)庫(kù)各表設(shè)計(jì)74.2.3 數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)85 系統(tǒng)功能具體實(shí)現(xiàn)85.1 用戶(hù)注冊(cè)登陸模塊95.1.1 用戶(hù)注冊(cè)95.1.2 用戶(hù)登錄105.2 用戶(hù)密碼修改105.3 用戶(hù)發(fā)言125.4 聊天內(nèi)容顯示135.5 在線(xiàn)用戶(hù)列表顯示165.6 管理功能175.7 輔助功能區(qū)18結(jié)論19參考文獻(xiàn)201.引言隨著網(wǎng)絡(luò)的逐漸普及,以及網(wǎng)絡(luò)技術(shù)的不段發(fā)展,人們通過(guò)網(wǎng)絡(luò)進(jìn)行交流的方式變得多樣化。網(wǎng)絡(luò)聊天室便是其中之一。在網(wǎng)站建設(shè)迅速發(fā)展的今天,基于B/S模式的ASP網(wǎng)絡(luò)聊天室已經(jīng)成為較多網(wǎng)民認(rèn)可的一種聊天交流平臺(tái),各種專(zhuān)家座談、在線(xiàn)答疑室,實(shí)質(zhì)就是聊天室。聊

4、天室系統(tǒng)的即時(shí)交流方式滿(mǎn)足了網(wǎng)絡(luò)中多人同時(shí)聊天交流的需要,使得較多的人在同一個(gè)聊天頁(yè)面進(jìn)行交流變得方便,簡(jiǎn)單。 本聊天室的開(kāi)發(fā)目的就是為人們?cè)诰W(wǎng)絡(luò)中提供一個(gè)即時(shí)的網(wǎng)頁(yè)交流平臺(tái),通過(guò)這個(gè)平臺(tái),人們可以隨意發(fā)言和觀看大家發(fā)言的內(nèi)容。其中的一大特點(diǎn)就是聊天室中的用戶(hù)可以選擇發(fā)言的對(duì)象,進(jìn)行一對(duì)一的私聊,別人是無(wú)法看到兩人間對(duì)話(huà)的內(nèi)容的。本系統(tǒng)開(kāi)發(fā)采用B/S(瀏覽器/服務(wù)器)結(jié)構(gòu),參考網(wǎng)絡(luò)中正在使用的大型聊天室的架構(gòu)、分析聊天室可實(shí)現(xiàn)功能,結(jié)合本次設(shè)計(jì)的相關(guān)要求,進(jìn)行開(kāi)發(fā)設(shè)計(jì)并寫(xiě)出需求分析說(shuō)明書(shū)。 具體開(kāi)發(fā)環(huán)境:使用windows2003作為服務(wù)器運(yùn)行平臺(tái),同時(shí)搭建系統(tǒng)運(yùn)行平臺(tái)IIS、DNS域名服務(wù)器

5、;以ASP語(yǔ)言作為開(kāi)發(fā)語(yǔ)言,主要研究HTML、JAVA SCRIPT、VB SCRIPT以及SQL數(shù)據(jù)庫(kù)語(yǔ)言;后臺(tái)數(shù)據(jù)庫(kù)使用SQL SERVER或系統(tǒng)自帶的ACCESS數(shù)據(jù)庫(kù);開(kāi)發(fā)工具包括DREAMAVER、PHOTOSHOP、IE、SQL SERVER等。2 技術(shù)簡(jiǎn)介2.1 ASP技術(shù)ASP技術(shù)是一種類(lèi)似HTML(Hypertext Markup Language超文本標(biāo)識(shí)語(yǔ)言)、Script與CGI(Common Gateway Interface通用網(wǎng)關(guān)接口)的結(jié)合體,簡(jiǎn)單的講它是一種運(yùn)行于服務(wù)器的腳本語(yǔ)言,但是其運(yùn)行效率比CGI更高、程序編制也比HTML更方便且更有靈活性,程序安全性及

6、保密性也遠(yuǎn)比Script好。其特點(diǎn)歸納如下:1. ASP可以和HTML或其他腳本語(yǔ)言(VB Script與Java Script)互相嵌套。2. ASP是一種在Web服務(wù)器端運(yùn)行的腳本語(yǔ)言,因此,程序代碼完全保密。3. ASP以對(duì)象為基礎(chǔ),因此可以使用ActiveX控件繼續(xù)擴(kuò)充其功能。4. ASP內(nèi)置ADO組件,因此可以輕松地存取各種數(shù)據(jù)庫(kù),大大縮短了程序開(kāi)發(fā)時(shí)間。5. ASP可以將運(yùn)行結(jié)果以HTML的格式傳送至客戶(hù)端瀏覽器,因此ASP可以適用于各種瀏覽器。 下面來(lái)介紹一下ASP的幾個(gè)內(nèi)置對(duì)象:Request對(duì)象,我們知道HTTP通訊協(xié)議是一種請(qǐng)求與響應(yīng)(Request/Response)的通

7、訊協(xié)議,因此通常由客戶(hù)端向Web服務(wù)器提出請(qǐng)求,Web服務(wù)器才會(huì)響應(yīng)信息。因此在ASP中,特別將“客戶(hù)端提出的要求”與“Web服務(wù)器響應(yīng)的信息”等動(dòng)作封裝成Request對(duì)象與Response對(duì)象。換而言之,Request對(duì)象通常包含了用戶(hù)端的相關(guān)信息,如瀏覽器的種類(lèi)、表頭信息、表單參數(shù)及cookies等等。Response對(duì)象,每一種程序語(yǔ)言或開(kāi)發(fā)工具一定都有與用戶(hù)溝通的界面或函數(shù),ASP也不例外。在ASP中負(fù)責(zé)將信息傳達(dá)到用戶(hù)的對(duì)象就是Response對(duì)象。Server對(duì)象,Server對(duì)象允許用戶(hù)取得服務(wù)器提供的各項(xiàng)功能,例如,Server對(duì)象的CreateObject方法允許客戶(hù)端用戶(hù)

8、建立一個(gè)ActiveX Server組件實(shí)例,其所建立組件實(shí)例會(huì)隨著服務(wù)器端完成ASP網(wǎng)頁(yè)的處理而自動(dòng)被釋放。如果希望此對(duì)象實(shí)例可以跨多個(gè)ASP網(wǎng)頁(yè),就要用到Session對(duì)象保留該組件實(shí)例,直到Session對(duì)象的運(yùn)行時(shí)間到了,或是在其他ASP網(wǎng)頁(yè)調(diào)用Session對(duì)象的Abandon方法,此組件實(shí)例才會(huì)被釋放。Session對(duì)象,Session對(duì)象在ASP程序編寫(xiě)中占了相當(dāng)重的份量,由于網(wǎng)頁(yè)是一種無(wú)狀態(tài)的程序,因此幾乎無(wú)法知道用戶(hù)的瀏覽狀態(tài)。必須通過(guò)Session對(duì)象記錄用戶(hù)的相關(guān)信息,以供用戶(hù)再次對(duì)此Web服務(wù)器提出要求時(shí)作確認(rèn),例如,在某些特定的網(wǎng)頁(yè)中,常需要用戶(hù)輸入確認(rèn)的賬號(hào)和密碼,

9、假如這些身份確認(rèn)的結(jié)果無(wú)法保留,那豈不是每一個(gè)網(wǎng)頁(yè)都需要重新輸入一次密碼。換而言之,每一個(gè)Session的用戶(hù),Web服務(wù)器均會(huì)自動(dòng)的為它們建立一個(gè)Session。必須說(shuō)明,Session對(duì)象只能適用于具備Cookie功能的瀏覽器。2.2 數(shù)據(jù)庫(kù)技術(shù)在基于微軟IIS/PWS的網(wǎng)絡(luò)平臺(tái)上,通過(guò)服務(wù)器端運(yùn)行的ASP程序來(lái)訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù),是一種最常見(jiàn)的模式了。而對(duì)于小型的數(shù)據(jù)庫(kù)應(yīng)用需求,微軟的Access數(shù)據(jù)庫(kù)應(yīng)該是與ASP程序配套使用的首選。由于Access數(shù)據(jù)庫(kù)的ODBC驅(qū)動(dòng)程序支持的SQL指令全,執(zhí)行效率高,所以Access后臺(tái)數(shù)據(jù)庫(kù)+ASP服務(wù)器端程序+客戶(hù)端IE瀏覽器,是一個(gè)精練實(shí)用高效的

10、組合模式。利用SQL語(yǔ)言,可以查詢(xún)和管理自已的數(shù)據(jù)庫(kù)。它由大約30條命令構(gòu)成,但實(shí)際只需要少數(shù)的幾個(gè)命令就可以完成相當(dāng)多的工作,常用的SQL查詢(xún)命令有:Select、Insert、Delete、Update等。2.3 加密技術(shù)本設(shè)計(jì)在用戶(hù)密碼和密碼問(wèn)題答案的存儲(chǔ)時(shí)使用了MD5加密算法來(lái)保護(hù)數(shù)據(jù)庫(kù)中的重要數(shù)據(jù)。MD5,即“Message-Digest Algorithm 5(信息-摘要算法)”,以512位分組來(lái)處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過(guò)一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成一個(gè)128位的散列值。本設(shè)計(jì)在保存會(huì)員密碼和密碼提

11、示問(wèn)題答案時(shí)都先將傳遞的數(shù)據(jù)通過(guò)MD5加密后才存入數(shù)據(jù)庫(kù),故在數(shù)據(jù)庫(kù)中只能看到已經(jīng)加密的信息,保證了信息的安全。又因?yàn)樵撍惴ㄊ菃蜗蚣用艿?,沒(méi)有解密算法,然而MD5算法對(duì)同一段明文加密得出的密文是唯一且相同的,相當(dāng)于這段數(shù)據(jù)的數(shù)據(jù)指紋,所以當(dāng)有數(shù)據(jù)要和保存的數(shù)據(jù)進(jìn)行比較時(shí),便可通過(guò)將需要對(duì)比的數(shù)據(jù)進(jìn)行MD5加密后再對(duì)比。3 需求分析本系統(tǒng)采用B/S模式設(shè)計(jì),開(kāi)發(fā)目的主要是在網(wǎng)絡(luò)中提供一個(gè)安全的供多人休閑聊天交流的平臺(tái),同時(shí)借助開(kāi)發(fā)此系統(tǒng)提高自己的獨(dú)自設(shè)計(jì)能力。3.1系統(tǒng)運(yùn)行環(huán)境 本系統(tǒng)是在windows 2003 server操作系統(tǒng)下,搭建IIS系統(tǒng)運(yùn)行平臺(tái),使用DREAMWEAVER和Fro

12、ntpage作為開(kāi)發(fā)工具開(kāi)發(fā)的,數(shù)據(jù)庫(kù)使用ACCESS 2003。運(yùn)行本系統(tǒng),需要滿(mǎn)足如下要求:(1) 服務(wù)器端配置:Windows 2000 ServicePack 4.0 以上操作系統(tǒng),Internet 信息服務(wù)器 5.0(IIS 5.0)Microsoft Offices ACCESS 2000 以上版本(2)客戶(hù)端要求配置Windows 2000 ServicePack 4.0 以上操作系統(tǒng),IE瀏覽器5.0及以上版本3.2系統(tǒng)總體結(jié)構(gòu) 根據(jù)聊天室的主要功能分析,本系統(tǒng)一共分為七大功能模塊:用戶(hù)注冊(cè)登陸模塊、發(fā)言功能模塊、聊天內(nèi)容顯示功能模塊、顯示用戶(hù)列表模塊、輔助功能區(qū)模塊、管理功能

13、模塊以及用戶(hù)密碼修改功能模塊。其中輔助功能區(qū)包括用戶(hù)舉報(bào)模塊以及分屏等操作功能,功能結(jié)構(gòu)圖如圖3.1所示。聊天室系統(tǒng)用戶(hù)注冊(cè)登陸模塊分屏功能用戶(hù)密碼修改模塊用戶(hù)發(fā)言模塊聊天內(nèi)容顯示模塊在線(xiàn)用戶(hù)列表顯示模塊輔助功能區(qū)模塊管理功能模塊清屏功能屏蔽功能用戶(hù)舉報(bào)圖3.1 功能結(jié)構(gòu)圖3.3 模塊功能分析(1)用戶(hù)注冊(cè)登陸模塊完成新用戶(hù)注冊(cè),將注冊(cè)信息添加到數(shù)據(jù)庫(kù)中,用于用戶(hù)登陸驗(yàn)證;經(jīng)過(guò)登陸驗(yàn)證的用戶(hù),方可進(jìn)入聊天室進(jìn)行聊天交流。(2)用戶(hù)密碼修改模塊當(dāng)用戶(hù)不小心忘記或記錯(cuò)了自己的注冊(cè)密碼時(shí),可通過(guò)修改密碼,重新設(shè)定登陸密碼,其中要經(jīng)過(guò)密碼提示問(wèn)題的驗(yàn)證,順利通過(guò)才能修改密碼。(3)用戶(hù)發(fā)言模塊除了提供

14、發(fā)言?xún)?nèi)容的輸入外,還應(yīng)能顯示當(dāng)前用戶(hù)正在對(duì)誰(shuí)發(fā)言、可選擇發(fā)言的顏色和發(fā)言的表情。發(fā)言的顏色和發(fā)言表情通過(guò)下拉式組合框?qū)崿F(xiàn)。發(fā)言?xún)?nèi)容書(shū)寫(xiě)完畢后,通過(guò)單擊“提交”按鈕或按回車(chē),實(shí)現(xiàn)聊天內(nèi)容的顯示。(4)聊天內(nèi)容顯示模塊主要完成將每個(gè)用戶(hù)的發(fā)言的內(nèi)容顯示在頁(yè)面中,讓這些內(nèi)容對(duì)每個(gè)登陸用戶(hù)均可見(jiàn)(除開(kāi)私聊內(nèi)容),同時(shí)還能及時(shí)顯示各用戶(hù)的發(fā)言?xún)?nèi)容,以便始終能顯示出最新的發(fā)言?xún)?nèi)容。(5)在線(xiàn)用戶(hù)列表顯示模塊該頁(yè)面實(shí)現(xiàn)在線(xiàn)人數(shù)和在線(xiàn)用戶(hù)的統(tǒng)計(jì),并將在線(xiàn)用戶(hù)依次顯示出來(lái)。每個(gè)顯示用戶(hù)應(yīng)設(shè)置為一個(gè)超鏈接,當(dāng)單擊用戶(hù)名時(shí),實(shí)現(xiàn)將發(fā)言區(qū)中的發(fā)言對(duì)象設(shè)置為該用戶(hù)。(6)輔助功能區(qū)模塊提供諸如分屏、清屏、刷新、屏蔽、顯

15、示名單的操作功能。同時(shí)為用戶(hù)提供了舉報(bào)的流言功能。(7)管理模塊系統(tǒng)管理員可以查看用戶(hù)注冊(cè)信息以及用戶(hù)留言,并對(duì)其進(jìn)行管理。4 系統(tǒng)總體設(shè)計(jì)4.1 系統(tǒng)總體規(guī)劃聊天室系統(tǒng)的總體流程由用戶(hù)登陸開(kāi)始,通過(guò)驗(yàn)證后,用戶(hù)便可進(jìn)入聊天頁(yè)面進(jìn)行交流聊天,同時(shí),系統(tǒng)會(huì)將新登陸用戶(hù)的用戶(hù)名添加進(jìn)在線(xiàn)用戶(hù)列表,即時(shí)更新。總體流程圖如圖4.1所示。用戶(hù)登錄統(tǒng)計(jì)在線(xiàn)人數(shù)、在用戶(hù)列表和發(fā)言數(shù)組中添加新用戶(hù)和公告信息。進(jìn)入聊天主頁(yè)面注冊(cè)用戶(hù)?是否開(kāi)始退出圖4.1 系統(tǒng)總體流程圖4.2 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)4.2.1 數(shù)據(jù)庫(kù)概念模型 根據(jù)系統(tǒng)功能和和流程所需數(shù)據(jù)要求,可以確定數(shù)據(jù)庫(kù)中數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu),其E-R圖如圖4.2所示。

16、表baseuser表 投訴驗(yàn)證用戶(hù)名密碼問(wèn)題答案性別emaillevesdatedatequestionIDUsername1username圖4.2 數(shù)據(jù)庫(kù)E-R圖E-R(Eneity-Relationship Approach)圖是最常用的概念模型表示方法,也是數(shù)據(jù)庫(kù)的核心和基礎(chǔ),它是按用戶(hù)的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模的。4.2.2 數(shù)據(jù)庫(kù)各表設(shè)計(jì)對(duì)于聊天室系統(tǒng),所需的數(shù)據(jù)庫(kù)表有baseuser和投訴兩張表。Baseuser表用于存放注冊(cè)用戶(hù)的基本信息,其具體字段設(shè)計(jì)如表4.1所示。表4.1 baseuser表字段字段名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空說(shuō)明Name文本16否用戶(hù)注冊(cè)名Password密

17、碼50否用戶(hù)登陸密碼MD5值問(wèn)題文本50否密碼提示問(wèn)題答案密碼50否密碼提示問(wèn)題答案MD5值Email文本50否用戶(hù)郵箱性別文本2否用戶(hù)性別Leves文本10否用戶(hù)權(quán)限D(zhuǎn)ate時(shí)間10否注冊(cè)時(shí)間投訴表用于存放用戶(hù)在聊天過(guò)程中向管理員反應(yīng)的舉報(bào)信息,具體字段設(shè)計(jì)如表4.2所示。表4.2 投訴表字段字段名數(shù)據(jù)類(lèi)型長(zhǎng)度是否允許為空說(shuō)明ID自動(dòng)編號(hào)Username文本16否投訴人用戶(hù)名Username1文本16否被投訴人用戶(hù)名Qusetion文本50否投訴描述Date時(shí)間10否投訴時(shí)間4.2.3 數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接操作是一個(gè)相當(dāng)頻繁的操作,在ASP的數(shù)據(jù)庫(kù)編程中,connection對(duì)象是我們

18、不可能離開(kāi)的一個(gè)對(duì)象,該對(duì)象是ADO對(duì)象模塊中的一個(gè)專(zhuān)門(mén)打開(kāi)和關(guān)閉數(shù)據(jù)庫(kù)連接的對(duì)象,在對(duì)數(shù)據(jù)庫(kù)進(jìn)行任何的操作,比如更新記錄,插入,刪除,檢索等,都必須以connection對(duì)象的建立為前提。形象地來(lái)說(shuō),connection對(duì)象就是程序與數(shù)據(jù)庫(kù)溝通的管道,所有對(duì)數(shù)據(jù)庫(kù)的操作,都必須經(jīng)過(guò)它,因此,本系統(tǒng)首先建立一個(gè)connection對(duì)象的實(shí)例變量,然后才能在它的基礎(chǔ)上建立Recordset對(duì)象實(shí)例來(lái)操作數(shù)據(jù)庫(kù)。這里首先利用connection對(duì)象的屬性ConnStr 設(shè)置數(shù)據(jù)庫(kù)的連接方式,使用的是Access OLE DB驅(qū)動(dòng)程序。使用server.createobject方法建立connect

19、ion對(duì)象的實(shí)例變量conn,使用connection對(duì)象的Open方法打開(kāi)數(shù)據(jù)庫(kù)連接,核心代碼如下:connstr="DBQ="+server.mappath("userdata.mdb")+"DefaultDir=;DRIVER=Microsoft Access Driver (*.mdb);"set conn=server.createobject("ADODB.CONNECTION")conn.open connstr其中,還使用了server對(duì)象的Server.MapPath(Path)方法,作用是將(p

20、ath)指定的虛擬路徑轉(zhuǎn)換為實(shí)際路徑,大大提高了本系統(tǒng)的移植性。5 系統(tǒng)功能具體實(shí)現(xiàn)聊天室的功能主要是實(shí)現(xiàn)用戶(hù)的發(fā)言和觀看大家發(fā)言的內(nèi)容,發(fā)言界面和聊天內(nèi)容需要顯示在同一屏界面中,以方便發(fā)言和觀看,另外,通常還需要顯示當(dāng)前在線(xiàn)的人數(shù)和用戶(hù)列表,以方便選擇對(duì)誰(shuí)發(fā)言。用戶(hù)書(shū)寫(xiě)發(fā)言的界面、聊天內(nèi)容的顯示、用戶(hù)列表的顯示均需要通過(guò)單獨(dú)的頁(yè)面來(lái)實(shí)現(xiàn),為了能在同一屏界面中同時(shí)顯示多個(gè)頁(yè)面的內(nèi)容,此時(shí)需要利用帶框架集的頁(yè)面來(lái)實(shí)現(xiàn)??蚣芗嵌鄠€(gè)框架的集合,每一個(gè)框架可顯示一個(gè)頁(yè)面的內(nèi)容,在同一屏中需要顯示多少個(gè)頁(yè)面,就需要?jiǎng)?chuàng)建一個(gè)具有多少個(gè)框架的框架集來(lái)實(shí)現(xiàn),整個(gè)框架集最后存盤(pán)形成一個(gè)頁(yè)面,以后瀏覽該頁(yè)面時(shí),

21、各框架集中的內(nèi)容就會(huì)自動(dòng)顯示出來(lái)。5.1 用戶(hù)注冊(cè)登陸模塊5.1.1 用戶(hù)注冊(cè)在聊天室首頁(yè),單擊“用戶(hù)注冊(cè)”,便可進(jìn)入用戶(hù)注冊(cè)頁(yè)面,如圖5.1所示圖5.1 用戶(hù)注冊(cè)頁(yè)面用戶(hù)進(jìn)入注冊(cè)頁(yè)面后,根據(jù)要求,填寫(xiě)表單中各項(xiàng)數(shù)據(jù),單擊確定后,系統(tǒng)通過(guò)表單傳遞的“POST”方法,將輸入的內(nèi)容傳遞給后臺(tái)處理頁(yè)面usersave.asp進(jìn)行寫(xiě)入數(shù)據(jù)庫(kù)處理。其中,在進(jìn)行表單傳遞的時(shí)候,系統(tǒng)還調(diào)用了check()函數(shù)對(duì)填入表單的數(shù)據(jù)進(jìn)行檢驗(yàn),一旦發(fā)現(xiàn)表單中有一個(gè)數(shù)據(jù)項(xiàng)不符合要求,系統(tǒng)便會(huì)彈出出錯(cuò)信息,提示用戶(hù)重新填寫(xiě)。在后臺(tái)處理頁(yè)面中,系統(tǒng)先定義對(duì)應(yīng)于表單各數(shù)據(jù)項(xiàng)的變量,利用ASP內(nèi)置的Request對(duì)象,將用戶(hù)填

22、入表單的數(shù)據(jù)賦給這些變量,在存入數(shù)據(jù)庫(kù)的時(shí)候直接將變量值添入數(shù)據(jù)庫(kù)即可。對(duì)從表單得到的“密碼”、“密碼提示答案”的關(guān)鍵數(shù)據(jù),在存入數(shù)據(jù)庫(kù)的時(shí)候,系統(tǒng)還調(diào)用了MD5()函數(shù)(MD5加密程序),對(duì)數(shù)據(jù)進(jìn)行加密處理,這樣,存入數(shù)據(jù)庫(kù)中的“密碼”、“密碼提示答案”字段的值將以密文形式存放,提高了用戶(hù)信息的安全性。當(dāng)表單數(shù)據(jù)通過(guò)審核并對(duì)需要加密的數(shù)據(jù)進(jìn)行加密后,后臺(tái)處理頁(yè)面便創(chuàng)建一個(gè)Recordset對(duì)象實(shí)例來(lái)訪問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)信息表,實(shí)現(xiàn)代碼為set rs=server.createobject("adodb.recordset")使用Recordset對(duì)象的BOF和EOF屬性來(lái)查看

23、此用戶(hù)名是否已被注冊(cè),如果用戶(hù)名已被注冊(cè),則以Response對(duì)象的Redirect方法提示用戶(hù)重新注冊(cè),保證了用戶(hù)名的唯一性。若條件為假,則將表單數(shù)據(jù)同加密數(shù)據(jù)寫(xiě)入用戶(hù)注冊(cè)表中,完成注冊(cè),實(shí)現(xiàn)代碼為sql="select * from user where 用戶(hù)名='"&name&"'"rs.Open sql,conn,1,3if not rs.eof or not rs.bof thenresponse.write "<br><br><p align=center><

24、font color=red>該用戶(hù)名已被注冊(cè),請(qǐng)重新注冊(cè)其他用戶(hù)名!</font></p>"else rs.addnew頁(yè)面提示注冊(cè)成功后,用戶(hù)便可從聊天室首頁(yè)進(jìn)行登陸,進(jìn)入聊天室。5.1.2 用戶(hù)登錄用戶(hù)在聊天室登錄界面填入正確的注冊(cè)信息,單擊登錄,系統(tǒng)將自動(dòng)把用戶(hù)填入的“帳號(hào)”、“密碼”于數(shù)據(jù)庫(kù)中存放的用戶(hù)注冊(cè)信息進(jìn)行比對(duì)驗(yàn)證。系統(tǒng)進(jìn)行用戶(hù)身份驗(yàn)證時(shí),首先利用Request對(duì)象,將用戶(hù)填入的“帳號(hào)”(即用戶(hù)名)、“密碼”傳遞給預(yù)先定義的變量,再使用Select語(yǔ)句,將變量值與用戶(hù)信息表進(jìn)行比對(duì)sql="select * from user

25、 where password='"&password&"' and name='"&username&"'"其中,由于系統(tǒng)在添加用戶(hù)信息進(jìn)入數(shù)據(jù)庫(kù)表的時(shí)候,對(duì)“密碼“字段進(jìn)行了MD5加密處理,存放在數(shù)據(jù)庫(kù)中的密碼是經(jīng)過(guò)加密后的MD5值,因此,在驗(yàn)證用戶(hù)密碼是否符合時(shí),系統(tǒng)把用戶(hù)輸入的密碼計(jì)算成MD5值,再與存放在系統(tǒng)中的密碼MD5值進(jìn)行比較,在整個(gè)過(guò)程中,系統(tǒng)都不知道用戶(hù)的密碼具體時(shí)多少。這里,同樣使用了recordset對(duì)象的BOF和EOF屬性來(lái)查看是否有該用戶(hù)的注冊(cè)信息,判斷

26、語(yǔ)句與注冊(cè)中的判斷語(yǔ)句相同,不同的是判斷結(jié)果若為真,說(shuō)明該用戶(hù)為聊天室注冊(cè)的合法用戶(hù),這時(shí),以Response對(duì)象的Redirect方法跳轉(zhuǎn)到聊天主頁(yè)面,Response對(duì)象的Redirect方法是實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn),使當(dāng)前頁(yè)面跳轉(zhuǎn)到指定的頁(yè)面。在用戶(hù)登錄進(jìn)聊天主頁(yè)面的同時(shí),系統(tǒng)將通過(guò)驗(yàn)證的用戶(hù)名以及用戶(hù)信息表中對(duì)應(yīng)用戶(hù)名的“l(fā)eves”值傳遞給特別定義的session對(duì)象session(“user”)以及session(“l(fā)eves”)。session("user")=usernamesession("leves")=rs("leves"

27、;)Session對(duì)象的用途是記錄瀏覽器端專(zhuān)用的變量,將用戶(hù)名和該用戶(hù)對(duì)應(yīng)的權(quán)限存放在session對(duì)象中,便可在后面的聊天頁(yè)面和在線(xiàn)用戶(hù)列表頁(yè)面直接讀取瀏覽器端的變量值,顯示出用戶(hù)名和用戶(hù)權(quán)限所具有的功能,本系統(tǒng)中,主要是管理員的管理功能。經(jīng)過(guò)上述的用戶(hù)驗(yàn)證和數(shù)據(jù)傳遞,系統(tǒng)跳轉(zhuǎn)到聊天頁(yè)面,此時(shí)用戶(hù)便可在聊天主頁(yè)面進(jìn)行聊天交流了。5.2 用戶(hù)密碼修改當(dāng)聊天室注冊(cè)用戶(hù)不小心忘記了注冊(cè)密碼或者把密碼記錯(cuò),用戶(hù)將無(wú)法再次進(jìn)入聊天室,也就無(wú)法與聊得來(lái)的朋友繼續(xù)聊天。針對(duì)這種情況,系統(tǒng)設(shè)置了用戶(hù)密碼修改功能,以便系統(tǒng)中合法的注冊(cè)用戶(hù)在忘記密碼后,能重新設(shè)置新密碼來(lái)登錄系統(tǒng),以避免用戶(hù)無(wú)法登錄。在聊天室首

28、頁(yè),單擊“忘記密碼”,進(jìn)入用戶(hù)密碼修改頁(yè)面,如圖5.2所示圖5.2 密碼修改頁(yè)面在修改密碼的第一個(gè)頁(yè)面中(findpass.asp),系統(tǒng)要求用戶(hù)填入需要修改密碼的用戶(hù)名,單擊“確定“,系統(tǒng)通過(guò)表單的post方法,將輸入的用戶(hù)名傳遞給下一個(gè)頁(yè)面passque.asp,系統(tǒng)在轉(zhuǎn)到該頁(yè)面的同時(shí),會(huì)對(duì)用戶(hù)輸入的用戶(hù)名進(jìn)行驗(yàn)證,看是否是聊天室的合法注冊(cè)用戶(hù),驗(yàn)證方法與用戶(hù)登錄的驗(yàn)證方法相同。驗(yàn)證通過(guò)后,打開(kāi)passque.asp頁(yè)面,在該頁(yè)面中,修改密碼的用戶(hù)需要根據(jù)頁(yè)面中顯示的密碼提示問(wèn)題,填入正確的密碼提示問(wèn)題答案,即在注冊(cè)時(shí)用戶(hù)所填寫(xiě)的密碼提示問(wèn)題答案。設(shè)計(jì)這個(gè)頁(yè)面,是為了更謹(jǐn)慎地驗(yàn)證用戶(hù)的身份

29、,以避免別人冒名修改密碼,致使正常用戶(hù)無(wú)法登錄。在passque.asp頁(yè)面中,系統(tǒng)利用request對(duì)象把findpass.asp頁(yè)面?zhèn)鬟f的用戶(hù)名存在name變量中,接著查詢(xún)用戶(hù)信息表符合用戶(hù)名等于name的記錄,將該記錄所對(duì)應(yīng)的“問(wèn)題“用response.write方法顯示在頁(yè)面中name=Request("name")set rs = server.createobject("adodb.recordset")sql="select * from user where 用戶(hù)名='"&name&"

30、'"用戶(hù)根據(jù)頁(yè)面顯示的密碼提示問(wèn)題填入相應(yīng)的答案,單擊“確定”,將表單內(nèi)容傳遞給pass.asp頁(yè)面。在頁(yè)面后臺(tái),系統(tǒng)會(huì)首先將得到的答案與問(wèn)題在系統(tǒng)數(shù)據(jù)庫(kù)中進(jìn)行查詢(xún),只有在問(wèn)題和答案在一條記錄中同時(shí)匹配的時(shí)候,頁(yè)面的內(nèi)容才會(huì)顯示,否則,系統(tǒng)提示出錯(cuò),返回上一頁(yè)面。這里由于數(shù)據(jù)庫(kù)中存放的“答案”項(xiàng)是其MD5值,所以在進(jìn)行密碼提示問(wèn)題答案對(duì)比的時(shí)候,同樣是比較該數(shù)據(jù)的MD5值sql="select * from user where 用戶(hù)名='" & name & "' and 答案='" &

31、 answer & "'"rs.open sql,conn,1,3if rs.eof and rs.bof then%><script language=vbscript>alert ("密碼提示答案錯(cuò)誤,請(qǐng)返回驗(yàn)證!")location.href = "javascript:history.back()"在系統(tǒng)經(jīng)過(guò)用戶(hù)名、密碼提示問(wèn)題及密碼提示問(wèn)題答案的雙重身份驗(yàn)證后,用戶(hù)便可進(jìn)入密碼修改頁(yè)面。在頁(yè)面中,用戶(hù)需要填寫(xiě)新的登錄密碼來(lái)替換原來(lái)丟失的密碼。在進(jìn)行用戶(hù)密碼替換時(shí),使用數(shù)據(jù)庫(kù)的update語(yǔ)句

32、來(lái)修改數(shù)據(jù)庫(kù)中的密碼字段。系統(tǒng)首先創(chuàng)建一個(gè)Connection對(duì)象實(shí)例連接數(shù)據(jù)庫(kù),以便對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行修改。在打開(kāi)Connection對(duì)象實(shí)例后,利用該對(duì)象的execute方法執(zhí)行update語(yǔ)句,完成對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的修改。updatesql="update user set 密碼="'&newpwd&'"set rs=server.createobject("ADODB.Connection")rs.open rs.execute updatesql5.3 用戶(hù)發(fā)言進(jìn)入聊天主頁(yè)面后,用戶(hù)便可在主頁(yè)面下方的發(fā)言界

33、面設(shè)計(jì)書(shū)寫(xiě)自己想要說(shuō)的話(huà),以及想對(duì)誰(shuí)說(shuō),同時(shí),系統(tǒng)還提供了發(fā)言字體顏色選擇、插入表情、圖片的功能,如圖5.3所示,讓用戶(hù)的聊天更有趣味。圖5.3 用戶(hù)發(fā)言界面用戶(hù)發(fā)言界面采用ASP表單模式設(shè)計(jì),在表單中,用戶(hù)根據(jù)發(fā)言對(duì)象、發(fā)言?xún)?nèi)容、以及發(fā)言顏色填寫(xiě)發(fā)言數(shù)據(jù),填寫(xiě)完成后,單擊“提交”或按回車(chē)鍵,將發(fā)言?xún)?nèi)容轉(zhuǎn)入后臺(tái)處理。在處理發(fā)言數(shù)據(jù)的時(shí)候,為了避免用戶(hù)發(fā)言為空以及發(fā)言?xún)?nèi)容與上次發(fā)言?xún)?nèi)容重復(fù)的情況發(fā)生,系統(tǒng)定義了一個(gè)send()函數(shù),用來(lái)檢驗(yàn)用戶(hù)的發(fā)言。在send()函數(shù)中,系統(tǒng)定義了msg和post_msg 2個(gè)變量,用來(lái)存放本次發(fā)言?xún)?nèi)容和上次發(fā)言?xún)?nèi)容,在調(diào)用函數(shù)的執(zhí)行過(guò)程中使用if語(yǔ)句判斷上述

34、2中情況是否發(fā)生,如果出現(xiàn)發(fā)言為空或內(nèi)容重復(fù),系統(tǒng)便彈出錯(cuò)誤提示信息:“請(qǐng)輸入發(fā)言或動(dòng)作”;“請(qǐng)不要重復(fù)發(fā)言”。if (msg='')alert('請(qǐng)輸入發(fā)言或動(dòng)作!');document.af.msg.focus();return falseif (msg=post_msg)alert('請(qǐng)不要重復(fù)發(fā)言!');document.af.msg.focus();return false在發(fā)言界面中的字體顏色、動(dòng)作、表情、圖片均采用下拉式列表框的方式供用戶(hù)選擇,其中,各列表框的name屬性為sayscolor、addsing、addsays、tu,以

35、便在獲得用戶(hù)發(fā)言時(shí)根據(jù)這些列表框的name取得相應(yīng)的value值,顯示出來(lái)。<select name='sayscolor' onchange="document.af.msg.focus();bs(document.af.sayscolor.value)" style='font-size:12px'><select name='addsign' onchange="document.af.msg.value=(this.value);" style='font-size:12p

36、x'><select name='addsays' onchange="document.af.msg.focus();" style='font-size:12px'><select name='tu' onchange="document.af.msg.value=(this.value);" style='font-size:12px'>用戶(hù)發(fā)言的具體流程圖如圖5.4所示用戶(hù)發(fā)言提交發(fā)言顯示發(fā)言?xún)?nèi)容顯示提示信息,中止表單提交發(fā)言?xún)?nèi)容是否為空是否與上

37、次內(nèi)容相同是是否否開(kāi)始結(jié)束圖5.4 用戶(hù)發(fā)言流程圖5.4 聊天內(nèi)容顯示整個(gè)聊天主頁(yè)面中,占有面積最大的便是聊天內(nèi)容顯示區(qū)。如圖5.5所示。在這個(gè)區(qū)域,分了上下2個(gè)空間,上面的用來(lái)顯示聊天室的所有發(fā)言?xún)?nèi)容,下面用來(lái)顯示與當(dāng)前使用聊天室的用戶(hù)相關(guān)的內(nèi)容,如系統(tǒng)提示信息、用戶(hù)自己的發(fā)言以及其他用戶(hù)發(fā)來(lái)的密語(yǔ)。這個(gè)區(qū)域可以通過(guò)后面介紹的分屏操作實(shí)現(xiàn)一個(gè)顯示區(qū)和兩個(gè)顯示區(qū)的切換。圖5.5 聊天內(nèi)容顯示區(qū)聊天內(nèi)容顯示區(qū)可以顯示最近50條發(fā)言,為了保存最近的50條發(fā)言?xún)?nèi)容,系統(tǒng)定義一個(gè)具有50成員的一維數(shù)組sd_init;為了對(duì)應(yīng)保存每條發(fā)言是誰(shuí)對(duì)誰(shuí)發(fā)的,需定義一個(gè)towho(50,2)的二維數(shù)組,為了直觀

38、,使用時(shí)數(shù)組下標(biāo)均從1開(kāi)始。由于數(shù)組和變量的作用域僅限于當(dāng)前頁(yè)面,為了實(shí)現(xiàn)跨頁(yè)傳遞數(shù)據(jù)和對(duì)所有登錄用戶(hù)均有效,使得所有用戶(hù)都能看到聊天室里的發(fā)言?xún)?nèi)容,為此,需要將數(shù)組和所用到的相關(guān)變量的值賦給對(duì)應(yīng)的一組Application對(duì)象來(lái)保存。Application對(duì)象的用法與Session對(duì)象基本相同,利用Application對(duì)象所創(chuàng)建的變量,可以在整個(gè)應(yīng)用中被所有用戶(hù)共享和訪問(wèn)。一個(gè)用戶(hù)修改或設(shè)置了改類(lèi)變量的值后,對(duì)于其他所有用戶(hù),也是可見(jiàn)的。從而可見(jiàn),利用Application對(duì)象所創(chuàng)建的變量,具有最大的作用域,有時(shí)也稱(chēng)為Application(應(yīng)用程序)級(jí)變量。聊天內(nèi)容顯示的具體流程圖如圖5

39、.6所示。獲取在線(xiàn)用戶(hù)列表數(shù)從表單中獲得用戶(hù)在對(duì)誰(shuí)發(fā)言從表單中獲得發(fā)言?xún)?nèi)容獲得提交表單的其他數(shù)據(jù)獲得發(fā)言?xún)?nèi)容,實(shí)現(xiàn)聊天內(nèi)容的輸出否否是是發(fā)言者在用戶(hù)列表中?發(fā)言對(duì)象在列表中?發(fā)言?xún)?nèi)容不為空?否是開(kāi)始結(jié)束圖5.6 發(fā)言?xún)?nèi)容顯示流程圖在聊天顯示頁(yè)面,由于每個(gè)用戶(hù)的發(fā)言?xún)?nèi)容均不相同,每個(gè)用戶(hù)的發(fā)言對(duì)象也不相同,那么,系統(tǒng)在顯示聊天內(nèi)容的時(shí)候就要求顯示頁(yè)面會(huì)自動(dòng)根據(jù)用戶(hù)的不同而顯示不同的聊天內(nèi)容。具體來(lái)說(shuō),就是只顯示與當(dāng)前使用者有關(guān)的聊天內(nèi)容,如自己的發(fā)言?xún)?nèi)容、發(fā)給自己的聊天內(nèi)容以及其他用戶(hù)對(duì)大家的發(fā)言。要實(shí)現(xiàn)這些內(nèi)容只有特定的用戶(hù)才能看見(jiàn),當(dāng)然就要用客戶(hù)端的session來(lái)實(shí)現(xiàn)。首先,內(nèi)容顯示頁(yè)面會(huì)

40、將存放當(dāng)前頁(yè)面用戶(hù)名的session值傳遞給后臺(tái)定義的一個(gè)變量,再將發(fā)言界面中的發(fā)言對(duì)象名賦給另一個(gè)變量,接著,再查找在線(xiàn)用戶(hù)列表,判斷發(fā)言對(duì)象是否還在線(xiàn)。判斷完畢,系統(tǒng)會(huì)將從發(fā)言界面得到的發(fā)言人和發(fā)言對(duì)象與存放用戶(hù)名的變量進(jìn)行對(duì)比,同時(shí),還會(huì)判斷發(fā)言對(duì)象是否是“大家”,如果,用戶(hù)名與發(fā)言人或發(fā)言對(duì)象中的一項(xiàng)相同或者發(fā)言對(duì)象是“大家”,那么,系統(tǒng)便會(huì)將傳遞的發(fā)言?xún)?nèi)容顯示在當(dāng)前的內(nèi)容顯示區(qū);如果都不符合說(shuō)明系統(tǒng)中的發(fā)言?xún)?nèi)容與當(dāng)前使用用戶(hù)無(wú)關(guān),顯示頁(yè)面將不顯示該條發(fā)言信息。如此,實(shí)現(xiàn)了系統(tǒng)針對(duì)特定用戶(hù)顯示特定內(nèi)容的功能。5.5 在線(xiàn)用戶(hù)列表顯示在聊天主頁(yè)面的右邊,豎長(zhǎng)方形區(qū)域是用來(lái)顯示在線(xiàn)用戶(hù)數(shù)和

41、在線(xiàn)用戶(hù)列表的。如圖5.7所示。圖5.7 用戶(hù)列表顯示頁(yè)面在顯示列表頁(yè)面中,系統(tǒng)定義了一個(gè)online的數(shù)組變量,用于存放在線(xiàn)用戶(hù)。在顯示時(shí),系統(tǒng)將存放在Application(onlinelist)的值傳遞給數(shù)組online,同時(shí)調(diào)用split函數(shù)進(jìn)行處理。接著用一個(gè)for循環(huán)語(yǔ)句,從online數(shù)組的第一個(gè)數(shù)據(jù)讀取到最后一個(gè)數(shù)據(jù),顯示在于面中。online=Application("onlinelist")online=split(online," ")for i=lbound(online) to ubound(online)-1Response.

42、Write "msg=msg+'<a href=javascript:parent.seluser('"&online(i)&"'); target=f2>"&online(i)&"</a><br>'"Next顯示在線(xiàn)用戶(hù)列表的流程圖如圖5.8所示圖5.8 顯示用戶(hù)列表流程圖5.6 管理功能本聊天室為了提高系統(tǒng)中用戶(hù)信息的可管理性,設(shè)計(jì)了針對(duì)管理員級(jí)別的管理功能,如圖5.9所示圖5.9 系統(tǒng)功能區(qū)然而,普通用戶(hù)在系統(tǒng)功能區(qū)中是無(wú)法看到管

43、理功能的。在顯示系統(tǒng)功能中的“管理”的時(shí)候,系統(tǒng)中設(shè)計(jì)了一個(gè)if語(yǔ)句來(lái)判斷用戶(hù)的權(quán)限是普通用戶(hù)還是管理員,用戶(hù)權(quán)限是存放在Session(leves)變量中的,在用戶(hù)登錄系統(tǒng)的時(shí)候查詢(xún)數(shù)據(jù)庫(kù)從而賦給該變量值,如果變量Session(leves)的值為admin,那么說(shuō)明當(dāng)前用戶(hù)是系統(tǒng)管理員,于是,對(duì)該用戶(hù)系統(tǒng)顯示出管理功能;若Session(leves)的值為user,那么,當(dāng)前用戶(hù)是普通用戶(hù),無(wú)法使用管理功能。<% if session("leves")="admin" then %><a href="manager.asp

44、" target=_blank>管 理</a><% end if%>在系統(tǒng)功能區(qū)中,單擊“管理”,便可進(jìn)入系統(tǒng)管理頁(yè)面。如圖5.10圖5.10 系統(tǒng)管理頁(yè)面在管理頁(yè)面中,設(shè)計(jì)的是對(duì)數(shù)據(jù)庫(kù)兩張表的鏈接,通過(guò)單擊“查看投訴信息”、“查看并管理注冊(cè)人員名單”便可實(shí)現(xiàn)將后臺(tái)數(shù)據(jù)庫(kù)中的表顯示在前臺(tái)頁(yè)面中,同時(shí),在顯示頁(yè)面中還加入了對(duì)表中記錄的刪除操作。在頁(yè)面中顯示的數(shù)據(jù)表的每一項(xiàng)記錄的末尾,添加了刪除按鈕,單擊它,便會(huì)執(zhí)行delete語(yǔ)句,刪除該記錄。opersql="delete * from baseuser where name='&quo

45、t;&operid&"'"conn.execute (opersql)5.7 輔助功能區(qū)輔助功能區(qū)界面如圖5.9所示,用戶(hù)可單擊界面中的分屏、名單、舉報(bào)、清屏、屏蔽、刷新以及退出,完成相應(yīng)操作。其中,管理是只對(duì)系統(tǒng)管理員開(kāi)放的功能,在前面已作介紹。(1)分屏在介紹聊天內(nèi)容顯示區(qū)的時(shí)候,提及了用戶(hù)可根據(jù)自己的習(xí)慣和喜好,將聊天內(nèi)容顯示頁(yè)面設(shè)置為上下兩個(gè)分區(qū)或直接顯示一個(gè)區(qū)域。用戶(hù)只需在輔助功能區(qū)中單擊分屏,便可在這兩種模式下進(jìn)行切換。分屏的實(shí)現(xiàn)方法其實(shí)是非常簡(jiǎn)單的,利用了onclick事件和框架標(biāo)簽frameset實(shí)現(xiàn)的一個(gè)操作。系統(tǒng)中首先定義了一個(gè)t

46、bclu的變量,用來(lái)存放分屏的狀態(tài)值,“true”或“false”,然后定義了一個(gè)tbclutch()函數(shù),當(dāng)用戶(hù)單擊“分屏”,系統(tǒng)便調(diào)用該函數(shù)用來(lái)判斷tbclu變量值,并執(zhí)行函數(shù)中定義的操作,對(duì)frameset的屬性值進(jìn)行設(shè)置。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) 屏蔽用戶(hù)在聊天過(guò)程中,難免會(huì)遇到一些與自己交流不愉快的人,但某些人又可能對(duì)自己死纏爛打,強(qiáng)行進(jìn)行私聊,發(fā)送私聊信息過(guò)來(lái),擾亂用戶(hù)正常發(fā)言交流,為了防范用戶(hù)被無(wú)聊的人打擾,系統(tǒng)為用戶(hù)提供了屏蔽功能,單擊“屏蔽”,系統(tǒng)會(huì)將在線(xiàn)用戶(hù)顯示頁(yè)面更換為屏蔽頁(yè)面,將除當(dāng)前用戶(hù)外的人員顯示出來(lái),并且,在每個(gè)用戶(hù)名前

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論