




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、網(wǎng)上貼吧系統(tǒng)目 錄摘 要2第一章引言2第二章、ASP技術(shù)綜述32.1ASP的產(chǎn)生32.2ASP與IIS42.2.1IIS簡(jiǎn)介42.2.2IIS與ASP的結(jié)合42.3ASP的內(nèi)部特點(diǎn) 2.3.1ASP內(nèi)部6大對(duì)象52.3.2Global文件62.4利用ADO訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)62.5ASP與CGI的比較8第三章、網(wǎng)上貼吧系統(tǒng)分析及實(shí)現(xiàn)93.1網(wǎng)上貼吧系統(tǒng)說(shuō)明93.1.1分析需求,確定思路103.1.2 設(shè)計(jì)功能113.1.3劃分功能模塊123.2數(shù)據(jù)庫(kù)設(shè)計(jì)143.2.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)14各表之間的聯(lián)系153.2.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)163.2.3連接數(shù)據(jù)庫(kù)203.3主要界面及相關(guān)代碼分析223.3.
2、1 用戶(hù)登陸223.3.2用戶(hù)注冊(cè)253.3.3版面模塊353.3.4帖子模塊383.3.5管理人員模塊44第四章、網(wǎng)上貼吧系統(tǒng)運(yùn)行環(huán)境44第五章、結(jié)論45第六章、致 謝45第七章、參考文獻(xiàn)45摘 要20世紀(jì)末,隨著計(jì)算機(jī)科學(xué)的發(fā)展,數(shù)據(jù)庫(kù)技術(shù)在Internet中的應(yīng)用越來(lái)越廣泛,為廣大網(wǎng)絡(luò)用戶(hù)提供了更加周到和人性化的服務(wù)。個(gè)性化已逐漸成為當(dāng)今Web應(yīng)用的潮流。本文研究了一種基于數(shù)據(jù)關(guān)聯(lián)規(guī)則網(wǎng)上貼吧系統(tǒng),貼吧也稱(chēng)為BBS,BBS是BULLETIN BOARD SYSTEM的縮寫(xiě),意即電子公告板,一種在INTERNET上常用的用于信息服務(wù)的web系統(tǒng),他的主要服務(wù)是用來(lái)幫助瀏覽者相互溝通,吸引用
3、戶(hù)、服務(wù)用戶(hù)的。Bbs起源于20世紀(jì)80年代初。最初只是用于公布公告信息和討論問(wèn)題的在線(xiàn)交流平臺(tái);后來(lái)隨著網(wǎng)絡(luò)的普及,貼吧的功能越來(lái)越豐富。受到廣大網(wǎng)民的歡迎。因此商業(yè)網(wǎng)站對(duì)貼吧重視起來(lái),紛紛在自己的網(wǎng)站上開(kāi)辟貼吧,作為與網(wǎng)民交流的園地,同時(shí)在線(xiàn)技術(shù)和在線(xiàn)服務(wù)也在貼吧開(kāi)展起來(lái)。本文中所做的主要工作如下: (1)介紹了個(gè)性化頁(yè)面的背景及Win2000+IIS+ASP系統(tǒng)的一般原理;(2)闡述整個(gè)個(gè)性化頁(yè)面的系統(tǒng)結(jié)構(gòu)及工作原理;分析了系統(tǒng)實(shí)現(xiàn)中的特殊性、難點(diǎn)和重點(diǎn)。(3)設(shè)計(jì)實(shí)現(xiàn)用戶(hù)管理、帖子管理、版面管理、數(shù)據(jù)庫(kù)管理、瀏覽和查找、短消息功能等ASP頁(yè)面。(4)分析并解決實(shí)現(xiàn)中的若干技術(shù)問(wèn)題。(5
4、)建立完整的網(wǎng)上貼吧,進(jìn)行測(cè)試并分析結(jié)果。【關(guān)鍵詞】網(wǎng)上貼吧、ASP、ACCESS第一章、引言Internet是目前世界上最大的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò),它遍布全球,將世界各地各種規(guī)模的網(wǎng)絡(luò)連接成一個(gè)整體。作為Internet上一種先進(jìn)的,易于被人們所接受的信息檢索手段,WorldWideWeb(簡(jiǎn)稱(chēng)WWW)發(fā)展十分迅速,成為目前世界上最大的信息資源寶庫(kù)。據(jù)估計(jì),目前Internet上已有上百萬(wàn)個(gè)Web站點(diǎn),其內(nèi)容范圍跨越了教育科研、文化事業(yè)、金融、商業(yè)、新聞出版、娛樂(lè)、體育等各個(gè)領(lǐng)域,其用戶(hù)群十分龐大,因此,建設(shè)一個(gè)好的Web站點(diǎn)對(duì)于一個(gè)機(jī)構(gòu)的發(fā)展十分重要。近年來(lái),隨著網(wǎng)絡(luò)用戶(hù)要求的不斷提高及計(jì)算機(jī)科
5、學(xué)的迅速發(fā)展,特別是數(shù)據(jù)庫(kù)技術(shù)在Internet中的廣泛應(yīng)用,Web站點(diǎn)向用戶(hù)提供的服務(wù)將越來(lái)越豐富,越來(lái)越人性化。我們發(fā)現(xiàn)這樣一個(gè)事實(shí),一個(gè)用戶(hù)在訪(fǎng)問(wèn)一個(gè)網(wǎng)站時(shí)一般來(lái)講只對(duì)該網(wǎng)站的部分內(nèi)容感性趣,而且這種興趣會(huì)持續(xù)一段時(shí)間。這點(diǎn)啟發(fā)了我們,如果能根據(jù)用戶(hù)的喜好為不同的用戶(hù)顯示其個(gè)性化的頁(yè)面,即著重顯示該用戶(hù)感興趣的內(nèi)容,將為用戶(hù)節(jié)約大量的檢索時(shí)間,而且這樣的網(wǎng)頁(yè)顯然是更具有吸引力的。一些站點(diǎn)已經(jīng)在這方面作出了一定的嘗試,通常采用的方法是,在用戶(hù)登陸時(shí)為其提供一系列的選項(xiàng),使用戶(hù)能夠?qū)φ军c(diǎn)進(jìn)行一些自主的設(shè)置。這樣做能夠使站點(diǎn)呈現(xiàn)一定程度的個(gè)性化,但是對(duì)用戶(hù)來(lái)講,還是比較煩瑣,而且在用戶(hù)了解一個(gè)
6、站點(diǎn)前讓其對(duì)站點(diǎn)進(jìn)行設(shè)置,其結(jié)果未免有些粗糙。于是我們構(gòu)想了這樣一種方案,對(duì)用戶(hù)登陸后的動(dòng)作進(jìn)行跟蹤,分析,發(fā)掘用戶(hù)點(diǎn)擊的規(guī)律,即用戶(hù)先后點(diǎn)擊的關(guān)聯(lián)規(guī)則,這樣,在用戶(hù)點(diǎn)擊一個(gè)主題(鏈接)之后,系統(tǒng)能夠自動(dòng)生成一頁(yè)面,其中包含了該主題下用戶(hù)經(jīng)常關(guān)注的內(nèi)容(若干鏈接),這樣便在無(wú)須用戶(hù)作出任何額外工作的情況下實(shí)現(xiàn)了為用戶(hù)量身訂做的個(gè)性化頁(yè)面。要實(shí)現(xiàn)這樣的功能,離不開(kāi)后臺(tái)數(shù)據(jù)庫(kù)的支持。用戶(hù)驗(yàn)證信息,收集到的用戶(hù)點(diǎn)擊信息,主題層次信息,分析得出的關(guān)聯(lián)規(guī)則表等大量的數(shù)據(jù)都由數(shù)據(jù)庫(kù)管理系統(tǒng)管理。本文中數(shù)據(jù)庫(kù)服務(wù)器端采用了MicrosoftAccess數(shù)據(jù)庫(kù)作為ODBC(OpenDataBaseConnec
7、tivity)數(shù)據(jù)源,并以先進(jìn)的ADO(ActiveXDataObjects)技術(shù)進(jìn)行數(shù)據(jù)庫(kù)存取等操作,使Web與數(shù)據(jù)庫(kù)緊密聯(lián)系起來(lái)。整個(gè)個(gè)性化頁(yè)面生成系統(tǒng)主要由使用Dreamweaver_MX開(kāi)發(fā)的關(guān)聯(lián)規(guī)則采掘系統(tǒng)和利用IIS+ASP技術(shù)實(shí)現(xiàn)的個(gè)性化Web頁(yè)面生成器兩部分組成。關(guān)聯(lián)規(guī)則采掘系統(tǒng)對(duì)數(shù)據(jù)庫(kù)中的歷史記錄進(jìn)行分析,產(chǎn)生用戶(hù)關(guān)聯(lián)規(guī)則表;頁(yè)面生成器則負(fù)責(zé)記錄用戶(hù)行為和根據(jù)關(guān)聯(lián)規(guī)則表動(dòng)態(tài)生成用戶(hù)個(gè)性化Web頁(yè)面。二者通過(guò)數(shù)據(jù)庫(kù)服務(wù)器和Web服務(wù)器連接。本文作者主要完成Web服務(wù)器端的用戶(hù)管理、帖子管理、版面管理、數(shù)據(jù)庫(kù)管理、瀏覽和查找、短消息功能等設(shè)計(jì)、實(shí)現(xiàn)與完善以及整個(gè)實(shí)驗(yàn)網(wǎng)站的組織建立
8、和測(cè)試工作。第二章、ASP技術(shù)綜述2.1ASP的產(chǎn)生近年來(lái)隨著Internet技術(shù)的飛速發(fā)展及用戶(hù)需求的不斷升級(jí),Web頁(yè)面技術(shù)也不斷的推陳出新,使得Web站點(diǎn)的功能越來(lái)越強(qiáng)大,能夠提供的服務(wù)種類(lèi)越來(lái)越繁多。從HTML、ClientScript到CGI,從JAVA的誕生到ActiveX,Web頁(yè)面設(shè)計(jì)人員不斷受到?jīng)_擊,微軟公司在總結(jié)了以往技術(shù),重新思考Web頁(yè)面設(shè)計(jì)的真正需要后,推出了ActiveServerPages(ASP),一種用以取代CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)的技術(shù)。簡(jiǎn)單講,ASP是位于服務(wù)器端的腳本運(yùn)行環(huán)境,通過(guò)這種環(huán)境,用戶(hù)可以創(chuàng)建和運(yùn)行動(dòng)
9、態(tài)的交互式Web服務(wù)器應(yīng)用程序,如交互式的動(dòng)態(tài)網(wǎng)頁(yè),包括使用HTML表單收集和處理信息,上傳與下載等等。更重要的是,ASP使用的ActiveX技術(shù)基于開(kāi)放設(shè)計(jì)環(huán)境,用戶(hù)可以自己定義和制作組件加入其中,使自己的動(dòng)態(tài)網(wǎng)頁(yè)幾乎具有無(wú)限的擴(kuò)充能力,這是傳統(tǒng)的Web編寫(xiě)工具所遠(yuǎn)遠(yuǎn)不及的地方。使用ASP還有個(gè)好處,就在于ASP可利用ADO(ActiveDataObject,微軟的一種新的數(shù)據(jù)訪(fǎng)問(wèn)模型)方便快捷地訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),從而使得開(kāi)發(fā)基于WWW的應(yīng)用系統(tǒng)成為可能,這也是本文選擇ASP作為開(kāi)發(fā)工具最重要的原因之一。2.2ASP與IIS2.2.1IIS簡(jiǎn)介Web服務(wù)器是Web應(yīng)用程序的心臟。IIS(Inter
10、netInformationServer)是微軟推出的WindowsNTOptionPack的主要成員,作為Win2000server的擴(kuò)展,自推出以來(lái)已經(jīng)有了很大發(fā)展,其體系結(jié)構(gòu)是當(dāng)今市場(chǎng)上最受關(guān)注的Web服務(wù)器之一。新推出的IIS4.0版本增強(qiáng)了系統(tǒng)安全性,具有服務(wù)器端腳本開(kāi)發(fā)調(diào)試,內(nèi)容管理和站點(diǎn)分析,崩潰防護(hù),內(nèi)置JAVA虛擬機(jī)及全面支持ASP等強(qiáng)大功能。2.2.2IIS與ASP的結(jié)合在過(guò)去,客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)的設(shè)計(jì)與Web的相關(guān)技術(shù)幾乎處于平行線(xiàn)上,兩者相互獨(dú)立并無(wú)法作出集成性的設(shè)計(jì)?,F(xiàn)在我們利用IIS+ASP構(gòu)成三層式Web結(jié)構(gòu)(如圖2.1所示)的中間一層,將客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)與We
11、b密切結(jié)合,完成前后端兩者的集成輸出功能,使得Web站點(diǎn)的開(kāi)發(fā)更方便,實(shí)現(xiàn)的功能更強(qiáng)大。利用IIS+ASP技術(shù)來(lái)集成Web前后端所帶來(lái)的強(qiáng)大效益可歸結(jié)為以下幾個(gè)方面:1 減少構(gòu)建和維護(hù)成本2 加快聯(lián)機(jī)過(guò)程3 應(yīng)用軟件集中在服務(wù)器端開(kāi)發(fā)管理4 前端可使用任何5 后端可存取任何數(shù)據(jù)庫(kù)(SQL、Access.)6 可使用任何腳本語(yǔ)開(kāi)發(fā)(VBScript、JavaScript、PERL.)瀏覽器(IE、Netscape.)2.3ASP的內(nèi)部特點(diǎn)2.3.1ASP內(nèi)部6大對(duì)象ASP提供了6個(gè)功能強(qiáng)大的內(nèi)部對(duì)象,每個(gè)對(duì)象具有各自的屬性(Property)、方法(Method),有的還擁有數(shù)據(jù)集合(Colle
12、ction)與事件(Event),它們共同完成Web中的一些重要工作。這6個(gè)對(duì)象及其功能描述如表2.1所示。表2.1ASP內(nèi)部6大對(duì)象及其功能對(duì)象名稱(chēng)功能描述Request從客戶(hù)端取得信息Response將信息送給客戶(hù)端Server提供一些Web服務(wù)器工具Session儲(chǔ)存在一個(gè)Session內(nèi)的用戶(hù)信息,該信息僅可被該用戶(hù)訪(fǎng)問(wèn)Application在一個(gè)ASP-Application中讓不同的客戶(hù)端共享信息ObjectContext配合MicrosoftTransaction服務(wù)器進(jìn)行分布式事務(wù)處理合理地運(yùn)用這些對(duì)象可以使原本復(fù)雜,煩瑣的工作變得簡(jiǎn)捷而條理清晰。我們可以用以下的語(yǔ)法直接使用這
13、些對(duì)象:對(duì)象/屬性/方法/數(shù)據(jù)集合2.3.2Global文件每一個(gè)以ActiveServerPages為基礎(chǔ)的應(yīng)用程序都擁有一個(gè)Global.asa文件(ASA后綴名其實(shí)是ActiveServerApplication的縮寫(xiě)),它位于每一個(gè)應(yīng)用程序的基點(diǎn)目錄之下。當(dāng)ActiveServerPages做下面兩個(gè)動(dòng)作時(shí),Server便會(huì)去讀Global.asa文件:1.WebServer啟動(dòng)之后,一個(gè)應(yīng)用程序目錄中任一個(gè)ASP文件被提出第一個(gè)HTTP請(qǐng)求(Request)時(shí)。2.不具有任何Session的客戶(hù)端向Server請(qǐng)求一個(gè)ASP文件時(shí)。前面已經(jīng)提到Application和Session這
14、兩個(gè)ASP的內(nèi)部對(duì)象。Application對(duì)象內(nèi)的信息供所有正在執(zhí)行該應(yīng)用程序的用戶(hù)分享,它創(chuàng)建于WebServer啟動(dòng)后一個(gè)應(yīng)用程序中任一ASP文件被提出第一個(gè)HTTP請(qǐng)求時(shí),結(jié)束于Server端停止運(yùn)行。而Session對(duì)象僅屬于一位用戶(hù),維持一個(gè)用戶(hù)端的信息,其他用戶(hù)無(wú)法訪(fǎng)問(wèn),它創(chuàng)建于一個(gè)不具有Session的用戶(hù)向Server請(qǐng)求一個(gè)ASP文件時(shí),結(jié)束于該Session到期(即用戶(hù)端超過(guò)某時(shí)間段沒(méi)有向Server提出要求或刷新Web頁(yè)面)或Abandon語(yǔ)句的調(diào)用。可見(jiàn),Global.asa文件的調(diào)用與Application與Session這兩個(gè)對(duì)象密切相關(guān)。事實(shí)上我們通常在Glob
15、al。asa文件中寫(xiě)入以下內(nèi)容:1 Application或Session的開(kāi)始事件(Start-event)。2 Application或Session的結(jié)束事件(End-event)。這樣,在一個(gè)Application或Session對(duì)象被創(chuàng)建或結(jié)束時(shí),系統(tǒng)會(huì)自動(dòng)完成Global.asa文件中寫(xiě)入的相應(yīng)事件。值得注意的是,如果一個(gè)Application與一個(gè)Session同時(shí)開(kāi)始,ActiveServerPages會(huì)先處理Application的開(kāi)始事件,而如果一個(gè)Application與一個(gè)Session同時(shí)結(jié)束,ActiveServerPages則會(huì)先處理Session的結(jié)束事件。2.
16、4利用ADO訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)ADO(ActiveXDataObjects)是一種操作Microsoft所支持的數(shù)據(jù)庫(kù)的新技術(shù)。在ASP中,ADO可以看作是一個(gè)服務(wù)器組件(ServerComponent),更簡(jiǎn)單點(diǎn)說(shuō),是一系列的對(duì)象,應(yīng)用這些功能強(qiáng)大的對(duì)象,即可輕松完成對(duì)數(shù)據(jù)庫(kù)復(fù)雜的操作。本文中個(gè)性化頁(yè)面的實(shí)現(xiàn)便大量地用到了ADO技術(shù)。具體的操作步驟可以歸納為以下幾步:1創(chuàng)建數(shù)據(jù)庫(kù)源名(DSN)2創(chuàng)建數(shù)據(jù)庫(kù)鏈接(Connection)3創(chuàng)建數(shù)據(jù)對(duì)象4操作數(shù)據(jù)庫(kù)5關(guān)閉數(shù)據(jù)對(duì)象和鏈接每一步的作法如下:一、創(chuàng)建數(shù)據(jù)源名DSN(DateSourceName)即數(shù)據(jù)源名稱(chēng)。我們知道,ODBC是一種訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方
17、法,只要系統(tǒng)中有相應(yīng)的ODBC驅(qū)動(dòng)程序,任何程序就可以通過(guò)ODBC操縱驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)。比如我們系統(tǒng)中有Access的ODBC驅(qū)動(dòng)程序,那么即使我們沒(méi)有Access軟件,也可以在我們的程序中對(duì)一個(gè)Access的MDB數(shù)據(jù)庫(kù)加、刪、改記錄。而且我們根本不用知道這個(gè)數(shù)據(jù)庫(kù)是放在哪里的。我們只要寫(xiě)出SQL語(yǔ)句,ODBC驅(qū)動(dòng)程序就會(huì)幫我們做一切事情。我們?cè)诮oODBC驅(qū)動(dòng)程序傳SQL指令時(shí),即是用DSN來(lái)告訴它到底操作的是哪一個(gè)數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)的平臺(tái)變了,比如我們改用了SQLServer的數(shù)據(jù)庫(kù),只要其中表的結(jié)構(gòu)沒(méi)變,我們就不用改寫(xiě)我們的程序,只要重新在系統(tǒng)中配置DSN就行了。由此可見(jiàn),DSN是應(yīng)用程
18、序和數(shù)據(jù)庫(kù)之間的橋梁。二、創(chuàng)建數(shù)據(jù)庫(kù)鏈接(Connection)鏈接用以保持一些關(guān)于正在訪(fǎng)問(wèn)的數(shù)據(jù)的一些狀態(tài)信息,以及鏈接者信息。ASP文件中如果要訪(fǎng)問(wèn)數(shù)據(jù),必須首先創(chuàng)建與數(shù)據(jù)庫(kù)的鏈接,其語(yǔ)法如下:setConn=Server.createObject(“ADODB.CONNECTION”)這條語(yǔ)句創(chuàng)建了鏈接對(duì)象Conn,接下來(lái):Connstr=Driver=Microsoft Access Driver (*.mdb);dbq= & Server.MapPath(db)conn.Openconnstr這條語(yǔ)句打開(kāi)鏈接,用到了DSN,本例為“connstr”。以上兩個(gè)步驟缺一不可,因?yàn)殒溄訉?duì)象
19、的創(chuàng)建與打開(kāi)是兩回事,只有打開(kāi)了才真正可以使用。三、創(chuàng)建數(shù)據(jù)對(duì)象(RecordSet)ADO中的數(shù)據(jù)對(duì)象通常保存的是查詢(xún)結(jié)果。RecordSet是ADO中最復(fù)雜的對(duì)象,有許多屬性和方法。RecordSet保存的是一行行的記錄,并標(biāo)有一個(gè)當(dāng)前記錄。以下是創(chuàng)建方法:SetRecordSet=Conn.Execute(sqtStr)這條語(yǔ)句創(chuàng)建并打開(kāi)了對(duì)象RecordSet,其中Conn是先前創(chuàng)建的鏈接對(duì)象,sqtStr是一個(gè)字串,代表一條標(biāo)準(zhǔn)的SQL語(yǔ)句。例如:sqtStr=“SELECT*FROMshop_books”SetRecordSet=Conn.Execute(sqtStr)這條語(yǔ)句執(zhí)行
20、后,對(duì)象RecordSet中就保存了表tab1中的所有記錄。四、操作數(shù)據(jù)庫(kù)我們通過(guò)調(diào)用鏈接對(duì)象的Execute方法來(lái)將查詢(xún)結(jié)果返回給一個(gè)數(shù)據(jù)對(duì)象或進(jìn)行插入、刪除、修改等操作。例如:sqtStr =“INSERTINTOtab1VALUES(1,2)”Conn.Execute(sqtStr)/執(zhí)行插入操作sqtStr =“Deletefromtab1 wherea=b”/執(zhí)行刪除操作sqtStr =“updatetab seta=b,c=d”/執(zhí)行修改操作五、關(guān)閉數(shù)據(jù)對(duì)象和鏈接對(duì)象在使用了ADO對(duì)象之后要關(guān)閉它,因?yàn)樗褂昧艘欢ǖ姆?wù)器資源。通過(guò)調(diào)用方法close實(shí)現(xiàn)關(guān)閉,然后再釋放它。Reco
21、rdSet.closeSetRecordSet=Nothing/關(guān)閉創(chuàng)建的數(shù)據(jù)對(duì)象Conn.closeSetConn=Nothing/關(guān)閉創(chuàng)建的鏈接對(duì)象2.5ASP與CGI的比較CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)也是Internet上一種功能強(qiáng)大的Web頁(yè)面技術(shù),其工作方式有別于ASP。我們現(xiàn)對(duì)二者進(jìn)行比較。ActiveServerPages開(kāi)發(fā)Web應(yīng)用程序的特點(diǎn):1 完全嵌入HTML,與HTML、Script語(yǔ)言完美結(jié)合。2 無(wú)須手動(dòng)編譯和鏈接程序。3 面向?qū)ο螅⒖蓴U(kuò)展ActiveXServer組件功能。4 使用腳本語(yǔ)言(JavaScript、VBScr
22、ipt或PERL)編寫(xiě)。5 存取數(shù)據(jù)庫(kù)輕松容易(使用ADO組件)。6 可使用任何語(yǔ)言編寫(xiě)自己的ActiveXServer組件。7 無(wú)瀏覽器兼容問(wèn)題。8 程序代碼隱藏,客戶(hù)端僅能看到ASP輸出的HTML文件。9 縮短Web開(kāi)發(fā)時(shí)間。相比之下,使用CGI開(kāi)發(fā)Web應(yīng)用程序具有以下缺點(diǎn):1 不易與HTML文件集成。2 須使用其他較復(fù)雜的語(yǔ)言來(lái)開(kāi)發(fā)CGI程序。3 程序開(kāi)發(fā)時(shí)間較長(zhǎng)。4 存取數(shù)據(jù)庫(kù)不容易。5 每個(gè)CGI程序被不同用戶(hù)執(zhí)行時(shí)都得重新執(zhí)行一次,并占去Server的一個(gè)端口(Port),降低Server效率??梢?jiàn),ASP在數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)、與HTML的集成、提高服務(wù)器的效率等諸多方面都優(yōu)于CGI,更
23、適應(yīng)Web應(yīng)用程序開(kāi)發(fā)的需要,因此本文選擇了ASP作為個(gè)性化頁(yè)面生成器的開(kāi)發(fā)工具。第三章、網(wǎng)上貼吧系統(tǒng)分析及實(shí)現(xiàn)3.1網(wǎng)上貼吧系統(tǒng)說(shuō)明在開(kāi)始制作之前,要明確貼吧能做些什么事情,,也就是所謂的需求。所以必須把需求做清楚,然后才能進(jìn)行設(shè)計(jì)。其實(shí)在貼吧里大家最熟悉的就是用戶(hù)瀏覽貼吧已有的內(nèi)容,針對(duì)別人的主題展開(kāi)討論,也可以發(fā)表自己的觀點(diǎn)供大家品評(píng)。同時(shí)為了防止用戶(hù)發(fā)布一些不健康不合法的內(nèi)容需要有管理人員來(lái)對(duì)這些內(nèi)容進(jìn)行刪除修改,在擴(kuò)展一點(diǎn),若用戶(hù)想在貼吧發(fā)布信息,不允許他再來(lái)發(fā)布非法內(nèi)容。這樣需要管理員對(duì)用戶(hù)和貼吧的內(nèi)容都要進(jìn)行管理。我們要做一個(gè)多版面的貼吧。在這里用戶(hù)可以注冊(cè),瀏覽貼吧版面和帖子,
24、發(fā)布自己的帖子,也可以相互聯(lián)系。管理人員可以設(shè)置貼吧的系統(tǒng)參數(shù),管理注冊(cè)用戶(hù)和版面。當(dāng)用戶(hù)來(lái)到貼吧可以看到版面列表。通過(guò)版面可以看到相關(guān)的帖子。如果需要進(jìn)一步的功能,就需要用戶(hù)注冊(cè)。用戶(hù)注冊(cè)以后,可以發(fā)表自己的帖子或者回復(fù)別人的主題,也可以修改自己的帖子,如果發(fā)帖數(shù)量很多,會(huì)給用戶(hù)一定的積分。用戶(hù)也可以升級(jí)為版主,可以刪除別人的帖子,將帖子置頂,設(shè)為精華等。用戶(hù)還可以修改自己的信息,查看其他用戶(hù)公開(kāi)的注冊(cè)信息。管理人員可以管理版面、帖子、用戶(hù)、設(shè)置系統(tǒng)參數(shù)。3.1.1分析需求,確定思路瀏覽者注冊(cè)登錄瀏覽板塊瀏覽帖子回復(fù)用戶(hù)發(fā)帖管理用戶(hù)管理帖子搜索管理員管理版塊首先來(lái)做名詞分析。大家可能覺(jué)得奇怪
25、,這不是閱讀理解,為什么要做這個(gè)?分析需求就是要理解需求,得出重點(diǎn)。首先要做的就是找出這個(gè)貼吧要針對(duì)哪些進(jìn)行操作,對(duì)需求中的名詞進(jìn)行一次篩選,得出一個(gè)簡(jiǎn)潔的列表。下邊這個(gè)表是表示各個(gè)對(duì)象間關(guān)聯(lián)的,關(guān)聯(lián)是單向的,是指左側(cè)對(duì)象對(duì)上方對(duì)象的活動(dòng)。沒(méi)有關(guān)聯(lián)我們就用X,如果兩者只有單向關(guān)聯(lián),那么另一個(gè)對(duì)象反關(guān)聯(lián)時(shí)我們用對(duì)號(hào)表示。根據(jù)需求,得出各個(gè)對(duì)象間的關(guān)聯(lián)表。如表3.1所示表3.1個(gè)對(duì)象間的關(guān)聯(lián)表用戶(hù)版面帖子管理人員系統(tǒng)參數(shù)用戶(hù)注冊(cè)】修改瀏覽聯(lián)系瀏覽瀏覽發(fā)布修改刪除特殊操作X版面XXX帖子X(jué)XX管理人員刪除授權(quán)添加刪除修改添加刪除修改X設(shè)置系統(tǒng)參數(shù)XXX3.1.2 設(shè)計(jì)功能有了表3.1就可以進(jìn)行十實(shí)質(zhì)
26、性的工作了。現(xiàn)在就來(lái)設(shè)計(jì)功能。首先從用戶(hù)開(kāi)始,在表3.1中用戶(hù)關(guān)聯(lián)的對(duì)象是自身,版面,帖子,分別根據(jù)用戶(hù)與這些對(duì)象的聯(lián)系給出一個(gè)明確的菜單,見(jiàn)表3.2表3.2用戶(hù)功能列表序號(hào)功能名稱(chēng)說(shuō)明1用戶(hù)注冊(cè)用戶(hù)在貼吧填寫(xiě)必要的信息后就可以注冊(cè)成為注冊(cè)用戶(hù),用戶(hù)登錄網(wǎng)站可以修改自己的用戶(hù)信息2用戶(hù)登錄用戶(hù)在貼吧注冊(cè)后,可以使用用戶(hù)名密碼在貼吧登錄3瀏覽其他用戶(hù)信息用戶(hù)注冊(cè)后可以查看其他用戶(hù)信息4瀏覽版面用戶(hù)可以看到以列表形class.asp式展現(xiàn)的版面信息5瀏覽帖子用戶(hù)可以以列表形式瀏覽帖子主題及帖子的全部?jī)?nèi)容6發(fā)布刪除修改帖子用戶(hù)在登錄后可以發(fā)布帖子,修改自己的帖子。如果被賦予版主權(quán)限還可以修改其他用戶(hù)
27、的帖子7與其他用戶(hù)聯(lián)系在用戶(hù)注冊(cè)時(shí)要求用戶(hù)填寫(xiě)電子郵件地址,那么其他用戶(hù)可以利用電子郵件與其聯(lián)系8對(duì)帖子特殊操作接下來(lái)的版面,帖子都沒(méi)有和其他對(duì)象的關(guān)聯(lián),他們?cè)谫N吧屬于被動(dòng)的對(duì)象,是被其他對(duì)象所操作的。因此針對(duì)他們的功能主要是由其他對(duì)象產(chǎn)生,例如瀏覽版面就屬于用戶(hù)的功能。管理人員是貼吧的一個(gè)特殊群體,他們的主要工作的是保證貼吧的正常運(yùn)轉(zhuǎn),他們可以和所有對(duì)象產(chǎn)生聯(lián)系,因此他們的功能也很豐富。表3.3列出了管理人員的功能。表3.3管理人員功能列表序號(hào)功能名稱(chēng)說(shuō)明1用戶(hù)刪除對(duì)于在貼吧發(fā)表一些非法言論。給貼吧造成很壞的影響的用戶(hù)應(yīng)該刪除他們的身份,不允許他們的存在2用戶(hù)授權(quán)貼吧的管理是紛繁復(fù)雜的,需要
28、很多的知識(shí)需要給一些具有能力用戶(hù)一些特殊權(quán)限讓他們幫助管理人員完成對(duì)貼吧的維護(hù)。3版面管理版面是貼吧的枝干,對(duì)于新的只是需要添加新的版面有些版面的內(nèi)容可能不太適合了可以考慮修改,對(duì)于沒(méi)有存在意義的版面就要?jiǎng)h除了。4帖子的管理帖子是一個(gè)貼吧的葉子,他們的內(nèi)容如何,反應(yīng)了貼吧使用者和管理這的水平,需要管理人員對(duì)帖子的全權(quán)管理,以保證貼吧內(nèi)容的水平。、5設(shè)置系統(tǒng)參數(shù)系統(tǒng)參數(shù)包含的內(nèi)容很多他們直接關(guān)系到貼吧的正常運(yùn)行。現(xiàn)在系統(tǒng)功能部分已經(jīng)分析完了,接下來(lái)需要對(duì)這些功能進(jìn)行分類(lèi),同時(shí)根據(jù)功能給出詳細(xì)的數(shù)據(jù)庫(kù)設(shè)計(jì)。3.1.3劃分功能模塊一般初學(xué)程序設(shè)計(jì)的人,即掌握了某種程序設(shè)計(jì)語(yǔ)言的語(yǔ)法,按照教材做過(guò)簡(jiǎn)單
29、實(shí)例的人,在遇到現(xiàn)實(shí)生活的應(yīng)用系統(tǒng)時(shí),他的分析思路是從計(jì)算機(jī)實(shí)現(xiàn)的角度來(lái)考慮問(wèn)題,而不是從系統(tǒng)的使用者的角度考慮問(wèn)題,這就制約了他的思路一個(gè)系統(tǒng)是給人用的,開(kāi)發(fā)者需要考慮用戶(hù)使用起來(lái)是否方便,而不是及其實(shí)現(xiàn)起來(lái)是否方便。模塊的劃分主要是按每一個(gè)對(duì)象操作來(lái)歸類(lèi)。貼吧操作的對(duì)象是上面所歸納的5個(gè),下面就針對(duì)這5個(gè)對(duì)象劃分功能模塊。用戶(hù):應(yīng)該有兩個(gè)模塊,一個(gè)是用戶(hù)注冊(cè)、登錄、修改信息等功能組合,是用戶(hù)對(duì)用戶(hù)的操作;另一個(gè)是管理人員對(duì)用戶(hù)進(jìn)行刪除,授權(quán),是管理人員對(duì)用戶(hù)的操作。這兩個(gè)模塊功能列表如3.4所示表3.4用戶(hù)功能模塊列表模塊模塊包含的功能用戶(hù)模塊用戶(hù)注冊(cè)用戶(hù)登錄瀏覽其他用戶(hù)信息與其他用戶(hù)聯(lián)系
30、用戶(hù)控制自己的信息用戶(hù)登錄添加驗(yàn)證碼管理人員模塊用戶(hù)刪除用戶(hù)授權(quán)版面:也有兩個(gè)模塊,一個(gè)是瀏覽模塊,一個(gè)是管理模塊,其功能模塊列表如表3.5所示表3.5版面功能模塊列表模塊模塊包含的功能版面瀏覽模塊瀏覽版面版面管理模塊版面管理帖子:帖子的功能是最多的,也是最復(fù)雜的,但是仍把它分為兩大模塊。根據(jù)操作對(duì)象來(lái)區(qū)分,有很多功能是重復(fù)的,但是由于操對(duì)象不同仍然需要列出。其功能如表3.6所示表3.6帖子功能模塊模塊模塊包含的功能帖子模塊瀏覽帖子發(fā)布、修改、刪除帖子對(duì)帖子的特殊操作帖子收藏帖子搜索帖子管理模塊帖子管理管理人員:管理人員主要是對(duì)其它對(duì)象進(jìn)行操作,針對(duì)他的模塊就沒(méi)有了。但是這里很多模塊的操作人員
31、是他,同時(shí)把系統(tǒng)參數(shù)設(shè)置的功能也劃分出來(lái)。其功能列表如表3.7所示。表3.7管理人員管理功能模塊模塊模塊包含的功能管理人員管理模塊設(shè)置系統(tǒng)參數(shù)數(shù)據(jù)備份非法言論過(guò)濾非法IP限制這樣貼吧的模塊劃分就完成了。從以上分析可以了解到模塊劃分的依據(jù),就是功能的使用者。從表可以的到貼吧的功能框架,即系統(tǒng)的各個(gè)部分已經(jīng)確定,知道貼吧是什么樣的,但是要把貼吧系統(tǒng)完整的構(gòu)架出來(lái),還需要進(jìn)一步思考模塊間的關(guān)系。3.8貼吧整體架構(gòu)圖注冊(cè)登錄用戶(hù)管理用戶(hù)選擇板塊瀏覽帖子發(fā)帖回帖管理板塊管理帖子搜索管理員3.2數(shù)據(jù)庫(kù)設(shè)計(jì)貼吧系統(tǒng)信息的存儲(chǔ)一般是在文件或者數(shù)據(jù)庫(kù)中,在這里選擇數(shù)據(jù)庫(kù),用數(shù)據(jù)庫(kù)要簡(jiǎn)單高效一些,能夠?qū)N吧進(jìn)行更
32、好的控制。使用數(shù)據(jù)庫(kù)的第一步就是涉及數(shù)據(jù)庫(kù)的表結(jié)構(gòu),一個(gè)良好的數(shù)據(jù)庫(kù)表結(jié)構(gòu),可以提高效率,方便維護(hù),并且以后進(jìn)行功能的擴(kuò)充留有余地,就好比高樓大廈的地基一樣,有了穩(wěn)固的基礎(chǔ),才能有優(yōu)秀的成果。 下面來(lái)設(shè)計(jì)貼吧的數(shù)據(jù)庫(kù)。3.2.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)首先給出貼吧使用的數(shù)據(jù)表如表3.9所示表3.9貼吧數(shù)據(jù)表序號(hào)表名說(shuō)明1QiQiBoy_Admin_Disp管理員信息表2QiQiBoy_Board_Disp貼吧列表3QiQiBoy_Class_Disp二級(jí)版面信息表4QiQiBoy_Nlass_Disp一級(jí)版面信息表5QiQiBoy_Status_Disp貼吧狀態(tài)表6QiQiBoy_System_Di
33、sp系統(tǒng)信息表7QiQiBoy_Topic_Disp主題,帖子信息表8QiQiBoy_User_Disp用戶(hù)信息表各表之間的聯(lián)系用戶(hù)用戶(hù)名.用戶(hù)密碼郵箱地址主題主題名.主題內(nèi)容主題狀態(tài)主題發(fā)表人帖子帖子編號(hào)帖子所屬版面帖子內(nèi)容帖子狀態(tài)版面版面名稱(chēng)上級(jí)版面號(hào)版面編號(hào)版主3.2.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)完畢就可以通過(guò)數(shù)據(jù)庫(kù)軟件轉(zhuǎn)化為實(shí)際的數(shù)據(jù)模型,即數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)。本系統(tǒng)采用的數(shù)據(jù)庫(kù)軟件是MICROSOFT ACCESS.1. 用戶(hù)信息表(QiQiBoy_User_Disp)序號(hào)字段名字段類(lèi)型說(shuō)明備注1UserID自動(dòng)編號(hào)用戶(hù)編號(hào)主鍵2UserName文本用戶(hù)帳號(hào)3Pwd文本用戶(hù)密
34、碼4Sex數(shù)字用戶(hù)性別5Email文本用戶(hù)郵箱6OICQ文本用戶(hù)qq7Question文本找回密碼提示問(wèn)題8Answer文本提示答案9UserGroupID數(shù)字用戶(hù)類(lèi)別10Ip文本用戶(hù)IP11RegTime日期/時(shí)間用戶(hù)注冊(cè)時(shí)間12LastLogin日期/時(shí)間用戶(hù)最后登錄時(shí)間13Visits數(shù)字用戶(hù)訪(fǎng)問(wèn)次數(shù)14LockUser數(shù)字是否鎖定15Integral數(shù)字用戶(hù)積分16Topics數(shù)字用戶(hù)發(fā)表主題數(shù)17Replys數(shù)字用戶(hù)回復(fù)帖子數(shù)18Area文本用戶(hù)地址19Websites文本用戶(hù)主頁(yè)20List備注用戶(hù)簡(jiǎn)介21Photo文本用戶(hù)頭像在用戶(hù)信息表里保存的是所有在貼吧注冊(cè)的用戶(hù)的信息,用戶(hù)
35、編號(hào)是用戶(hù)在貼吧的唯一標(biāo)識(shí),是不重復(fù)的,同時(shí)用戶(hù)名在貼吧中也是不能重復(fù)的,大家可能奇怪既然用戶(hù)名也不可以重復(fù),為什么不用用戶(hù)名作為用戶(hù)在貼吧中的唯一標(biāo)識(shí)呢?大家可以考慮一下,假如你有一份一百個(gè)人的名單,每個(gè)人有一個(gè)序號(hào),這是讓你從中找一個(gè)人,如果只告訴你名字,那么找起來(lái)會(huì)很麻煩,如果告訴你他是多少號(hào)是不是要簡(jiǎn)單的多?同樣道計(jì)算機(jī)對(duì)數(shù)字的檢索更加快速,特別是用用戶(hù)很所的時(shí)候。用戶(hù)名和密碼是不能為空的,這是因?yàn)楫?dāng)用戶(hù)名登錄時(shí)必須輸入用戶(hù)名和密碼我們才能定位到用戶(hù)的信息,驗(yàn)證用戶(hù)是不是真正在貼吧注冊(cè)了,電子郵件不能為空的目的是為了是其他用戶(hù)能夠很方便的和該用戶(hù)聯(lián)系,同時(shí)又可以作為用戶(hù)忘記密碼是取回密
36、碼的聯(lián)系方式。密碼問(wèn)題和密碼答案的主要應(yīng)用是。當(dāng)用戶(hù)忘記密碼時(shí),由系統(tǒng)提問(wèn),如果用戶(hù)能夠準(zhǔn)確的給出密碼答案我們將提示給用戶(hù)密碼。2.管理員信息表(QiQiBoy_Admin_Disp)序號(hào)字段名字段類(lèi)型說(shuō)明備注1ID自動(dòng)編號(hào)管理員ID主鍵2uid文本管理員姓名3pwd文本管理員密碼4groups文本管理員類(lèi)別5loginip文本管理員登錄IP6updatetime日期/時(shí)間管理員最后登錄時(shí)間7loginnum數(shù)字管理員登錄次數(shù)3.二級(jí)版面信息表(QiQiBoy_Class_Disp)序號(hào)字段名字段類(lèi)型說(shuō)明備注1BoardClass自動(dòng)編號(hào)二級(jí)版面編號(hào)主鍵2BoardClassName文本二級(jí)版
37、面名字3BoardNlass數(shù)字上級(jí)版面4.貼吧狀態(tài)表(QiQiBoy_Status_Disp)序號(hào)字段名字段類(lèi)型說(shuō)明備注1StatusID自動(dòng)編號(hào)狀態(tài)信息ID主鍵2RegUsers數(shù)字注冊(cè)用戶(hù)數(shù)3TotalBoards數(shù)字版面數(shù)4TotalTopics數(shù)字主題數(shù)5TotalReplys數(shù)字回復(fù)主題數(shù)5.版面信息表2(QiQiBoy_Class_Disp)序號(hào)字段名字段類(lèi)型說(shuō)明備注1BoardNlass自動(dòng)編號(hào)一級(jí)版面ID主鍵2BoardNlassName文本版面名稱(chēng)版面列表(QiQiBoy_Board_Disp)序號(hào)字段名字段類(lèi)型說(shuō)明備注1BoardID數(shù)字版面ID主鍵2BoardNlass
38、數(shù)字二級(jí)版面編號(hào)3BoardClass數(shù)字一級(jí)版面編號(hào)4BoardName文本版面名稱(chēng)5BoardDescription文本版面描述6BoardMaster文本版主7LastModify日期/時(shí)間最后修改時(shí)間8BoardTopics數(shù)字版面主題數(shù)9BoardReplys數(shù)字版面回復(fù)數(shù)6.系統(tǒng)信息表(QiQiBoy_System_Disp)序號(hào)字段名字段類(lèi)型說(shuō)明備注1SystemID自動(dòng)編號(hào)系統(tǒng)信息編號(hào)主鍵2SystemName文本網(wǎng)站名稱(chēng)3SystemList文本網(wǎng)站介紹4SystemUrl文本網(wǎng)站地址5SystemLogo文本網(wǎng)站LOGO6SystemUser網(wǎng)站站長(zhǎng)7Systememail
39、r文本郵件地址8SystemQQ文本QQ號(hào)碼9SystemReg備注注冊(cè)提示信息10SystemHelp備注網(wǎng)站幫助指南11SystemPic備注12SystemFilter備注過(guò)濾字符13SystemMeun備注首頁(yè)導(dǎo)航菜單14SystemFont文本字體顏色15SystemRefresh數(shù)字開(kāi)啟/關(guān)閉防刷新功能16SystemRefreshTime數(shù)字防刷新間隔時(shí)間17SystemOff數(shù)字網(wǎng)站開(kāi)啟/關(guān)閉18SystemVip數(shù)字會(huì)員發(fā)表/回復(fù)帖子19SystemUbb數(shù)字UBB編輯功能20SystemUp數(shù)字圖片上傳功能21SystemMailAddress文本在線(xiàn)發(fā)送郵箱地址22Sys
40、temSmtpAddress文本發(fā)送郵箱SMTP地址23SystemMailName文本發(fā)送郵箱登陸帳號(hào)24SystemMailPass文本發(fā)送郵箱登陸密碼25SystemCopyTxt文本26SystemCode數(shù)字27SystemEmNum數(shù)字帖子表情允許數(shù)目這是個(gè)核心表,但是他的每個(gè)字段都很簡(jiǎn)單,貼吧設(shè)置字段存儲(chǔ)了貼吧名稱(chēng),貼吧地址,貼吧聯(lián)系方式,過(guò)濾詞這個(gè)字段很重要。他的內(nèi)容是不允許發(fā)布在貼吧上的當(dāng)用戶(hù)發(fā)布題寫(xiě)非法言論是,可以通過(guò)這個(gè)字段檢查出來(lái)。7.主題,帖子信息表(QiQiBoy_Topic_Disp)序號(hào)字段名字段類(lèi)型說(shuō)明備注1TopicID自動(dòng)編號(hào)主題id主鍵2ParentID
41、數(shù)字父文章id3RootID數(shù)字主題號(hào)4BoardNlass數(shù)字一級(jí)版面號(hào)5BoardClass數(shù)字二級(jí)版面號(hào)6UserName文本發(fā)表主題者7LastPost文本最后發(fā)帖者8Title文本主題類(lèi)型9Content備注主題內(nèi)容10Img文本主題圖片內(nèi)容11DateAndTime日期/時(shí)間發(fā)表主題時(shí)間12UpdateTime日期/時(shí)間最后發(fā)帖時(shí)間13Reads數(shù)字閱讀次數(shù)14Replys數(shù)字回復(fù)次數(shù)15Status數(shù)字主題狀態(tài)16TopicIp文本發(fā)表主題者的IP17ReplyIp文本回復(fù)者的IP18Favorite備注收藏該主題3.2.3連接數(shù)據(jù)庫(kù)在整個(gè)系統(tǒng)開(kāi)發(fā)的過(guò)程中,數(shù)據(jù)庫(kù)連接是必不可少的
42、,是公用的,我們可以把這一部分先拿出來(lái),單獨(dú)做成一個(gè)頁(yè)面,在需要的時(shí)候只需要調(diào)用這個(gè)頁(yè)面就可以了,而不用每次都去寫(xiě)連接數(shù)據(jù)庫(kù)的程序,這個(gè)做法叫做復(fù)用,是在程序開(kāi)發(fā)中經(jīng)常用到的。 首先要建立同數(shù)據(jù)源的連接,我們利用ADO的Connection來(lái)建立同數(shù)據(jù)庫(kù)的連接。建立asodb.connection對(duì)象,使用此對(duì)象的open方法打開(kāi)數(shù)據(jù)庫(kù)?,F(xiàn)在來(lái)看代碼如程序3.01所示:數(shù)據(jù)庫(kù)連接程序(conn.asp)%1. .On Error Resume Next2. Dim Conn,Connstr,Db3. Db=data/data.mdb 4. Set conn = Server.CreateObj
43、ect(ADODB.Connection)5. Connstr=Driver=Microsoft Access Driver (*.mdb);dbq= & Server.MapPath(db)6. Conn.Open Connstr7. If Err Then8. err clear9. response.write 數(shù)據(jù)庫(kù)連接錯(cuò)誤.10. Response.End11. End If12. Function CloseDatabase13. Conn.close14. Set Conn = nothing15. End Function% 第一行是容錯(cuò)語(yǔ)句,發(fā)生錯(cuò)誤后,繼續(xù)執(zhí)行下一句,接下來(lái)
44、就用dim聲明了變量 rs,sql,Conn,Connstr,Db,connstr這個(gè)變量是用來(lái)存儲(chǔ)連接數(shù)據(jù)庫(kù)的信息的,變量db聲明了數(shù)據(jù)庫(kù)文件所在的路徑。 第五行,為connstr賦值。這是很關(guān)鍵的一步,這里聲明的是ole db 連接數(shù)據(jù)庫(kù)的方式,只看data sourse部分,他后面跟的是數(shù)據(jù)庫(kù)文件的路徑。Server.mappath函數(shù)是asp內(nèi)置的server對(duì)象的一個(gè)函數(shù),用來(lái)獲取五網(wǎng)站目錄下文件的絕對(duì)路徑。 在79行寫(xiě)了一個(gè)判斷錯(cuò)誤的信息,如果連接數(shù)據(jù)庫(kù)錯(cuò)誤,系統(tǒng)會(huì)給出一個(gè)錯(cuò)誤,這時(shí)候通過(guò)asp的err對(duì)象判斷錯(cuò)誤的存在,首先將錯(cuò)誤信息從內(nèi)存清除,然后將conn對(duì)象從內(nèi)存中清除。
45、3.3主要界面及相關(guān)代碼分析 數(shù)據(jù)庫(kù)連接完了,接下來(lái)要做的就是實(shí)際模塊程序的編寫(xiě)了。首先要寫(xiě)的是用戶(hù)模塊,用戶(hù)模塊包含7個(gè)功能,其中有些功能是相輔相成的。現(xiàn)在就一步步地實(shí)現(xiàn)本模塊的功能。3.3.1 用戶(hù)登陸我們已經(jīng)有了用戶(hù)信息表,其中的用戶(hù)名和用戶(hù)密碼字段是用來(lái)驗(yàn)證用戶(hù)身份的,有了這兩個(gè)字段,我們就可以很容易地寫(xiě)出驗(yàn)證用戶(hù)登陸的程序了。首先來(lái)看用戶(hù)登陸的界面,如圖所示。我們將這個(gè)頁(yè)面命名為login.asp,先看頁(yè)面的內(nèi)容?!坝脩?hù)帳號(hào)”和“用戶(hù)密碼”這兩項(xiàng)就是用來(lái)讀取用戶(hù)名和密碼的地方。接下來(lái)是一個(gè)cookie選項(xiàng),cookie是用來(lái)保存用戶(hù)信息的一種方式,系統(tǒng)登錄頁(yè)面所涉及的HTML表單元素
46、如表2所示:表2系統(tǒng)登錄頁(yè)面所涉及的HTML表單元素名稱(chēng)類(lèi)型含義重要屬性formForm表單action= loginfox.asp method=POSTUserNametext用戶(hù)帳號(hào)onFocus=this.select(); onmouseover=this.style.background=#EAEAEA; onmouseout=this.style.background=#FFFFFFPasswordpassword用戶(hù)密碼onFocus=this.select(); onmouseover=this.style.background=#EAEAEA; onmouseout=thi
47、s.style.background=#FFFFFFverifycodetext驗(yàn)證碼onFocus=this.select(); onmouseover=this.style.background=#EAEAEA; onmouseout=this.style.background=#FFFFFF size=6 maxlength=4AutoLogincheckboxCookiestype=checkbox id=AutoLogin value=truesubmitsubmit【我要登錄】按鈕class=input value= 我要登 錄 submit2reset【擦除重填】按鈕value=
48、 擦除重 填 class=input 驗(yàn)證用戶(hù)身份程序(loginfox.asp)%dim UserName,Password,VerifyCode UserName=replace(trim(Request.form(UserName),)Password=replace(trim(Request.form(Password),)VerifyCode=replace(trim(Request.Form(VerifyCode),)if UserName= thenresponse.write (alert(友情提示!nn用戶(hù)帳號(hào)不能為空!);history.back();)response.e
49、ndend ifif Password= thenresponse.write (alert(友情提示!nn用戶(hù)密碼不能為空!);history.back();)response.endend ifIf HOST_CODE=0 thenif VerifyCode= thenresponse.write (alert(友情提示!nn驗(yàn)證編碼不能為空!);history.back();)response.endend ifif VerifyCode Trim(Session(VerifyCode) thenresponse.write (alert(友情提示!nn驗(yàn)證編碼錯(cuò)誤!);history.back();)response.endend ifend ifip = request.ServerVariables(HTTP_X_FORWARDED_FOR) if ip = then ip = request.ServerVariables(REMOTE_ADDR)Sql=select * from QiQiBoy_User_Disp where LockUser=0 and UserName=&showstring(UserName)&Set Rs=Conn.execute(Sql)f Rs.eof and rs.bof thenResponse.Write (alert(友
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- (二模)晉中市2025年高三高考二模 語(yǔ)文試卷(含A+B卷答案詳解)
- 2.2聲音的特性說(shuō)課稿2025年初中人教版物理八年級(jí)上冊(cè)
- 微整顧客協(xié)議書(shū)
- 需求導(dǎo)向性干預(yù)下行無(wú)縫隙護(hù)理在腹腔鏡子宮肌瘤剔除術(shù)圍術(shù)期的干預(yù)效果分析
- 住宅裝修設(shè)計(jì)協(xié)議
- 文化創(chuàng)意產(chǎn)業(yè)內(nèi)容創(chuàng)新與市場(chǎng)推廣方案
- 商業(yè)房產(chǎn)交易居間合同范本
- 提升客戶(hù)滿(mǎn)意度服務(wù)質(zhì)量方案
- 提高客戶(hù)服務(wù)質(zhì)量與滿(mǎn)意度的實(shí)施方案
- 產(chǎn)品設(shè)計(jì)與生產(chǎn)制造委托協(xié)議
- 數(shù)學(xué)-湖北省武漢市2025屆高中畢業(yè)生二月調(diào)研考試(武漢二調(diào))試題和解析
- 【公開(kāi)課】同一直線(xiàn)上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級(jí)下冊(cè)+
- 學(xué)術(shù)英語(yǔ)智慧樹(shù)知到答案2024年南開(kāi)大學(xué)
- 【部編版道德與法治六年級(jí)下冊(cè)】全冊(cè)測(cè)試卷(含答案)
- GB/T 10752-2005船用鋼管對(duì)焊接頭
- 2021年上海臨港外服人力資源有限公司招聘筆試試題及答案解析
- 生物安全柜及應(yīng)用課件
- 酒店游泳池系統(tǒng)維保合同
- 現(xiàn)代商業(yè)空間展示設(shè)計(jì)ppt
- 高家堡副井井筒壁座施工安全技術(shù)措施
- 世界貿(mào)易組織(WTO課件(25頁(yè)P(yáng)PT)
評(píng)論
0/150
提交評(píng)論