![網(wǎng)上聊天系統(tǒng)設(shè)計與實現(xiàn)論文畢業(yè)設(shè)計說明_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8ae368b9-662e-4f6a-9c04-fade2a68043a/8ae368b9-662e-4f6a-9c04-fade2a68043a1.gif)
![網(wǎng)上聊天系統(tǒng)設(shè)計與實現(xiàn)論文畢業(yè)設(shè)計說明_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8ae368b9-662e-4f6a-9c04-fade2a68043a/8ae368b9-662e-4f6a-9c04-fade2a68043a2.gif)
![網(wǎng)上聊天系統(tǒng)設(shè)計與實現(xiàn)論文畢業(yè)設(shè)計說明_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8ae368b9-662e-4f6a-9c04-fade2a68043a/8ae368b9-662e-4f6a-9c04-fade2a68043a3.gif)
![網(wǎng)上聊天系統(tǒng)設(shè)計與實現(xiàn)論文畢業(yè)設(shè)計說明_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8ae368b9-662e-4f6a-9c04-fade2a68043a/8ae368b9-662e-4f6a-9c04-fade2a68043a4.gif)
![網(wǎng)上聊天系統(tǒng)設(shè)計與實現(xiàn)論文畢業(yè)設(shè)計說明_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/13/8ae368b9-662e-4f6a-9c04-fade2a68043a/8ae368b9-662e-4f6a-9c04-fade2a68043a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 中國石油大學(華東)現(xiàn)代遠程教育畢業(yè)設(shè)計(論文)題目:基于ASP的網(wǎng)上聊天系統(tǒng)的設(shè)計與實現(xiàn)學習中心:函授站 年級專業(yè): 網(wǎng)絡(luò)11秋專升本 學生:譙立柱 學 號:指導教師: 徐功文老師 職 稱: 教授 導師單位: 中國石油大學(華東) 中國石油大學(華東)遠程與繼續(xù)教育學院論文完成時間: 2013年 5月 20中國石油大學(華東)現(xiàn)代遠程教育畢業(yè)設(shè)計(論文)任務(wù)書發(fā)給學員1設(shè)計(論文)題目:2學生完成設(shè)計(論文)期限:年月日至年月日 3設(shè)計(論文)課題要求:4實驗(上機、調(diào)研)部分要求容:5文獻查閱要求:6發(fā) 出 日 期:年月日 7學員完成日期:年月日指導教師簽名: 學 生 簽 名:摘 要隨著
2、網(wǎng)絡(luò)的逐漸普與,以與網(wǎng)絡(luò)技術(shù)的不段發(fā)展,人們通過網(wǎng)絡(luò)進行交流的方式變得多樣化。網(wǎng)絡(luò)聊天室便是其中之一。聊天室系統(tǒng)的即時交流方式滿足了網(wǎng)絡(luò)中多人同時聊天交流的需要,使得較多的人在同一個聊天頁面進行交流變得方便,簡單。本設(shè)計所完成的網(wǎng)絡(luò)聊天室具有常用聊天室的所有功能,包括多人同時在線聊天、兩人間的私密聊天、在發(fā)言的時候能夠發(fā)送表情與圖片,還能顯示在線用戶列表,同時,為了管理聊天室中的用戶,設(shè)計了用戶注冊登陸功能,用戶管理功能以與用戶留言功能。并且,加入了分屏、清屏、屏蔽的輔助功能,增加了聊天室的操作性。本文首先介紹了聊天室系統(tǒng)所使用到的一些關(guān)鍵技術(shù),接著介紹了該系統(tǒng)的設(shè)計思路和需求分析,然后是對系
3、統(tǒng)的詳細介紹,包括系統(tǒng)中創(chuàng)建的數(shù)據(jù)庫以與系統(tǒng)的具體功能介紹。關(guān)鍵詞:聊天室;B/S模式;私聊;留言目 錄第1章 引 言11.1 項目開發(fā)背景11.2 項目開發(fā)的目的11.3 項目提出的意義11.4 系統(tǒng)的開發(fā)方法2第2章 系統(tǒng)主要技術(shù)分析與聊天系統(tǒng)分析32.1 ASP技術(shù)32.2 數(shù)據(jù)庫技術(shù)32.3 加密技術(shù)42.4 需求分析42.5 系統(tǒng)總體結(jié)構(gòu)52.6 模塊功能分析52.7 系統(tǒng)總體規(guī)劃7第3章 系統(tǒng)數(shù)據(jù)庫設(shè)計3.1 數(shù)據(jù)庫概念模型73.2 數(shù)據(jù)庫各表設(shè)計73.3 數(shù)據(jù)庫的實現(xiàn)83.4 數(shù)據(jù)庫的設(shè)計93.5 實現(xiàn)數(shù)據(jù)庫之間的聯(lián)系93.6 數(shù)據(jù)庫的連接方法9第4章 系統(tǒng)功能具體實現(xiàn)104.1
4、 用戶注冊登陸模塊104.1.1 用戶注冊104.1.2 用戶登陸114.1.3 用戶密碼修改124.2 用戶發(fā)言134.3 聊天容顯示154.4 在線用戶列表顯示184.5 管理功能194.6 輔助功能區(qū)20結(jié)束語23致 24主要參考文獻2526 / 30第1章 引 言1.1項目開發(fā)背景隨著網(wǎng)絡(luò)的逐漸普與,以與網(wǎng)絡(luò)技術(shù)的不段發(fā)展,人們通過網(wǎng)絡(luò)進行交流的方式變得多樣化。網(wǎng)絡(luò)聊天室便是其中之一。在建設(shè)迅速發(fā)展的今天,基于B/S模式的ASP網(wǎng)絡(luò)聊天室已經(jīng)成為較多網(wǎng)民認可的一種聊天交流平臺,各種專家座談、在線答疑室,實質(zhì)就是聊天室。聊天室系統(tǒng)的即時交流方式滿足了網(wǎng)絡(luò)中多人同時聊天交流的需要,使得較多
5、的人在同一個聊天頁面進行交流變得方便,簡單。1.2項目開發(fā)的目的 本聊天室的開發(fā)目的就是為人們在網(wǎng)絡(luò)中提供一個即時的網(wǎng)頁交流平臺,通過這個平臺,人們可以隨意發(fā)言和觀看大家發(fā)言的容。其中的一大特點就是聊天室中的用戶可以選擇發(fā)言的對象,進行一對一的私聊,別人是無法看到兩人間對話的容的。1.3項目服務(wù)器結(jié)構(gòu)與數(shù)據(jù)庫類型本系統(tǒng)開發(fā)采用B/S(瀏覽器/服務(wù)器)結(jié)構(gòu),參考網(wǎng)絡(luò)中正在使用的大型聊天室的架構(gòu)、分析聊天室可實現(xiàn)功能,結(jié)合本次設(shè)計的相關(guān)要求,進行開發(fā)設(shè)計并寫出需求分析說明書。具體開發(fā)環(huán)境:使用windows2003作為服務(wù)器運行平臺,同時搭建系統(tǒng)運行平臺IIS、DNS域名服務(wù)器;以ASP語言作為開
6、發(fā)語言,主要研究HTML、JAVA SCRIPT、VB SCRIPT以與SQL數(shù)據(jù)庫語言;后臺數(shù)據(jù)庫使用SQL SERVER或系統(tǒng)自帶的ACCESS數(shù)據(jù)庫;開發(fā)工具包括DREAMAVER、PHOTOSHOP、IE、SQL SERVER等。1.4項目提出的意義 Internet是目前世界上最大的計算機互聯(lián)網(wǎng)絡(luò),它遍布全球,將世界各地各種規(guī)模的網(wǎng)絡(luò)連接成一個整體。作為Internet上一種先進的,易于被人們所接受的信息檢索手段,World Wide Web(簡稱WWW)發(fā)展十分迅速,成為目前世界上最大的信息資源寶庫。據(jù)估計,目前Internet上已有上百萬個Web站點,其容圍跨越了教育科研、文化事
7、業(yè)、金融、商業(yè)、新聞出版、娛樂、體育等各個領(lǐng)域,其用戶群十分龐大,因此,建設(shè)一個好的Web站點對于一個機構(gòu)的發(fā)展十分重要。近年來計算機技術(shù)的快速發(fā)展,特別是計算機網(wǎng)絡(luò)的發(fā)展,越來越深刻的改變了人們生活的方方面面。使得人們能以更低廉的價格,開發(fā)出更方便、更實用的網(wǎng)絡(luò)工具。各種在線服務(wù)系統(tǒng),更是深刻的影響了人們的聯(lián)系和交流方式,使得人們可以在遠隔千里之遙隨時通訊。過去的種種舊的聯(lián)系方式,已經(jīng)不能滿足現(xiàn)代生活的需要。網(wǎng)上聊天系統(tǒng)作為一種方便消費者與人們之間聯(lián)系的實用系統(tǒng)便應(yīng)運而生。網(wǎng)上聊天系統(tǒng)是為人們進行交流和聯(lián)系提供的一個平臺。通過提供完善的網(wǎng)上聊天系統(tǒng)的管理,可以達到增進人們與消費者之間、消費者
8、與消費者之間的交流和聯(lián)系的目的。第2章 系統(tǒng)主要技術(shù)分析與聊天系統(tǒng)分析2.1 ASP技術(shù)ASP技術(shù)是一種類似HTML(Hypertext Markup Language超文本標識語言)、Script與CGI(Common Gateway Interface通用網(wǎng)關(guān)接口)的結(jié)合體,簡單的講它是一種運行于服務(wù)器的腳本語言,但是其運行效率比CGI更高、程序編制也比HTML更方便且更有靈活性,程序安全性與性也遠比Script好。其特點歸納如下:1.ASP可以和HTML或其他腳本語言(VB Script與Java Script)互相嵌套。2.ASP是一種在Web服務(wù)器端運行的腳本語言,因此,程序代碼完全
9、。3.ASP以對象為基礎(chǔ),因此可以使用ActiveX控件繼續(xù)擴充其功能。4.ASP置ADO組件,因此可以輕松地存取各種數(shù)據(jù)庫,大大縮短了程序開發(fā)時間。5.ASP可以將運行結(jié)果以HTML的格式傳送至客戶端瀏覽器,因此ASP可以適用于各種瀏覽器。下面來介紹一下ASP的幾個置對象:Request對象,我們知道 通訊協(xié)議是一種請求與響應(yīng)(Request/Response)的通訊協(xié)議,因此通常由客戶端向Web服務(wù)器提出請求,Web服務(wù)器才會響應(yīng)信息。因此在ASP中,特別將“客戶端提出的要求”與“Web服務(wù)器響應(yīng)的信息”等動作封裝成Request對象與Response對象。換而言之,Request對象通常
10、包含了用戶端的相關(guān)信息,如瀏覽器的種類、表頭信息、表單參數(shù)與cookies等等。Response對象,每一種程序語言或開發(fā)工具一定都有與用戶溝通的界面或函數(shù),ASP也不例外。在ASP中負責將信息傳達到用戶的對象就是Response對象。Server對象,Server對象允許用戶取得服務(wù)器提供的各項功能,例如,Server對象的CreateObject方法允許客戶端用戶建立一個ActiveX Server組件實例,其所建立組件實例會隨著服務(wù)器端完成ASP網(wǎng)頁的處理而自動被釋放。如果希望此對象實例可以跨多個ASP網(wǎng)頁,就要用到Session對象保留該組件實例,直到Session對象的運行時間到了,
11、或是在其他ASP網(wǎng)頁調(diào)用Session對象的Abandon方法,此組件實例才會被釋放。Session對象,Session對象在ASP程序編寫中占了相當重的份量,由于網(wǎng)頁是一種無狀態(tài)的程序,因此幾乎無法知道用戶的瀏覽狀態(tài)。必須通過Session對象記錄用戶的相關(guān)信息,以供用戶再次對此Web服務(wù)器提出要求時作確認,例如,在某些特定的網(wǎng)頁中,常需要用戶輸入確認的賬號和密碼,假如這些身份確認的結(jié)果無法保留,那豈不是每一個網(wǎng)頁都需要重新輸入一次密碼。換而言之,每一個Session的用戶,Web服務(wù)器均會自動的為它們建立一個Session。必須說明,Session對象只能適用于具備Cookie功能的瀏覽器
12、。2.2 數(shù)據(jù)庫技術(shù)在基于微軟IIS/PWS的網(wǎng)絡(luò)平臺上,通過服務(wù)器端運行的ASP程序來訪問后臺數(shù)據(jù)庫,是一種最常見的模式了。而對于小型的數(shù)據(jù)庫應(yīng)用需求,微軟的Access數(shù)據(jù)庫應(yīng)該是與ASP程序配套使用的首選。由于Access數(shù)據(jù)庫的ODBC驅(qū)動程序支持的SQL指令全,執(zhí)行效率高,所以Access后臺數(shù)據(jù)庫+ASP服務(wù)器端程序+客戶端IE瀏覽器,是一個精練實用高效的組合模式。利用SQL語言,可以查詢和管理自已的數(shù)據(jù)庫。它由大約30條命令構(gòu)成,但實際只需要少數(shù)的幾個命令就可以完成相當多的工作,常用的SQL查詢命令有:Select、Insert、Delete、Update等。2.3 加密技術(shù)本設(shè)
13、計在用戶密碼和密碼問題答案的存儲時使用了MD5加密算法來保護數(shù)據(jù)庫中的重要數(shù)據(jù)。MD5,即“Message-Digest Algorithm 5(信息-摘要算法)”,以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經(jīng)過一系列的處理后,算法的輸出由四個32位分組組成,將這四個32位分組級聯(lián)后將生成一個128位的散列值。本設(shè)計在保存會員密碼和密碼提示問題答案時都先將傳遞的數(shù)據(jù)通過MD5加密后才存入數(shù)據(jù)庫,故在數(shù)據(jù)庫中只能看到已經(jīng)加密的信息,保證了信息的安全。又因為該算法是單向加密的,沒有解密算法,然而MD5算法對同一段明文加密得出的密文是唯一且一樣的,相當于這段數(shù)據(jù)的數(shù)據(jù)指
14、紋,所以當有數(shù)據(jù)要和保存的數(shù)據(jù)進行比較時,便可通過將需要對比的數(shù)據(jù)進行MD5加密后再對比。2.4 需求分析本系統(tǒng)采用B/S模式設(shè)計,開發(fā)目的主要是在網(wǎng)絡(luò)中提供一個安全的供多人休閑聊天交流的平臺,同時借助開發(fā)此系統(tǒng)提高自己的獨自設(shè)計能力。系統(tǒng)運行環(huán)境:本系統(tǒng)是在windows 2003 server操作系統(tǒng)下,搭建IIS系統(tǒng)運行平臺,使用DREAMWEAVER和Frontpage作為開發(fā)工具開發(fā)的,數(shù)據(jù)庫使用ACCESS 2003。運行本系統(tǒng),需要滿足如下要求:(1) 服務(wù)器端配置:Windows 2000 ServicePack 4.0 以上操作系統(tǒng),Internet 信息服務(wù)器 5.0(II
15、S 5.0)Microsoft Offices ACCESS 2000 以上版本(2)客戶端要求配置Windows 2000 ServicePack 4.0 以上操作系統(tǒng),IE瀏覽器5.0與以上版本2.5系統(tǒng)總體結(jié)構(gòu)根據(jù)聊天室的主要功能分析,本系統(tǒng)一共分為七大功能模塊:用戶注冊登陸模塊、發(fā)言功能模塊、聊天容顯示功能模塊、顯示用戶列表模塊、輔助功能區(qū)模塊、管理功能模塊以與用戶密碼修改功能模塊。其中輔助功能區(qū)包括用戶舉報模塊以與分屏等操作功能,功能結(jié)構(gòu)圖如圖2-1所示。聊天室系統(tǒng)用戶注冊登陸模塊分屏功能用戶密碼修改模塊用戶發(fā)言模塊聊天內(nèi)容顯示模塊在線用戶列表顯示模塊輔助功能區(qū)模塊管理功能模塊清屏功
16、能屏蔽功能用戶舉報圖2-1 功能結(jié)構(gòu)圖2.6模塊功能分析(1)用戶注冊登陸模塊完成新用戶注冊,將注冊信息添加到數(shù)據(jù)庫中,用于用戶登陸驗證;經(jīng)過登陸驗證的用戶,方可進入聊天室進行聊天交流。(2)用戶密碼修改模塊當用戶不小心忘記或記錯了自己的注冊密碼時,可通過修改密碼,重新設(shè)定登陸密碼,其中要經(jīng)過密碼提示問題的驗證,順利通過才能修改密碼。(3)用戶發(fā)言模塊除了提供發(fā)言容的輸入外,還應(yīng)能顯示當前用戶正在對誰發(fā)言、可選擇發(fā)言的顏色和發(fā)言的表情。發(fā)言的顏色和發(fā)言表情通過下拉式組合框?qū)崿F(xiàn)。發(fā)言容書寫完畢后,通過單擊“提交”按鈕或按回車,實現(xiàn)聊天容的顯示。(4)聊天容顯示模塊主要完成將每個用戶的發(fā)言的容顯示
17、在頁面中,讓這些容對每個登陸用戶均可見(除開私聊容),同時還能與時顯示各用戶的發(fā)言容,以便始終能顯示出最新的發(fā)言容。(5)在線用戶列表顯示模塊該頁面實現(xiàn)在線人數(shù)和在線用戶的統(tǒng)計,并將在線用戶依次顯示出來。每個顯示用戶應(yīng)設(shè)置為一個超,當單擊用戶名時,實現(xiàn)將發(fā)言區(qū)中的發(fā)言對象設(shè)置為該用戶。(6)輔助功能區(qū)模塊提供諸如分屏、清屏、刷新、屏蔽、顯示的操作功能。同時為用戶提供了舉報的流言功能。(7)管理模塊系統(tǒng)管理員可以查看用戶注冊信息以與用戶留言,并對其進行管理。2.7系統(tǒng)總體規(guī)劃聊天室系統(tǒng)的總體流程由用戶登陸開始,通過驗證后,用戶便可進入聊天頁面進行交流聊天,同時,系統(tǒng)會將新登陸用戶的用戶名添加進在
18、線用戶列表,即時更新。總體流程圖如圖2-2所示。用戶登錄統(tǒng)計在線人數(shù)、在用戶列表和發(fā)言數(shù)組中添加新用戶和公告信息。進入聊天主頁面注冊用戶?是否開始退出圖2-2 系統(tǒng)總體流程圖第3章 系統(tǒng)數(shù)據(jù)庫設(shè)計3.1 數(shù)據(jù)庫概念模型根據(jù)系統(tǒng)功能和和流程所需數(shù)據(jù)要求,可以確定數(shù)據(jù)庫中數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu),其E-R圖如圖3-1所示。表baseuser表 投訴驗證用戶名密碼問題答案性別emaillevesdatedatequestionIDUsername1username圖3-1 數(shù)據(jù)庫E-R圖E-R(Eneity-Relationship Approach)圖是最常用的概念模型表示方法,也是數(shù)據(jù)庫的核心和基礎(chǔ),它
19、是按用戶的觀點來對數(shù)據(jù)和信息建模的。3.2 數(shù)據(jù)庫各表設(shè)計對于聊天室系統(tǒng),所需的數(shù)據(jù)庫表有baseuser和投訴兩表。Baseuser表用于存放注冊用戶的基本信息,其具體字段設(shè)計如表3-2所示。表3-2baseuser表字段字段名數(shù)據(jù)類型長度是否允許為空說明Name文本16否用戶注冊名Password密碼50否用戶登陸密碼MD5值問題文本50否密碼提示問題答案密碼50否密碼提示問題答案MD5值Email文本50否用戶性別文本2否用戶性別Leves文本10否用戶權(quán)限D(zhuǎn)ate時間10否注冊時間投訴表用于存放用戶在聊天過程中向管理員反應(yīng)的舉報信息,具體字段設(shè)計如表3-3所示。表3-3 投訴表字段字段
20、名數(shù)據(jù)類型長度是否允許為空說明ID自動編號Username文本16否投訴人用戶名Username1文本16否被投訴人用戶名Qusetion文本50否投訴描述Date時間10否投訴時間3.3 數(shù)據(jù)庫的實現(xiàn)數(shù)據(jù)庫連接操作是一個相當頻繁的操作,在ASP的數(shù)據(jù)庫編程中,connection對象是我們不可能離開的一個對象,該對象是ADO對象模塊中的一個專門打開和關(guān)閉數(shù)據(jù)庫連接的對象,在對數(shù)據(jù)庫進行任何的操作,比如更新記錄,插入,刪除,檢索等,都必須以connection對象的建立為前提。形象地來說,connection對象就是程序與數(shù)據(jù)庫溝通的管道,所有對數(shù)據(jù)庫的操作,都必須經(jīng)過它,因此,本系統(tǒng)首先建立
21、一個connection對象的實例變量,然后才能在它的基礎(chǔ)上建立Recordset對象實例來操作數(shù)據(jù)庫。這里首先利用connection對象的屬性ConnStr 設(shè)置數(shù)據(jù)庫的連接方式,使用的是Access OLE DB驅(qū)動程序。使用server.createobject方法建立connection對象的實例變量conn,使用connection對象的Open方法打開數(shù)據(jù)庫連接,核心代碼如下:connstr=DBQ=+server.mappath(userdata.mdb)+;DefaultDir=;DRIVER=Microsoft Access Driver (*.mdb);set conn=
22、server.createobject(ADODB.CONNECTION)conn.open connstr其中,還使用了server對象的Server.MapPath(Path)方法,作用是將(path)指定的虛擬路徑轉(zhuǎn)換為實際路徑,大大提高了本系統(tǒng)的移植性。3.4 數(shù)據(jù)庫的設(shè)計 用戶的管理:包括合法系統(tǒng)用戶的注冊,登錄,退出等功能。. 設(shè)計要: 1 activetable表 記錄當前在線的用戶。 2 message 表 記錄當前用戶所留的信息。 3 user 表 當前所有注冊用戶的信息。3.5 實現(xiàn)數(shù)據(jù)庫之間的聯(lián)系 數(shù)據(jù)庫之間的關(guān)系指明兩個庫之間共享一個共同的關(guān)鍵字值。一個連接是指一種虛擬
23、的表,這種表是在當用戶要求從相互關(guān)聯(lián)的各個不同的表中獲取信息時建立的,關(guān)鍵字段用于在相互連接的不同表中查找匹配的記錄。一個更高級的連接形式稱為自連接。這種連接是指一個表被連接到它自己的一個字段,或在不同的紀錄中由重復數(shù)據(jù)的組合字段。數(shù)據(jù)庫中有三種不同類型的關(guān)鍵字:主關(guān)鍵字、組合關(guān)鍵字和外關(guān)鍵字。在表中使用的關(guān)鍵字類型用于描述庫表示什么以與在數(shù)據(jù)庫中如何與其它的庫建立關(guān)系。3.6 數(shù)據(jù)庫的連接方法 1.Access數(shù)據(jù)庫的DSN-less連接方法: set adocon=Server.Createobject(adodb.connection) adoconn.OpenDriver=Micros
24、oft Access Driver(*.mdb);DBQ=& _Server.MapPath(數(shù)據(jù)庫所在路徑) 2.Access OLE DB連接方法: set adocon=Server.Createobject(adodb.connection) adocon.openProvider=Microsoft.Jet.OLEDB.4.0;& _Data Source= & Server.MapPath(數(shù)據(jù)庫所在路徑)第4章 系統(tǒng)功能具體實現(xiàn)聊天室的功能主要是實現(xiàn)用戶的發(fā)言和觀看大家發(fā)言的容,發(fā)言界面和聊天容需要顯示在同一屏界面中,以方便發(fā)言和觀看,另外,通常還需要顯示當前在線的人數(shù)和用戶列表
25、,以方便選擇對誰發(fā)言。用戶書寫發(fā)言的界面、聊天容的顯示、用戶列表的顯示均需要通過單獨的頁面來實現(xiàn),為了能在同一屏界面中同時顯示多個頁面的容,此時需要利用帶框架集的頁面來實現(xiàn)。框架集是多個框架的集合,每一個框架可顯示一個頁面的容,在同一屏中需要顯示多少個頁面,就需要創(chuàng)建一個具有多少個框架的框架集來實現(xiàn),整個框架集最后存盤形成一個頁面,以后瀏覽該頁面時,各框架集中的容就會自動顯示出來。4.1用戶注冊登陸模塊4.1.1用戶注冊在聊天室首頁,單擊“用戶注冊”,便可進入用戶注冊頁面,如圖4-1所示圖4-1 用戶注冊頁面用戶進入注冊頁面后,根據(jù)要求,填寫表單中各項數(shù)據(jù),單擊確定后,系統(tǒng)通過表單傳遞的“PO
26、ST”方法,將輸入的容傳遞給后臺處理頁面usersave.asp進行寫入數(shù)據(jù)庫處理。其中,在進行表單傳遞的時候,系統(tǒng)還調(diào)用了check()函數(shù)對填入表單的數(shù)據(jù)進行檢驗,一旦發(fā)現(xiàn)表單中有一個數(shù)據(jù)項不符合要求,系統(tǒng)便會彈出出錯信息,提示用戶重新填寫。在后臺處理頁面中,系統(tǒng)先定義對應(yīng)于表單各數(shù)據(jù)項的變量,利用ASP置的Request對象,將用戶填入表單的數(shù)據(jù)賦給這些變量,在存入數(shù)據(jù)庫的時候直接將變量值添入數(shù)據(jù)庫即可。對從表單得到的“密碼”、“密碼提示答案”的關(guān)鍵數(shù)據(jù),在存入數(shù)據(jù)庫的時候,系統(tǒng)還調(diào)用了MD5()函數(shù)(MD5加密程序),對數(shù)據(jù)進行加密處理,這樣,存入數(shù)據(jù)庫中的“密碼”、“密碼提示答案”字
27、段的值將以密文形式存放,提高了用戶信息的安全性。當表單數(shù)據(jù)通過審核并對需要加密的數(shù)據(jù)進行加密后,后臺處理頁面便創(chuàng)建一個Recordset對象實例來訪問數(shù)據(jù)庫的用戶信息表,實現(xiàn)代碼為set rs=server.createobject(adodb.recordset)使用Recordset對象的BOF和EOF屬性來查看此用戶名是否已被注冊,如果用戶名已被注冊,則以Response對象的Redirect方法提示用戶重新注冊,保證了用戶名的唯一性。若條件為假,則將表單數(shù)據(jù)同加密數(shù)據(jù)寫入用戶注冊表中,完成注冊,實現(xiàn)代碼為sql=select * from user where 用戶名=&name&rs
28、.Open sql,conn,1,3if not rs.eof or not rs.bof thenresponse.write 該用戶名已被注冊,請重新注冊其他用戶名!else rs.addnew頁面提示注冊成功后,用戶便可從聊天室首頁進行登陸,進入聊天室。 網(wǎng)上聊天系統(tǒng)是為人們之間進行交流和聯(lián)系提供的一個平臺。通過提供完善的網(wǎng)上聊天系統(tǒng)服務(wù),可以達到增進彼此之間的了解,增進人與人之間的感情交流。4.1.2用戶登錄用戶在聊天室登錄界面填入正確的注冊信息,單擊登錄,系統(tǒng)將自動把用戶填入的“”、“密碼”于數(shù)據(jù)庫中存放的用戶注冊信息進行比對驗證。系統(tǒng)進行用戶身份驗證時,首先利用Request對象,
29、將用戶填入的“”(即用戶名)、“密碼”傳遞給預先定義的變量,再使用Select語句,將變量值與用戶信息表進行比對sql=select * from user where password=&password& and name=&username&其中,由于系統(tǒng)在添加用戶信息進入數(shù)據(jù)庫表的時候,對“密碼“字段進行了MD5加密處理,存放在數(shù)據(jù)庫中的密碼是經(jīng)過加密后的MD5值,因此,在驗證用戶密碼是否符合時,系統(tǒng)把用戶輸入的密碼計算成MD5值,再與存放在系統(tǒng)中的密碼MD5值進行比較,在整個過程中,系統(tǒng)都不知道用戶的密碼具體時多少。這里,同樣使用了recordset對象的BOF和EOF屬性來查看是否
30、有該用戶的注冊信息,判斷語句與注冊中的判斷語句一樣,不同的是判斷結(jié)果若為真,說明該用戶為聊天室注冊的合法用戶,這時,以Response對象的Redirect方法跳轉(zhuǎn)到聊天主頁面,Response對象的Redirect方法是實現(xiàn)頁面的跳轉(zhuǎn),使當前頁面跳轉(zhuǎn)到指定的頁面。在用戶登錄進聊天主頁面的同時,系統(tǒng)將通過驗證的用戶名以與用戶信息表中對應(yīng)用戶名的“l(fā)eves”值傳遞給特別定義的session對象session(“user”)以與session(“l(fā)eves”)。session(user)=usernamesession(leves)=rs(leves)Session對象的用途是記錄瀏覽器端專用的
31、變量,將用戶名和該用戶對應(yīng)的權(quán)限存放在session對象中,便可在后面的聊天頁面和在線用戶列表頁面直接讀取瀏覽器端的變量值,顯示出用戶名和用戶權(quán)限所具有的功能,本系統(tǒng)中,主要是管理員的管理功能。經(jīng)過上述的用戶驗證和數(shù)據(jù)傳遞,系統(tǒng)跳轉(zhuǎn)到聊天頁面,此時用戶便可在聊天主頁面進行聊天交流了。4.1.3 用戶密碼修改當聊天室注冊用戶不小心忘記了注冊密碼或者把密碼記錯,用戶將無法再次進入聊天室,也就無法與聊得來的朋友繼續(xù)聊天。針對這種情況,系統(tǒng)設(shè)置了用戶密碼修改功能,以便系統(tǒng)中合法的注冊用戶在忘記密碼后,能重新設(shè)置新密碼來登錄系統(tǒng),以避免用戶無法登錄。在聊天室首頁,單擊“忘記密碼”,進入用戶密碼修改頁面,
32、如圖4-2所示圖4-2 密碼修改頁面在修改密碼的第一個頁面中(findpass.asp),系統(tǒng)要求用戶填入需要修改密碼的用戶名,單擊“確定“,系統(tǒng)通過表單的post方法,將輸入的用戶名傳遞給下一個頁面passque.asp,系統(tǒng)在轉(zhuǎn)到該頁面的同時,會對用戶輸入的用戶名進行驗證,看是否是聊天室的合法注冊用戶,驗證方法與用戶登錄的驗證方法一樣。驗證通過后,打開passque.asp頁面,在該頁面中,修改密碼的用戶需要根據(jù)頁面中顯示的密碼提示問題,填入正確的密碼提示問題答案,即在注冊時用戶所填寫的密碼提示問題答案。設(shè)計這個頁面,是為了更謹慎地驗證用戶的身份,以避免別人冒名修改密碼,致使正常用戶無法登
33、錄。在passque.asp頁面中,系統(tǒng)利用request對象把findpass.asp頁面?zhèn)鬟f的用戶名存在name變量中,接著查詢用戶信息表符合用戶名等于name的記錄,將該記錄所對應(yīng)的“問題“用response.write方法顯示在頁面中name=Request(name)set rs = server.createobject(adodb.recordset)sql=select * from user where 用戶名=&name&用戶根據(jù)頁面顯示的密碼提示問題填入相應(yīng)的答案,單擊“確定”,將表單容傳遞給pass.asp頁面。在頁面后臺,系統(tǒng)會首先將得到的答案與問題在系統(tǒng)數(shù)據(jù)庫中進行
34、查詢,只有在問題和答案在一條記錄中同時匹配的時候,頁面的容才會顯示,否則,系統(tǒng)提示出錯,返回上一頁面。這里由于數(shù)據(jù)庫中存放的“答案”項是其MD5值,所以在進行密碼提示問題答案對比的時候,同樣是比較該數(shù)據(jù)的MD5值sql=select * from user where 用戶名= & name & and 答案= & answer & rs.open sql,conn,1,3if rs.eof and rs.bof then%alert (密碼提示答案錯誤,請返回驗證!)location.href = javascript:history.back()在系統(tǒng)經(jīng)過用戶名、密碼提示問題與密碼提示問題
35、答案的雙重身份驗證后,用戶便可進入密碼修改頁面。在頁面中,用戶需要填寫新的登錄密碼來替換原來丟失的密碼。在進行用戶密碼替換時,使用數(shù)據(jù)庫的update語句來修改數(shù)據(jù)庫中的密碼字段。系統(tǒng)首先創(chuàng)建一個Connection對象實例連接數(shù)據(jù)庫,以便對數(shù)據(jù)庫的數(shù)據(jù)進行修改。在打開Connection對象實例后,利用該對象的execute方法執(zhí)行update語句,完成對數(shù)據(jù)庫數(shù)據(jù)的修改。updatesql=update user set 密碼=&newpwd&set rs=server.createobject(ADODB.Connection)rs.open rs.execute updatesql 4
36、.2 用戶發(fā)言進入聊天主頁面后,用戶便可在主頁面下方的發(fā)言界面設(shè)計書寫自己想要說的話,以與想對誰說,同時,系統(tǒng)還提供了發(fā)言字體顏色選擇、插入表情、圖片的功能,如圖4-3所示,讓用戶的聊天更有趣味。圖4-3 用戶發(fā)言界面用戶發(fā)言界面采用ASP表單模式設(shè)計,在表單中,用戶根據(jù)發(fā)言對象、發(fā)言容、以與發(fā)言顏色填寫發(fā)言數(shù)據(jù),填寫完成后,單擊“提交”或按回車鍵,將發(fā)言容轉(zhuǎn)入后臺處理。在處理發(fā)言數(shù)據(jù)的時候,為了避免用戶發(fā)言為空以與發(fā)言容與上次發(fā)言容重復的情況發(fā)生,系統(tǒng)定義了一個send()函數(shù),用來檢驗用戶的發(fā)言。在send()函數(shù)中,系統(tǒng)定義了msg和post_msg 2個變量,用來存放本次發(fā)言容和上次發(fā)
37、言容,在調(diào)用函數(shù)的執(zhí)行過程中使用if語句判斷上述2中情況是否發(fā)生,如果出現(xiàn)發(fā)言為空或容重復,系統(tǒng)便彈出錯誤提示信息:“請輸入發(fā)言或動作”;“請不要重復發(fā)言”。if (msg=)alert(請輸入發(fā)言或動作!);document.af.msg.focus();return falseif (msg=post_msg)alert(請不要重復發(fā)言!);document.af.msg.focus();return false在發(fā)言界面中的字體顏色、動作、表情、圖片均采用下拉式列表框的方式供用戶選擇,其中,各列表框的name屬性為sayscolor、addsing、addsays、tu,以便在獲得用戶發(fā)
38、言時根據(jù)這些列表框的name取得相應(yīng)的value值,顯示出來。用戶發(fā)言的具體流程圖如圖4-4所示用戶發(fā)言提交發(fā)言顯示發(fā)言內(nèi)容顯示提示信息,中止表單提交發(fā)言內(nèi)容是否為空是否與上次內(nèi)容一樣是是否否開始結(jié)束圖4-4 用戶發(fā)言流程圖4.3聊天容顯示整個聊天主頁面中,占有面積最大的便是聊天容顯示區(qū)。如圖4.1.5所示在這個區(qū)域,分了上下2個空間,上面的用來顯示聊天室的所有發(fā)言容,下面用來顯示與當前使用聊天室的用戶相關(guān)的容,如系統(tǒng)提示信息、用戶自己的發(fā)言以與其他用戶發(fā)來的密語。這個區(qū)域可以通過后面介紹的分屏操作實現(xiàn)一個顯示區(qū)和兩個顯示區(qū)的切換。圖4-5 聊天容顯示區(qū)聊天容顯示區(qū)可以顯示最近50條發(fā)言,為了
39、保存最近的50條發(fā)言容,系統(tǒng)定義一個具有50成員的一維數(shù)組sd_init;為了對應(yīng)保存每條發(fā)言是誰對誰發(fā)的,需定義一個towho(50,2)的二維數(shù)組,為了直觀,使用時數(shù)組下標均從1開始。由于數(shù)組和變量的作用域僅限于當前頁面,為了實現(xiàn)跨頁傳遞數(shù)據(jù)和對所有登錄用戶均有效,使得所有用戶都能看到聊天室里的發(fā)言容,為此,需要將數(shù)組和所用到的相關(guān)變量的值賦給對應(yīng)的一組Application對象來保存。Application對象的用法與Session對象基本一樣,利用Application對象所創(chuàng)建的變量,可以在整個應(yīng)用中被所有用戶共享和訪問。一個用戶修改或設(shè)置了改類變量的值后,對于其他所有用戶,也是可見
40、的。從而可見,利用Application對象所創(chuàng)建的變量,具有最大的作用域,有時也稱為Application(應(yīng)用程序)級變量。聊天容顯示的具體流程圖如圖4-6所示。獲取在線用戶列表數(shù)從表單中獲得用戶在對誰發(fā)言從表單中獲得發(fā)言內(nèi)容獲得提交表單的其他數(shù)據(jù)獲得發(fā)言內(nèi)容,實現(xiàn)聊天內(nèi)容的輸出否否是是發(fā)言者在用戶列表中?發(fā)言對象在列表中?發(fā)言內(nèi)容不為空?否是開始結(jié)束圖4-6 發(fā)言容顯示流程圖在聊天顯示頁面,由于每個用戶的發(fā)言容均不一樣,每個用戶的發(fā)言對象也不一樣,那么,系統(tǒng)在顯示聊天容的時候就要求顯示頁面會自動根據(jù)用戶的不同而顯示不同的聊天容。具體來說,就是只顯示與當前使用者有關(guān)的聊天容,如自己的發(fā)言容
41、、發(fā)給自己的聊天容以與其他用戶對大家的發(fā)言。要實現(xiàn)這些容只有特定的用戶才能看見,當然就要用客戶端的session來實現(xiàn)。首先,容顯示頁面會將存放當前頁面用戶名的session值傳遞給后臺定義的一個變量,再將發(fā)言界面中的發(fā)言對象名賦給另一個變量,接著,再查找在線用戶列表,判斷發(fā)言對象是否還在線。判斷完畢,系統(tǒng)會將從發(fā)言界面得到的發(fā)言人和發(fā)言對象與存放用戶名的變量進行對比,同時,還會判斷發(fā)言對象是否是“大家”,如果,用戶名與發(fā)言人或發(fā)言對象中的一項一樣或者發(fā)言對象是“大家”,那么,系統(tǒng)便會將傳遞的發(fā)言容顯示在當前的容顯示區(qū);如果都不符合說明系統(tǒng)中的發(fā)言容與當前使用用戶無關(guān),顯示頁面將不顯示該條發(fā)言
42、信息。如此,實現(xiàn)了系統(tǒng)針對特定用戶顯示特定容的功能。4.4 在線用戶列表顯示在聊天主頁面的右邊,豎長方形區(qū)域是用來顯示在線用戶數(shù)和在線用戶列表的。如圖4-7所示。圖4-7 用戶列表顯示頁面在顯示列表頁面中,系統(tǒng)定義了一個online的數(shù)組變量,用于存放在線用戶。在顯示時,系統(tǒng)將存放在Application(onlinelist)的值傳遞給數(shù)組online,同時調(diào)用split函數(shù)進行處理。接著用一個for循環(huán)語句,從online數(shù)組的第一個數(shù)據(jù)讀取到最后一個數(shù)據(jù),顯示在于面中。online=Application(onlinelist)online=split(online, )for i=lb
43、ound(online) to ubound(online)-1Response.Write msg=msg+&online(i)&;Next顯示在線用戶列表的流程圖如圖4-8所示圖4-8 顯示用戶列表流程圖 4.5 管理功能本聊天室為了提高系統(tǒng)中用戶信息的可管理性,設(shè)計了針對管理員級別的管理功能,如圖4-9所示圖4-9 系統(tǒng)功能區(qū)然而,普通用戶在系統(tǒng)功能區(qū)中是無法看到管理功能的。在顯示系統(tǒng)功能中的“管理”的時候,系統(tǒng)中設(shè)計了一個if語句來判斷用戶的權(quán)限是普通用戶還是管理員,用戶權(quán)限是存放在Session(leves)變量中的,在用戶登錄系統(tǒng)的時候查詢數(shù)據(jù)庫從而賦給該變量值,如果變量Sessi
44、on(leves)的值為admin,那么說明當前用戶是系統(tǒng)管理員,于是,對該用戶系統(tǒng)顯示出管理功能;若Session(leves)的值為user,那么,當前用戶是普通用戶,無法使用管理功能。管理在系統(tǒng)功能區(qū)中,單擊“管理”,便可進入系統(tǒng)管理頁面。如圖4-10圖4-10 系統(tǒng)管理頁面在管理頁面中,設(shè)計的是對數(shù)據(jù)庫兩表的,通過單擊“查看投訴信息”、“查看并管理注冊人員”便可實現(xiàn)將后臺數(shù)據(jù)庫中的表顯示在前臺頁面中,同時,在顯示頁面中還加入了對表中記錄的刪除操作。在頁面中顯示的數(shù)據(jù)表的每一項記錄的末尾,添加了刪除按鈕,單擊它,便會執(zhí)行delete語句,刪除該記錄。opersql=delete * fr
45、om baseuser where name=&operid&conn.execute (opersql)4.6 輔助功能區(qū)輔助功能區(qū)界面如圖4.1.9所示,用戶可單擊界面中的分屏、舉報、清屏、屏蔽、刷新以與退出,完成相應(yīng)操作。其中,管理是只對系統(tǒng)管理員開放的功能,在前面已作介紹。(1)分屏在介紹聊天容顯示區(qū)的時候,提與了用戶可根據(jù)自己的習慣和喜好,將聊天容顯示頁面設(shè)置為上下兩個分區(qū)或直接顯示一個區(qū)域。用戶只需在輔助功能區(qū)中單擊分屏,便可在這兩種模式下進行切換。分屏的實現(xiàn)方法其實是非常簡單的,利用了onclick事件和框架標簽frameset實現(xiàn)的一個操作。系統(tǒng)中首先定義了一個tbclu的變量
46、,用來存放分屏的狀態(tài)值,“true”或“false”,然后定義了一個tbclutch()函數(shù),當用戶單擊“分屏”,系統(tǒng)便調(diào)用該函數(shù)用來判斷tbclu變量值,并執(zhí)行函數(shù)中定義的操作,對frameset的屬性值進行設(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) 屏蔽用戶在聊天過程中,難免會遇到一些與自己交流不愉快的人,但某些人又可能對自己死纏爛打,強行進行私聊
47、,發(fā)送私聊信息過來,擾亂用戶正常發(fā)言交流,為了防用戶被無聊的人打擾,系統(tǒng)為用戶提供了屏蔽功能,單擊“屏蔽”,系統(tǒng)會將在線用戶顯示頁面更換為屏蔽頁面,將除當前用戶外的人員顯示出來,并且,在每個用戶名前都設(shè)置了單選框,以便用戶選擇屏蔽對象。如果選擇了屏蔽某位用戶,那么該用戶發(fā)送的密語將不會在聊天容窗口中顯示,用戶也就無法看到屏蔽對象的發(fā)言,避免了騷擾。(3)單擊,是為了用戶在選擇了屏蔽對象后,返回用戶列表頁面設(shè)置的。主要就是利用reload()函數(shù)進行屏蔽和在線用戶列表切換。名 單(4)清屏當聊天室里的在線人員逐漸增多,大家的發(fā)言容也會隨著增加,聊天容顯示區(qū)很快便會被這些容填滿,顯得雜亂,使得用戶在查看聊天容時不方便。這時,用戶單擊“清屏”,系統(tǒng)會調(diào)用focus()函數(shù),將指定區(qū)域的容刪除,即聊天容顯示區(qū)變會把當前最新發(fā)言以前的所有發(fā)言容清空,使聊天容顯示區(qū)回到最初的無容狀態(tài)。onClick=parent.writ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商售后客服勞動合同協(xié)議書
- 礦山石子購銷合同
- 建設(shè)施工合同補充協(xié)議書范本
- 集裝箱管理服務(wù)合同書
- 貨物運輸保險合同范本
- 郵政營業(yè)員勞動合同
- 山西中醫(yī)藥大學《離散數(shù)學(下)》2023-2024學年第二學期期末試卷
- 配電柜購銷合同范本
- 惠州用人勞動合同
- 湖南民族職業(yè)學院《數(shù)學建模A》2023-2024學年第二學期期末試卷
- 寧騷公共政策學完整版筆記
- 走進奧運奧運知識簡介
- 項目負責人考試題庫含答案
- 光伏發(fā)電項目屋面作業(yè)安全檢查表
- GB/T 7251.5-2017低壓成套開關(guān)設(shè)備和控制設(shè)備第5部分:公用電網(wǎng)電力配電成套設(shè)備
- 2023年湖南高速鐵路職業(yè)技術(shù)學院高職單招(數(shù)學)試題庫含答案解析
- 中考語文非連續(xù)性文本閱讀10篇專項練習及答案
- 勇者斗惡龍9(DQ9)全任務(wù)攻略
- 經(jīng)顱磁刺激的基礎(chǔ)知識及臨床應(yīng)用參考教學課件
- 小學語文人教四年級上冊第四單元群文閱讀“神話故事之人物形象”PPT
- ISO 31000-2018 風險管理標準-中文版
評論
0/150
提交評論