freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于asp的網(wǎng)絡(luò)聊天室的設(shè)計和實現(xiàn)—計算機(論文)(編輯修改稿)

2025-01-11 02:31 本頁面
 

【文章內(nèi)容簡介】 定義的 session 對象session(“ user” )以及 session(“ leves” )。 session(user)=username session(leves)=rs(leves) Session 對象的用途是記錄瀏覽器端專用的變量,將用戶名和該用戶對應(yīng)的權(quán)限存放在 session 對象中,便可在后面的聊天頁面和在線用戶列表頁面直接 讀 第 11 頁 共 22 頁 取瀏覽器端的變量值,顯示出用戶名和用戶權(quán)限所具有的功能,本系統(tǒng)中,主要是管理員的管理功能。經(jīng)過上述的用戶驗證和數(shù)據(jù)傳遞,系統(tǒng)跳轉(zhuǎn)到聊天頁面,此時用戶便可在聊天主頁面進行聊天交流了。 用戶密碼修改 當(dāng)聊天室注冊用戶不小心忘記了注冊密碼或者把密碼記錯,用戶將無法再次進入聊天室,也就無法與聊得來的朋友繼續(xù)聊天。針對這種情況,系統(tǒng)設(shè)置了用戶密碼修改功能,以便系統(tǒng)中合法的注冊用戶在忘記密碼后,能重新設(shè)置新密碼來登錄系統(tǒng),以避免用戶無法登錄。 在聊天室首頁,單擊“忘記密碼”,進入用戶密碼修改頁面,如圖 所 示 圖 密碼修改頁面 在修改密碼的第一個頁面中( ) ,系統(tǒng)要求用戶填入需要修改密碼的用戶名,單擊“確定“,系統(tǒng)通過表單的 post 方法,將輸入的用戶名傳遞給下一個頁面 ,系統(tǒng)在轉(zhuǎn)到該頁面的同時,會對用戶輸入的用戶名進行驗證,看是否是聊天室的合法注冊用戶,驗證方法與用戶登錄的驗證方法相同。驗證通過后,打開 頁面,在該頁面中,修改密碼的用戶需要根據(jù)頁面中顯示的密碼提示問題,填入正確的密碼提示問題答案,即在注冊時用戶所填寫的密碼提示問題答案。 設(shè)計這個頁面,是為了更謹慎地驗證用戶的身份,以避免別人冒名修改密碼,致使正常用戶無法登錄。 在 頁面中,系統(tǒng)利用 request 對象把 頁面?zhèn)鬟f的用戶名存在 name 變量中,接著查詢用戶信息表符合用戶名等于 name 的記錄,將該記錄所對應(yīng)的“問題“用 方法顯示在頁面中 name=Request(name) 第 12 頁 共 22 頁 set rs = () sql=select * from user where 用戶名 =39。amp。nameamp。39。 用戶根據(jù)頁面顯示的密碼提示問題填入相應(yīng)的答案,單擊“確定 ” ,將表單內(nèi)容傳遞給 頁面。在頁面后臺,系統(tǒng)會首先將得到的答案與問題在系統(tǒng)數(shù)據(jù)庫中進行查詢,只有在問題和答案在一條記錄中同時匹配的時候,頁面的內(nèi)容才會顯示,否則,系統(tǒng)提示出錯,返回上一頁面。這里由于數(shù)據(jù)庫中存放的“答案 ” 項是其 MD5 值,所以在進行密碼提示問題答案對比的時候,同樣是比較該數(shù)據(jù)的 MD5 值 sql=select * from user where 用戶名 =39。 amp。 name amp。 39。 and 答案 =39。 amp。 answer amp。 39。 sql,conn,1,3 if and then% script language=vbscript alert (密碼提示答案錯誤,請返回驗證 !) = javascript:() 在系統(tǒng)經(jīng)過用戶名、密碼提示問題及密碼提示問題答案的雙重身份驗證后,用戶便可進入密碼修改頁面。在頁面中,用戶需要填寫新的登錄密碼來替換原來丟失的密碼。在進行用戶密碼 替換時,使用數(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 密碼 =39。amp。newpwdamp。39。 set rs=() updatesql 用 戶發(fā)言 進入聊天主頁面后,用戶便可在主頁面下方的發(fā)言界面設(shè)計書寫自己想要說的話,以及想對誰說,同時,系統(tǒng)還提供了發(fā)言字體顏色選擇、插入表情、圖片的功能,如圖 所示,讓用戶的聊天更有趣味。 圖 用戶發(fā)言界面 用戶發(fā)言界面采用 ASP 表單模式設(shè)計,在表單中,用戶根據(jù)發(fā)言對象、發(fā)言內(nèi)容、以及發(fā)言顏色填寫發(fā)言數(shù)據(jù),填寫完成后,單擊“提交”或按回車鍵,將 第 13 頁 共 22 頁 發(fā)言內(nèi)容轉(zhuǎn)入后臺處理。在處理發(fā)言數(shù)據(jù)的時候,為了避免用戶發(fā)言為空以及發(fā)言內(nèi)容與上次發(fā)言內(nèi)容重復(fù)的情況發(fā)生,系統(tǒng)定義了一個 send()函數(shù),用來檢驗用戶的發(fā) 言。在 send()函數(shù)中,系統(tǒng)定義了 msg 和 post_msg 2 個變量,用來存放本次發(fā)言內(nèi)容和上次發(fā)言內(nèi)容,在調(diào)用函數(shù)的執(zhí)行過程中使用 if 語句判斷上述 2中情況是否發(fā)生,如果出現(xiàn)發(fā)言為空或內(nèi)容重復(fù),系統(tǒng)便彈出錯誤提示信息:“請輸入發(fā)言或動作”;“請不要重復(fù)發(fā)言”。 if (msg==39。39。){alert(39。 請 輸 入 發(fā) 言 或 動 作 !39。)。()。return false} if (msg==post_msg){alert(39。 請 不 要 重 復(fù) 發(fā) 言 ! !39。)。()。return false} 在發(fā)言界面中的字體顏色、動作、表情、圖片均采用下拉式列表框的方式供用戶選擇,其中,各列表框的 name 屬性為 sayscolor、 addsing、 addsays、 tu,以便在獲得用戶發(fā)言時根據(jù)這些列表框的 name 取得相應(yīng)的 value 值,顯示出來。 select name=39。sayscolor39。 onchange=()。bs() style=39。fontsize:12px39。 select name=39。addsign39。 onchange==()。 style=39。fontsize:12px39。 select name=39。addsays39。 onchange=()。 style=39。fontsize:12px39。 select name=39。tu39。 onchange==()。 style=39。fontsize:12px39。 用戶發(fā)言的具體流程圖如圖 所示 第 14 頁 共 22 頁 圖 用戶發(fā)言流程圖 聊天內(nèi)容顯示 整個聊天主頁面中,占有面積最大的便是聊天內(nèi)容顯示區(qū)。如圖 所示。在這個區(qū)域,分了上下 2個空間,上面的用來顯示聊天室的所有發(fā)言內(nèi)容,下面用來顯示與當(dāng)前使用聊天室的用戶相關(guān)的內(nèi)容,如系統(tǒng)提示信息、用戶自己的發(fā)言以及其他用戶發(fā)來的密語。這個區(qū)域可以通過后面介紹的分屏操作實現(xiàn)一個顯示區(qū)和兩個顯示區(qū)的切換。 用戶發(fā)言 提交 發(fā)言 顯示發(fā)言內(nèi)容 顯示提示信息,中止表單提交 發(fā)言內(nèi)容是否為空 是否 與上次內(nèi)容相同 是 是 否 否 開始 結(jié)束 第 15 頁 共 22 頁 圖 聊天內(nèi)容顯示區(qū) 聊天內(nèi)容顯示區(qū)可以顯示最近 50 條發(fā)言 ,為了保存最近的 50 條發(fā)言內(nèi)容,系統(tǒng)定義一個具有 50 成員的一維數(shù)組 sd_init;為了對應(yīng)保存每條發(fā)言是誰對誰發(fā)的,需定義一個 towho( 50, 2)的二維數(shù)組,為了直觀,使用時數(shù)組下標(biāo)均從 1開始。 由于數(shù)組和變量的作用域僅限于當(dāng)前頁面,為了實現(xiàn)跨頁傳遞數(shù)據(jù)和對所有登錄用戶均有效,使得所有用戶都能看到聊天室里的發(fā)言內(nèi)容,為此,需要將數(shù)組和所用到的相關(guān)變量的值賦給對應(yīng)的一組 Application 對象來保存。Application 對象的用法與 Session 對象基本相同,利用 Application 對象所創(chuàng)建的變量, 可以在整個應(yīng)用中被所有用戶共享和訪問。一個用戶修改或設(shè)置了改類變量的值后,對于其他所有用戶,也是可見的。從而可見,利用 Application對象所創(chuàng)建的變量,具有最大的作用域,有時也稱為 Application(應(yīng)用程序)級變量。聊天內(nèi)容顯示的具體流程圖如圖 所示。 第 16 頁 共 22 頁 圖 發(fā)言內(nèi)容顯示流程圖 在聊天顯示頁面,由于每個用戶的發(fā)言內(nèi)容均不相同,每個用戶的發(fā)言對象也不相同,那么,系統(tǒng)在顯示聊天內(nèi)容的時候就要求顯示頁面會自動根據(jù)用戶的不同而顯示不同的聊 天內(nèi)容。具體來說,就是只顯示與當(dāng)前使用者有關(guān)的聊天內(nèi)容,如自己的發(fā)言內(nèi)容、發(fā)給自己的聊天內(nèi)容以及其他用戶對大家的發(fā)言。 要實現(xiàn) 這些內(nèi)容只有特定的用戶 才能看見 , 當(dāng)然 就 要用 客戶端的 session 來實現(xiàn)。 獲取 在線用戶列表數(shù) 從表單中獲得用戶在對誰發(fā)言 從表單中獲得發(fā)言內(nèi)容 獲得提交表單的其他數(shù)據(jù) 獲得發(fā)言內(nèi)容 , 實現(xiàn)聊天內(nèi)容的輸出 否 否 是 是 發(fā)言者在用戶列表中? 發(fā)言對象在列表中? 發(fā)言內(nèi)容不為空? 否 是 開始 結(jié)束 第 17 頁 共 22 頁 首先,內(nèi)容顯示頁面會將存放當(dāng)前頁面用戶名的 session 值傳遞給后臺定義的一個變量,再將發(fā)言界面中的發(fā)言對象名賦給另一個變量,接著,再查找在線用戶列表,判斷發(fā)言對象是否還在線。判斷完畢,系統(tǒng)會將從發(fā)言界面得到的發(fā)言人和發(fā)言對象與存放用戶名的變量進行對比,同時,還會判斷發(fā)言對象是否是“大家”,如果,用戶名與發(fā)言人或 發(fā)言對象中的一項相同或者發(fā)言對象是“大家”,那么,系統(tǒng)便會將傳遞的發(fā)言內(nèi)容顯示在當(dāng)前的內(nèi)容顯示區(qū);如果都不符合說明系統(tǒng)中的發(fā)言內(nèi)容與當(dāng)前使用用戶無關(guān),顯示頁面將不顯示該條發(fā)言信息。如此,實現(xiàn)了系統(tǒng)針對特定用戶顯示特定內(nèi)容的功能。 在線用戶列表顯示 在聊天主頁面的右邊,豎長方形區(qū)域是用來顯示在線用戶數(shù)和在線用戶列表的。如圖 所示。 圖 用戶列表顯示頁面 在顯示列表頁面中,系統(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=lbound(online) to ubound(online)1 msg=msg+39。a href=javascript:(\39。amp。online(i)amp。\39。)。 target=f2amp。online(i)amp。/abr39。 第 18 頁 共 22 頁 Next 顯示在線用戶列表的流程圖如圖 所示 獲 取 用 戶 列 表統(tǒng) 計 在 線 人 數(shù) , 更 新用 戶 列 表顯 示 在 線 人 數(shù) 和 用 戶列 表開 始結(jié) 束 圖 顯示用戶列表流程圖 管理功能 本聊天室為了提高系統(tǒng)中用戶信息的可管理性,設(shè)計了針對管理員級別的管理功能,如圖 所示 圖 系統(tǒng)功能區(qū) 然而,普通用戶在系統(tǒng)功能區(qū)中是無法看到管理功能的。在顯示系統(tǒng)功能中的“管理”的時候,系統(tǒng)中設(shè)計了一個 if 語句來判斷用戶的權(quán)限是普通用戶還是管理員,用戶權(quán)限是存放在 Session(leves)變量中的,在用戶登錄系統(tǒng)的時候查詢數(shù)據(jù)庫從而賦給該變量值,如果變量 Session(leves)的值為 admin,那么說明當(dāng)前用戶是系統(tǒng)管理員,于是,對該用戶系統(tǒng)顯示出管理功能;若Session(leves)的值為 user,那么,當(dāng)前用戶是普通用戶,無法使用管理功能。 % if session(leves)=admin then %a href= target=_blank管 理 /a% end if% 在系統(tǒng)功能區(qū)中,單擊“管理”,便可 進入系統(tǒng)管理頁面。如圖 第 19 頁 共 22 頁 圖 系統(tǒng)管理頁面 在管理頁面中,設(shè)計的是對數(shù)據(jù)庫兩張表的鏈接,通過單擊“查看投訴信息”、“查看并管理注冊人員名單”便可實現(xiàn)將后臺數(shù)據(jù)庫中的表顯示在前臺頁面中,同時,在顯示頁面中還加入了對表中記錄的刪除操作。在頁面中顯示的數(shù)據(jù)表的每一項記錄的末尾,添加了刪除按鈕,單擊它,便會執(zhí)行 delete 語句,刪除該記錄。 opersql=delete * from baseuser where name=39。amp。operidamp。39。 (opersql) 輔助功能區(qū) 輔助功能區(qū)界面如圖 所示,用戶可單擊界面中的分屏、名單、舉報、清屏、屏蔽、刷新以及退出,完成相應(yīng)操作。其中,管理是只對系統(tǒng)管理員開放的功能,在前面已作介紹。 ( 1)分屏 在介紹聊天內(nèi)容顯示區(qū)的時候,提及了用戶可根據(jù)自己的習(xí)慣和喜好,將聊天內(nèi)容顯示頁面設(shè)置為上下兩個分區(qū)或直接顯示一個區(qū)域。用戶只需在輔助功能區(qū)中單擊分屏,便可在這兩種模式下進行切換。 分屏的實現(xiàn)方法其實是非常簡單的,利用了 onclick 事件和框架標(biāo)簽frameset 實現(xiàn)的一個操作。系統(tǒng)中首先定義了一個 tbclu 的變量, 用來存放分屏的狀態(tài)值,“ true”或“ false”,然后定義了一個 tbclutch()函數(shù),當(dāng)用戶單擊“分屏”,系統(tǒng)便調(diào)用該函數(shù)用來判斷 tbclu 變量值,并執(zhí)行函數(shù)中定義的操作,對 frameset 的屬性值進行設(shè)置。 function tbclut
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1