- 相關(guān)推薦
ASP交友系統設計(一)
前 言
在科技不斷發(fā)展的今天,利用計算機進(jìn)行現代化通訊已經(jīng)成為我們身邊必部可少的工具。我們身處在一個(gè)知識日新月異、時(shí)刻充滿(mǎn)挑戰的時(shí)代,科技的飛速,知識不斷創(chuàng )新的社會(huì )。所以利用新的通訊方式增進(jìn)同學(xué)見(jiàn)友誼,增進(jìn)朋友之間的了解是時(shí)代所要求的。
作為當代大學(xué)生,應有長(cháng)遠的目光和隨機應變的能力,應走在時(shí)間的前面,掌握最新的社會(huì )動(dòng)態(tài)、最先進(jìn)科學(xué)技術(shù),以調整自己的知識結構和能力結構,去適應社會(huì )的發(fā)展。新世紀需要具有豐富現代科學(xué)知識的人;需要能夠獨立解決問(wèn)題、完成工作的人;需要能獨當一面、時(shí)常挑戰自己極限的人;需要有創(chuàng )新意識的人。我們在不斷努力中學(xué)習做一個(gè)與時(shí)代并進(jìn)的人。
在進(jìn)入實(shí)習的階段中越來(lái)越覺(jué)得友誼的增進(jìn)是必須的。俗話(huà)說(shuō)人在社會(huì ),多一個(gè)朋友是條路,而且各種通訊方式的變更更是五花八門(mén)。因此我想做一個(gè)校友錄系統來(lái)增加一種通訊方式以方便我院學(xué)生的聯(lián)系。讓我院學(xué)生感受到雖然身處異地,卻隨時(shí)可以鼠標一點(diǎn)重新讓你有重歸校園的親切感。
我現在用文字形式將我做此系統的過(guò)程及其功能介紹展現給大家。由于是初次編寫(xiě),缺少經(jīng)驗,可能有許多不完備或出錯的地方,誠懇希望老師們不吝指正。
關(guān)鍵詞: 校友錄系統、窗體、控件、數據庫
第一章 系統設計
§1.1 市場(chǎng)需求分析
隨著(zhù)社會(huì )的發(fā)展,同學(xué)之間之間的學(xué)術(shù)交流,以及同學(xué)之間的相互聯(lián)系 ,等這些都必須利用計算機,因此用電子信息技術(shù)來(lái)交流已經(jīng)成為社會(huì )發(fā)展的趨勢 。在交流中大家可以重新一起回憶往事。有新鮮事大家可以一起交流,有疑問(wèn)可以通過(guò)留言方式來(lái)獲取校友提供的信息。這樣既增進(jìn)了同學(xué)之間的友誼同時(shí)也得到了自己想要獲取的信息。
計算機技術(shù)的迅速發(fā)展帶動(dòng)其它技術(shù)的發(fā)展,自然也推動(dòng)著(zhù)信息技術(shù)高度發(fā)展快速前進(jìn)。信息、信息技術(shù)和信息化的重要性日益被人們所認識,高科技電子通訊也日益被大眾所接受,所以現代化通訊方式是今后發(fā)展的趨勢,,所以建立一套符合實(shí)際的、簡(jiǎn)便快捷的、易于掌握的信息系統勢在必行。
§1.2 系統設計
§1.2.1 系統目標設計
通過(guò)此系統可以輕松瀏覽自己或與自己好友的詳細情況,注冊會(huì )員后還可輕松添加、修改、刪除好友信息。
§1.2.2 開(kāi)發(fā)設計思想
本系統的開(kāi)發(fā)設計思想:
★系統應符合規定,滿(mǎn)足大家日常通訊的工作需要,并達到操作過(guò)程中的直觀(guān)、方便、實(shí)用、安全等要求;
★系統采用模塊化程序設計方法,既便于系統功能的各種組合和修改,又便于未參與開(kāi)發(fā)的技術(shù)維護人員的補充和維護;
★系統應具備數據庫維護功能,及時(shí)根據用戶(hù)需求進(jìn)行數據的添加,刪除、修改、等操作。
★系統中還應具備有信息查詢(xún)功能,以便使管理人員方便、及時(shí)地了解各類(lèi)有關(guān)情況,使系統真正地幫助并提高管理員的管理水平,使管理方便、快捷、準確、無(wú)誤。
§1.3 校友錄系統的開(kāi)發(fā)環(huán)境及其可擴展性
§1.3.1 校友錄系統的開(kāi)發(fā)環(huán)境
(1)硬件環(huán)境:
主機:電腦486DX/100,推薦Pentium200以上;
內存:最低要求8MB,最好在32M內上;
硬盤(pán):程序需用硬盤(pán)容量約2M,由數據所需空間使用情況而定;
顯示器:標準VGA彩色(黑白)顯示器;1024×768;
(2)軟件配置:
操作系統:windowsXP
系統開(kāi)發(fā)軟件:Dreamweaver MX
數據庫開(kāi)發(fā)軟件:Access2000
操作環(huán)境: Asp+Access ,IIS4.0
1.ASP:20世紀末,隨著(zhù)計算機科學(xué)的發(fā)展,數據庫技術(shù)在Internet中的應用越來(lái)越廣泛,為廣大網(wǎng)絡(luò )用戶(hù)提供了更加周到和人性化的服務(wù)。個(gè)性化已逐漸成為當今Web應用的潮流。本文研究了一種基于數據關(guān)聯(lián)規則網(wǎng)上論壇系統,論壇也稱(chēng)為BBS,BBS是BULLETIN BOARD SYSTEM的縮寫(xiě),意即電子公告板,一種在INTERNET上常用的用于信息服務(wù)的web系統,他的主要服務(wù)是用來(lái)幫助瀏覽者相互溝通,吸引用戶(hù)、服務(wù)用戶(hù)的。
2.IIS:WE務(wù)器是Web應用程序的心臟。IIS(Internet Information Server)是微軟推出的Windows NT Option Pack的主要成員,作為Win2000server的擴展,自推出以來(lái)已經(jīng)有了很大發(fā)展,其體系結構是當今市場(chǎng)上最受關(guān)注的Web服務(wù)器之一。新推出的IIS4.0版本增強了系統安全性,具有服務(wù)器端腳本開(kāi)發(fā)調試,內容管理和站點(diǎn)分析,崩潰防護,內置JAVA虛擬機及全面支持ASP等強大功能。
IIS與ASP相結合:
在過(guò)去,客戶(hù)機/服務(wù)器結構的設計與Web的相關(guān)技術(shù)幾乎處于平行線(xiàn)上,兩者相互獨立并無(wú)法作出集成性的設計,F在我們利用IIS+ASP構成三層式Web結構(如圖2.1所示)的中間一層,將客戶(hù)機/服務(wù)器結構與Web密切結合,完成前后端兩者的集成輸出功能,使得Web站點(diǎn)的開(kāi)發(fā)更方便,實(shí)現的功能更強大! ±肐IS+ASP技術(shù)來(lái)集成Web前后端所帶來(lái)的強大效益可歸結為以下幾個(gè)方面:
(1)減少構建和維護成本
(2)加快聯(lián)機過(guò)程
(3)軟件集中在服務(wù)器端開(kāi)發(fā)管理
(4)端可使用任何瀏覽器(IE、Netscape…..)
(5)端可存取任何數據庫 (SQL、Access…..)
(6)用任何腳本語(yǔ)言開(kāi)發(fā) (VBScript、java script、PERL…..)
ASP的內部特點(diǎn):
ASP提供了6個(gè)功能強大的內部對象,每個(gè)對象具有各自的屬性(Property)、方法(Method),有的還擁有數據集合(Collection)與事件(Event),它們共同完成Web中的一些重要工作。這6個(gè)對象及其功能描述如表2.1所示。
表2.1 ASP 內部6大對象及其功能
對象名稱(chēng) 功能描述
Request 從客戶(hù)端取得信息
Response 將信息送給客戶(hù)端
Server 提供一些Web服務(wù)器工具
Session 儲存在一個(gè)Session內的用戶(hù)信息,該信息僅可被該用戶(hù)訪(fǎng)問(wèn)
Application 在一個(gè)ASP-Application中讓不同的客戶(hù)端共享信息
ObjectContext 配合Microsoft Transaction服務(wù)器進(jìn)行分布式事務(wù)處理
合理地運用這些對象可以使原本復雜,煩瑣的工作變得簡(jiǎn)捷而條理清晰。我們可以用以下的語(yǔ)法直接使用這些對象:對象/屬性/方法/數據集合
3.GLOBAL文件
每一個(gè)以Active Server Pages為基礎的應用程序都擁有一個(gè)Global.asa文件(ASA后綴名其實(shí)是Active Server Application的縮寫(xiě)),它位于每一個(gè)應用程序的基點(diǎn)目錄之下。當Active Server Pages做下面兩個(gè)動(dòng)作時(shí),Server便會(huì )去讀Global.asa文件:(1)Web Server啟動(dòng)之后,一個(gè)應用程序目錄中任一個(gè)ASP文件被提出第一個(gè)HTTP請求(Request)時(shí)。
(2)不具有任何Session的客戶(hù)端向Server請求一個(gè)ASP文件時(shí)! ∏懊嬉呀(jīng)提到Application和Session這兩個(gè)ASP的內部對象。Application對象內的信息供所有正在執行該應用程序的用戶(hù)分享,它創(chuàng )建于Web Server啟動(dòng)后一個(gè)應用程序中任一ASP文件被提出第一個(gè)HTTP請求時(shí),結束于Server端停止運行。而Session對象僅屬于一位用戶(hù),維持一個(gè)用戶(hù)端的信息,其他用戶(hù)無(wú)法訪(fǎng)問(wèn),它創(chuàng )建于一個(gè)不具有Session的用戶(hù)向Server請求一個(gè)ASP文件時(shí),結束于該Session到期(即用戶(hù)端超過(guò)某時(shí)間段沒(méi)有向Server提出要求或刷新Web頁(yè)面)或Abandon語(yǔ)句的調用?梢(jiàn),Global.asa文件的調用與Application與Session這兩個(gè)對象密切相關(guān)。事實(shí)上我們通常在Global。asa文件中寫(xiě)入以下內容:
(1) Application或Session的開(kāi)始事件(Start-event)。
(2) Application或Session的結束事件 (End-event)。
這樣,在一個(gè)Application或Session對象被創(chuàng )建或結束時(shí),系統會(huì )自動(dòng)完成Global.asa文件中寫(xiě)入的相應事件。值得注意的是,如果一個(gè)Application與一個(gè)Session同時(shí)開(kāi)始,Active Server Pages會(huì )先處理Application的開(kāi)始事件,而如果一個(gè)Application與一個(gè)Session同時(shí)結束,Active Server Pages則會(huì )先處理Session的結束事件。
CGI(Common Gateway Interface,通用網(wǎng)關(guān)接口)也是Internet上一種功能強大的Web頁(yè)面技術(shù),其工作方式有別于A(yíng)SP。我們現對二者進(jìn)行比較。Active Server Pages開(kāi)發(fā)Web應用程序的特點(diǎn):。1) 完全嵌入HTML,與HTML、Script語(yǔ)言完美結合!。2) 無(wú)須手動(dòng)編譯和鏈接程序!。3) 面向對象,并可擴展ActiveX Server組件功能!。4) 使用腳本語(yǔ)言(java script、VBScript或PERL)編寫(xiě)!。5) 存取數據庫輕松容易(使用ADO組件)!。6) 可使用任何語(yǔ)言編寫(xiě)自己的ActiveX Server組件!。7) 無(wú)瀏覽器兼容問(wèn)題!。8) 程序代碼隱藏,客戶(hù)端僅能看到ASP輸出的HTML文件!。9) 縮短Web開(kāi)發(fā)時(shí)間! ∠啾戎,使用CGI開(kāi)發(fā)Web應用程序具有以下缺點(diǎn):。1) 不易與HTML文件集成!。2) 須使用其他較復雜的語(yǔ)言來(lái)開(kāi)發(fā)CGI程序!。3) 程序開(kāi)發(fā)時(shí)間較長(cháng)!。4) 存取數據庫不容易!。5) 每個(gè)CGI程序被不同用戶(hù)執行時(shí)都得重新執行一次,并占去Server的一個(gè)端口(Port),降低Server效率! 】梢(jiàn),ASP在數據庫訪(fǎng)問(wèn)、與HTML的集成、提高服務(wù)器的效率等諸多方面都優(yōu)于CGI,更適應Web應用程序開(kāi)發(fā)的需要,因此本文選擇了ASP作為個(gè)性化頁(yè)面生成器的開(kāi)發(fā)工具。 ACCESS數據庫開(kāi)發(fā)能匯集各種信息以供查詢(xún)、存儲和檢索。Access 的優(yōu)點(diǎn)在于它能使用數據表示圖或自定義窗體收集信息。數據表示圖提供了一種類(lèi)似于 Excel 的電子表格,可以使數據庫一目了然。另外,Access 允許創(chuàng )建自定義報表用于打印或輸出數據庫中的信息。Access也提供了數據存儲庫,可以使用桌面數據庫文件把數據庫文件置于網(wǎng)絡(luò )文件服務(wù)器,與其他網(wǎng)絡(luò )用戶(hù)共享數據庫。Access 是一種關(guān)系數據庫工具,關(guān)系數據庫是已開(kāi)發(fā)的最通用的數據庫之一。如上所述,Access 作為關(guān)系數據庫開(kāi)發(fā)具備了許多優(yōu)點(diǎn),可以在一個(gè)數據包中同時(shí)擁有桌面數據庫的便利和關(guān)系數據庫的強大功能。
§1.3.2 交友錄管理系統的可擴展性
由于時(shí)間的限制,且個(gè)人的水平有限,在該系統中有很多未涉及的地方。辟如說(shuō):系統沒(méi)有歌曲下載和信息下載功能,沒(méi)有各友情網(wǎng)站之間的連接。今后,可對此系統在這方面加以改進(jìn),這樣交友錄才會(huì )越來(lái)越壯大,我們的設計才會(huì )越來(lái)越健全。
還有,系統的同步更新做的并不是很完善,統計也沒(méi)有具體去做。這是一個(gè)重要的環(huán)節,可以努力去開(kāi)發(fā),做好后既可以簡(jiǎn)化系統的復雜性,又可以提高系統的安全性。
在這里講這些,只是希望讀者能夠注意到這幾點(diǎn)也是非常重要的,是具有相當可擴展性的環(huán)節。為讀者改進(jìn)這個(gè)系統的做一個(gè)簡(jiǎn)單的提示。
系統功能的完善有待我們共同去努力!
第二章 總體設計
總體設計階段的基本目的是用比較抽象概括的方式確定系統如何完成預定的任務(wù),也就是說(shuō),應該確定系統的物理配置方案,并且進(jìn)而確定組成系統的每個(gè)程序的結構。因此,總體設計階段主要由兩個(gè)小階段組成。首先是系統設計,從數據流圖出發(fā)設計完成系統功能的若干種合理的物理方案,然后進(jìn)行軟件結構設計,確定軟件由哪些模塊組成以及這些模塊之間的動(dòng)態(tài)調節應用關(guān)系。層次圖和結構圖是描繪軟件結構的常用工具。
§2.1 系統功能分析
本系統是建立在WinXP 平臺上,用VB語(yǔ)言開(kāi)發(fā)設計,用Access來(lái)記錄數據。為的是面向用戶(hù),其中包括好友注冊,好友個(gè)人管理,網(wǎng)站會(huì )員管理等。本系統的總體功能是通過(guò)好友注冊,好友登陸驗證,對好友進(jìn)行管理。方便用戶(hù),代替了以前的手動(dòng)操作。大大為交友者和管理者雙方節省了時(shí)間。
系統管理包括用戶(hù)管理、修改個(gè)人信息、退出系統。
用戶(hù)管理包括添加、刪除用戶(hù)及確定、退出。
修改個(gè)人信息包括驗證、確定、取消。
交友錄的運行包括管理員管理、好友留言信息預覽、好友查詢(xún)。
管理員管理是通過(guò)對姓名、以及具體好友的個(gè)人信息、進(jìn)行添加、刪除、修改、更新。
交友留言信息預覽是通過(guò)調用數據庫里信息來(lái)實(shí)現。
校友查詢(xún)通過(guò)好友的姓名,來(lái)查詢(xún)實(shí)現。
版權聲明是為了保證本系統不被抄襲。
幫助即本系統的說(shuō)明書(shū)。
§2.2 系統功能模塊劃分
在系統功能分析的基礎上,考慮Visual Basic 6.0程序編制的特點(diǎn),得到如下圖所示的系統功能模塊圖。
(系統功能模塊如上圖)
第三章 數據庫設計
數據庫在任何系統中占有非常重要的地位,它是數據的來(lái)源。數據庫的結構好壞,將直接影響到系統功能的實(shí)現。
所以建庫前要做好充分的準備。首先,要了解用戶(hù)各個(gè)方面的需求,他們的需求主要體現在各種信息的提供、保存、更新、查詢(xún)。其次,要收集基本的數據,并理清其中的關(guān)系,以備后用。
根據交友管理系統的要求,通過(guò)對好友管理工作過(guò)程的內容和數據流程分析,設計如下面所示的數據項和數據結構:
用戶(hù)信息包括的數據項有:user_id(自動(dòng)編號),用戶(hù)名,密碼和注冊日期 。
用戶(hù)詳細注冊信息包括的數據項有:lar_id(自動(dòng)編號), 用戶(hù)ID,姓名,生日,年齡,學(xué)歷,職業(yè),電話(huà),性格,星座等。
留言信息包括的數據項有:ID(自動(dòng)編號),留言者姓名,留言?xún)热,對方用?hù)ID,留言者ID。
好友信息包括的數據項有: ID(自動(dòng)編號),用戶(hù)名,性別,地區。
有了上面的數據結構、數據項和數據流程,我們就能進(jìn)行下面的數據庫設計。
§3.1 概念結構設計
得到上面的數據項和數據結構以后,就可以設計出滿(mǎn)足用戶(hù)的各種窗體,以及它們之間的關(guān)系,為后面的邏輯結構設計打下基礎。
本實(shí)例根據上面的設計規劃出的實(shí)體有:用戶(hù)信息實(shí)體、書(shū)類(lèi)信息實(shí)體、書(shū)簡(jiǎn)介信息實(shí)體、進(jìn)書(shū)表信息實(shí)體,各個(gè)實(shí)體具體的描述E-R圖如下。
用戶(hù)管理信息實(shí)體的E-R圖如下:
好友信息實(shí)體的E-R圖如下:
好友簡(jiǎn)介信息實(shí)體的E-R圖如下:
§3.2 邏輯結構設計
數據庫的概念結構設計完成后,現在可以將上面的數據庫概念結構轉化為數據庫的邏輯結構。
我現在將用下面的一個(gè)表來(lái)表示交友系統數據庫中一個(gè)表的設計。
用戶(hù)簡(jiǎn)單信息注冊表如下:
列名 數據類(lèi)型 字段大小 必填字段 默認值
User_id 整型 4
User_name 文本 18 是
Password 文本 18 是
用戶(hù)詳細注冊信息表如下:
列名 數據類(lèi)型 字段大小 必填字段 默認值
Lar_id 整型 4
User_id 整型 4
Name 文本 10 是
Sex 文本 2 是
Britherday 文本 12 是
age 整型 4 是 0
Home 文本 30 是 0
Education 文本 10 是
Job 文本 20 是
Company 文本 50 是
Tel 文本 20 是
Netname 文本 10 是
Email 文本 50 是
Homepage 文本 50 是
Music 文本 50 是
Book 文本 20 是
People 文本 30 是
Interest 文本 50 是
Photo 整型 4 是
ip 文本 14 是
Star 文本 50 是
用戶(hù)留言信息表如下:
列名 數據類(lèi)型 字段大小 必填字段 默認值
ID 整型 4
NetNAME 文本 4 是
Word 文本 255 是
For_id 4 4
User_id 貨幣 4
好友信息表如下:
列名 數據類(lèi)型 字段大小 必填字段 默認值
ID 整型 4
NetNAME 文本 50 是
sex 文本 50 是
home 文本 50 是
For_id 整型 4
User_id 整型 4
§3.3 數據庫的實(shí)現
經(jīng)過(guò)前面的需求分析和概念結構設計以后,F在就可以在A(yíng)ccess數據庫中創(chuàng )建數據表了。
打開(kāi)Access軟件,新建數據庫命名為“date.mdb”,目的是為了方便用戶(hù)理解。在其上通過(guò)表設計器分別新建用戶(hù)信息表、好友信息表、好友詳細信息表、留言信息表。
在用戶(hù)信息表中添字段時(shí),必須考慮到用戶(hù)名和密碼的數據類(lèi)型和字段大小。經(jīng)過(guò)我的考慮,我定用戶(hù)名和密碼的數據類(lèi)型為文本型即什么類(lèi)型的字符都可以。定用戶(hù)名的字段大小為18個(gè)字符,密碼的字段大小為18個(gè)字符。
同理,我考慮好了用戶(hù)簡(jiǎn)單信息表、用戶(hù)詳細信息表、留言信息表,以及好友信息表中應填寫(xiě)的字段名,且經(jīng)過(guò)考察,定下了這些字段的數據類(lèi)型和字段大小。
在填寫(xiě)記錄時(shí),一定要謹慎,和字段名必須相對應,且要符合字段名的數據類(lèi)型和字段大小。我按照自己定下的規格,將自己收集到的數據填寫(xiě)在了相應的表中。
第四章 系統詳細設計
有了上面的系統分析和數據庫分析,便可以利用ASP進(jìn)行系統的設計了。在桌面建立“FRIEND在其下建立“IMAGES,和“DATE下分別存放生成文件,圖片文件和數據庫文件。
§4.1 主界面的設計及分析
運行ASP,新建一個(gè)虛擬目錄“FRIEND”,新建站點(diǎn)。
建立交友系統主控界面如下圖:
(圖4.1.1)
其上有上有各種類(lèi)型的菜單選項,如好友注冊、個(gè)人檔案、相片上傳、檔案注冊、好友登陸。以及下一級子菜單?筛鶕约旱男枨筮M(jìn)行選擇。且工具欄上有相對應的快捷按鈕,方便用戶(hù),為用戶(hù)節省時(shí)間。
窗體右面的類(lèi)型表即書(shū)類(lèi)型和書(shū)類(lèi)型代號的對應表是為了提醒用戶(hù),方便用戶(hù),讓用戶(hù)不必強行記憶這么多東西,就是忘了也可方便查找。
§4.2 各界面的設計及分析
§4.2.1 網(wǎng)友注冊模塊
網(wǎng)友注冊包括以下子模塊:
會(huì )員注冊
reg.asp
regsubmit.asp
regok.asp
register.asp
ladd.asp
read.asp
用戶(hù)登陸驗證
default.asp
login.asp
your.asp
各子模塊聯(lián)系如下:
用戶(hù)注冊頁(yè)面:
reg.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
名稱(chēng) 表單元素類(lèi)型 含義 最大長(cháng)度
User_name Text 用戶(hù)登陸名稱(chēng) 10
Password Password 用戶(hù)登陸密碼 10
Password_two Password 確認密碼 10
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面僅向系統提供用戶(hù)名和密碼。
c.頁(yè)面代碼分析:
<%
if session("user_id")<>1 then
response.redirect "havereg.htm"
end if
%>
注冊不成功頁(yè)面:
regsubmit.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
此頁(yè)面無(wú)需填寫(xiě)HTML表單元素。
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面僅向系統提供用戶(hù)住冊名稱(chēng)和密碼。
c.頁(yè)面代碼分析:
<!--#include file="conn.asp"-->
<%取得提交表單的用戶(hù)名,密碼。
user_name =left(request("user_name"),10)
password =left(request("password"),10)
如果密碼為空終止程序執行。
if password="" then
response.write "數據有錯!"
response.end
end if
Set rs_user = Server.CreateObject("ADODB.Recordset")
sql="select * from user_reg where user_name like '" & user_name & "'"
rs_user.open sql,conn,3,2
if rs_user.eof and rs_user.bof then
rs_user.addnew
rs_user("user_name")=user_name
rs_user("password")=password
rs_user("date")=date
rs_user.update
rs_user.movelast
session("user_id")=rs_user("user_id")
rs_user.close
如果用戶(hù)住冊成功直接跳轉到regok.asp
response.redirect "regok.asp"
response.end
else
%>
用戶(hù)住冊成功頁(yè):
regok.asp頁(yè)面示例a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
此頁(yè)面無(wú)需填寫(xiě)HTML表單元素。
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面沒(méi)有涉及數據庫表的信息
用戶(hù)填寫(xiě)個(gè)人信息頁(yè)
register.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
名稱(chēng) 表單元素類(lèi)型 含義 最大長(cháng)度
name Text 真實(shí)姓名 10
Home Text 籍貫 10
company Text 所在單位 50
Postalcode Text 郵編 6
Tel Text 聯(lián)系電話(huà) 20
Fresume Text 簡(jiǎn)歷 200
Netname Text 網(wǎng)名 10
Homepage Text 主頁(yè) 50
Email Text 郵箱 50
Chartroom Text 常進(jìn)的聊天室 50
Sport Text 喜歡的運動(dòng) 30
Book Text 喜歡的書(shū) 50
People Text 喜歡的人 30
Interest Text 愛(ài)好 50
Music Text 喜歡的音樂(lè ) 50
Adage Text 人生格言 50
Character Text 性格簡(jiǎn)介 50
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面為用戶(hù)填寫(xiě)個(gè)人信息。
c.頁(yè)面代碼分析:
<!--#include file="conn.asp"-->
<%
dim rs_lar
dim sql
dim i
'叛斷Session變量是否超時(shí)
if isnull(session("user_id")) then
response.redirect "timeout.htm"
end if
'叛斷此用戶(hù)是否已經(jīng)入會(huì )
if session("user_id")="1" then
response.redirect "notreg.htm"
response.end
end if
'判斷是否已經(jīng)填寫(xiě)檔案
Set rs_lar = Server.CreateObject("ADODB.Recordset")
sql="select * from larchives where user_id =" & session("user_id")
rs_lar.open sql,conn,3,2
if not(rs_lar.eof and rs_lar.bof) then
response.redirect "haveregist.htm"
response.end
end if
rs_lar.close
set rs_lar=nothing
set conn=nothing
%>
5.用戶(hù)信息顯示頁(yè):
read.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
此頁(yè)面無(wú)需填寫(xiě)HTML表單元素。
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面僅向系統提供用戶(hù)詳細的注冊信息,用到了數據表 larchives的操作。
c.頁(yè)面代碼分析:
<!--#include file="conn.asp"-->
<%
'叛斷Session變量是否超時(shí)
if isempty(session("user_id")) or session("user_id")="" then
response.redirect "timeout.htm"
end if
user_id=request("user_id")
Set rs_lar = Server.CreateObject("ADODB.Recordset")
sql="select * from larchives where user_id=" & user_id
rs_lar.open sql,conn,3,2
Set connpic = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("data/picture.mdb")
connpic.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
Set rspic = Server.CreateObject("ADODB.Recordset")
sql="select * from pic where user_id=" & user_id
rspic.open sql,connpic,1,1
set rs_apply=server.createobject("adodb.recordset")
sql="select * from apply where for_id=" & user_id & " and user_id=" & session("user_id")
rs_apply.open sql,conn,1,1
if not(rs_apply.eof and rs_apply.bof) then
willstr=rs_lar("netname") & "已向您發(fā)出交友請求"
end if
rs_apply.close
set rs_apply=nothing
set rs_friend=server.createobject("adodb.recordset")
sql="select * from friend where (for_id=" & session("user_id") & " and user_id=" & user_id & ") or (for_id=" & user_id & " and user_id=" & session("user_id") & ")"
rs_friend.open sql,conn,1,1
if not(rs_friend.eof and rs_friend.bof) then
willstr=rs_lar("netname") & "是您的好友"
end if
rs_friend.close
set rs_friend=nothing
set rs_apply=server.createobject("adodb.recordset")
sql="select * from apply where user_id =" & session("user_id") & " and for_id=" & user_id
rs_apply.open sql,conn,1,1
if not(rs_apply.eof and rs_apply.bof) then
willstr="您已向“" & rs_lar("netname") & "”發(fā)出交友請求,請靜候佳音!"
end if
rs_apply.close
set rs_apply=nothing
if rspic.eof and rspic.bof then
picid=1
cur=1
else
rspic.pagesize=1
cur=request("cur")
if cur="" or clng(cur)<1 then cur=1
if clng(cur)>rspic.pagecount then cur=rspic.pagecount
rspic.absolutepage=cur
picid=rspic("id")
end if
pics=rspic.recordcount
%>
6.用戶(hù)登陸顯示頁(yè):
default.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
名稱(chēng) 表單元素類(lèi)型 含義 最大長(cháng)度
User_name Text 用戶(hù)登陸名稱(chēng) 10
Password Password 用戶(hù)登陸密碼 10
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面僅向系統提供用戶(hù)名和密碼。
c.頁(yè)面代碼分析:
<form action="login.asp" method="POST">
……
</ form >
7.用戶(hù)登陸失敗顯示頁(yè)
login.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
此頁(yè)面無(wú)需填寫(xiě)HTML表單元素。
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面僅向系統提供登陸錯誤信息。
c.頁(yè)面代碼分析:
<%
Option Explicit
dim rs_user
dim sql
dim user_name,password
user_name =left(request("user_name"),10)
password =left(request("password"),10)
if password="" or user_name="" then
response.write "<script language='java script'>"
response.write "alert('數據填寫(xiě)有錯!');"
response.write "history.go(-1);"
response.write "</script>"
response.end
end if
if InStr(LCase(password),"'")<>0 or InStr(LCase(password),"or")<>0 then
response.write "<script language='java script'>"
response.write "alert('密碼不合法,請重新輸入!');"
response.write "history.go(-1);"
response.write "</script>"
response.end
end if
if server.HTMLEncode(user_name)<>user_name or InStr(user_name,"【")<>0 or InStr(user_name,"】")<>0 or InStr(user_name," ")<>0 or InStr(user_name," ")<>0 or InStr(user_name,"?")<>0 then
response.write "<script language='java script'>"
response.write "alert('數據填寫(xiě)有錯!');"
response.write "history.go(-1);"
response.write "</script>"
response.end
end if
8.用戶(hù)登陸成功顯示頁(yè)
your.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
此頁(yè)面無(wú)需填寫(xiě)HTML表單元素。
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面僅向系統提供登陸正確信息。本頁(yè)面用到了簡(jiǎn)單用戶(hù)注冊信息表uaer_reg,用戶(hù)詳細注冊表 larchives,信息表leaveword,好友列表friend等。
c.頁(yè)面代碼分析:
<!--#include file="conn.asp"-->
<%
dim rs_lar,rs_word,rs_apply,rs_back,rs_friend,rs_user
dim sql
'叛斷Session變量是否超時(shí)
if isempty(session("user_id")) then
response.redirect "timeout.htm"
end if
'叛斷此用戶(hù)是否已經(jīng)注冊
if session("user_id")=1 then response.redirect "notreg.htm"
Set rs_lar = Server.CreateObject("ADODB.Recordset")
sql="select * from larchives where user_id =" & session("user_id")
rs_lar.open sql,conn,3,2
'叛斷此用戶(hù)是否已經(jīng)提交檔案
if rs_lar.eof and rs_lar.bof then
response.redirect "notregist.htm"
response.end
end if
Set rs_word = Server.CreateObject("ADODB.Recordset")
sql="select * from leaveword where for_id=" & session("user_id") & " order by id desc"
rs_word.open sql,conn,1,1
set rs_apply=server.createobject("adodb.recordset")
sql="select * from apply where for_id=" & session("user_id")
rs_apply.open sql,conn,3,2
set rs_back=server.createobject("adodb.recordset")
sql="select * from back where for_id=" & session("user_id")
rs_back.open sql,conn,3,2
set rs_friend=server.createobject("adodb.recordset")
sql="select * from friend where for_id=" & session("user_id")
rs_friend.open sql,conn,3,2
Set rs_user = Server.CreateObject("ADODB.Recordset")
sql="select * from user_reg where user_id=" & session("user_id")
rs_user.open sql,conn,3,2
%>
§4.2.2 網(wǎng)友個(gè)人管理模塊
網(wǎng)友個(gè)人管理模塊包括以下子模塊:
資料管理
相片管理
交友請求回復
留言管理
資料管理模塊包括以下子頁(yè)面:
Edit.asp
Eadd.asp
Delhy.asp
相片管理模塊包括以下子頁(yè)面:
sendphoto.asp
addpic.asp
delpic.asp
交友請求回復管理頁(yè)
accept.asp
refuse.asp
delqq.asp
管理子模塊包含以下頁(yè)面
leaveword.asp
delliuyan.asp
1.用修改寫(xiě)個(gè)人信息頁(yè)
edit.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
名稱(chēng) 表單元素類(lèi)型 含義 最大長(cháng)度
name Text 真實(shí)姓名 10
Home Text 籍貫 10
company Text 所在單位 50
Postalcode Text 郵編 6
Tel Text 聯(lián)系電話(huà) 20
Fresume Text 簡(jiǎn)歷 200
Netname Text 網(wǎng)名 10
Homepage Text 主頁(yè) 50
Email Text 郵箱 50
Chartroom Text 常進(jìn)的聊天室 50
Sport Text 喜歡的運動(dòng) 30
Book Text 喜歡的書(shū) 50
People Text 喜歡的人 30
Interest Text 愛(ài)好 50
Music Text 喜歡的音樂(lè ) 50
Adage Text 人生格言 50
Character Text 性格簡(jiǎn)介 50
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面為用戶(hù)填寫(xiě)個(gè)人信息。用到的數據表信息有larchives的操作
c.頁(yè)面代碼分析:
<!--#include file="conn.asp"-->
<%
'叛斷此用戶(hù)是否已經(jīng)入會(huì )
if session("user_id")="" then
response.redirect "notreg.htm"
response.end
end if
Set rs_lar = Server.CreateObject("ADODB.Recordset")
sql="select * from larchives where user_id=" & session("user_id")
rs_lar.open sql,conn,3,2
if rs_lar.eof and rs_lar.bof then
response.redirect "notregist.htm"
response.end
end if
%>
2.保存修改的個(gè)人信息頁(yè)
eadd.asp頁(yè)面示例
該頁(yè)面為用戶(hù)提交個(gè)人檔案后所看到的頁(yè)面
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
此頁(yè)面無(wú)需填寫(xiě)HTML表單元素。
b.頁(yè)面所涉及的數據表信息:
本頁(yè)面用到了詳細用戶(hù)注冊信息表larchives的操作。
c.頁(yè)面代碼分析:
代碼與用戶(hù)提交個(gè)人詳細信息代碼十分相似。詳情請參照以上代碼。
2.用戶(hù)刪除好友頁(yè)
delhy.asp頁(yè)面示例
該頁(yè)面為用戶(hù)刪除好友頁(yè),刪除成功后直接跳轉到個(gè)人管理首頁(yè),因此沒(méi)有頁(yè)面顯示。
面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
本頁(yè)面無(wú)需填寫(xiě)HTML表單元素。
頁(yè)面代碼分析:
<!--#include file="conn.asp"-->
<%
if request("id") = "" then
response.redirect"default.asp"
response.end
end if
set rs_id = Server.CreateObject("ADODB.Recordset")
sql = "select * from friend where id="& request("id")
rs_id.open sql,conn,3,2
rs_id.close
Set rs_del = Server.CreateObject("ADODB.Recordset")
sql="delete from friend where id=" & request("id")
rs_del.open sql,conn,3,2
conn.close
response.redirect"your.asp"
response.end
%>
§4.2.3 網(wǎng)站管理模塊
網(wǎng)站管理模塊包括以下幾個(gè)頁(yè)面:
Adminlogin.asp 管理員登陸頁(yè)
Adminpass.asp 帳號審核頁(yè)
Admin.asp 管理員頁(yè)
Deluser.asp 刪除用戶(hù)頁(yè)
各頁(yè)面聯(lián)系如下:
1.管理員登陸頁(yè)頁(yè)
adminlogin.asp頁(yè)面示例
a.頁(yè)面中需要用戶(hù)填寫(xiě)的HTML表單元素有:
名稱(chēng) 表單元素類(lèi)型 含義 最大長(cháng)度
admin_name Text 用戶(hù)登陸名稱(chēng) 14
admin_Password Password 用戶(hù)登陸密碼 14
b.頁(yè)面所涉及的數據表信息:
此頁(yè)面僅向系統提供管理員姓名和密碼。
c.頁(yè)面代碼分析:
<form method="POST" action="adminpass.asp">
......
......
</from>
第五章 調試運行
編好的程序難免有錯,必須反復地檢查改正,直至達到預定設計要求方能投入使用。程序調試的目的就是檢查并糾正程序中的錯誤,以保證程序的可靠運行。調試通常分三步進(jìn)行:檢查程序是否存在錯誤,確定出錯的位置,糾正錯誤。
經(jīng)過(guò)我的運行測試,我發(fā)現我的程序有以下問(wèn)題:
系統的同步更新只做了一個(gè)庫存量的增加和減少,且庫存量的多少可以為負數。且沒(méi)有自動(dòng)提醒。
所有的窗體都必須在1024×768分辨率下運行,否則系統會(huì )有很多東西顯示不出來(lái)。
用系統的功能處沒(méi)有實(shí)現交友雙方的直接留言界面,顯的界面很是死板。還有待提高。
當系統在另外一臺計算機上運行時(shí),由于路徑問(wèn)題,系統將不能正常運行。
進(jìn)銷(xiāo)查詢(xún)不是很簡(jiǎn)化,庫存查詢(xún)沒(méi)實(shí)現模糊查詢(xún)。
每個(gè)文本框中字段的大小都沒(méi)有限制,可以輸入任意長(cháng)度的字符串或數字。
整個(gè)系統不是很完善,代碼也是如此。數據庫中的數據大部分為文本型,換成其他類(lèi)型會(huì )由于類(lèi)型不匹配而導致程序出錯。
總體來(lái)說(shuō)系統完整性、安全性、簡(jiǎn)約性還不是很好,有待完善。
結束語(yǔ)
經(jīng)過(guò)兩個(gè)月的努力,這套交友管理系統的構思、設計、上機運行調試已圓滿(mǎn)結束。在此期間,我查閱了許多資料,也得到了老師、同學(xué)的大力支持與幫助,我誠心的感謝他們!
剛開(kāi)始設計這套系統時(shí)遇到了好多難題。最主要的是不知從何入手,在指導老師的幫助下我對設計有了一個(gè)大概的了解?墒窃诰唧w編程時(shí)又遇到了不少的難題,有時(shí)一個(gè)很簡(jiǎn)單的內容不知為何就是不能運行,如果它得不到解決,后面的工作也無(wú)法進(jìn)行。有時(shí)一天才解決一個(gè)小問(wèn)題,效率很慢,真的有些想放棄了?墒墙(jīng)過(guò)老師、同學(xué)的幫助及自己的努力,在問(wèn)題解決時(shí),那種勝利的喜悅又是無(wú)法用言語(yǔ)來(lái)形容的。也就是在這種不斷出現問(wèn)題的灰心和不斷解決問(wèn)題的喜悅中,這套交友管理系統終于問(wèn)世了。
通過(guò)這個(gè)系統的制作,我體會(huì )到了ASP的優(yōu)點(diǎn),學(xué)以致用,是學(xué)習的目的,也是學(xué)習的最好方法。它使我對面向用戶(hù)有了更新的認識,使我懂得得了只有越為用戶(hù)著(zhù)想,才會(huì )越受歡迎。也告訴我以后做事一定要系統化、結構化、思維一定要嚴密。因為任何計劃,只有嚴密的思考加上反復的推敲才會(huì )更完善。
最后,我再次感謝幫助過(guò)我的人,尤其是我的老師,是她使我走入了ASP的大門(mén)。這次設計只是一個(gè)開(kāi)始,今后的路還有很長(cháng),我會(huì )加倍努力,爭取設計出更多、更好、更實(shí)用的軟件為大家提供服務(wù)。希望這套交友管理系統能真正發(fā)揮它的作用,為用戶(hù)帶來(lái)方便!
參考文獻
書(shū)名 作者 出版社
《ASP+ACCESS組建動(dòng)態(tài)網(wǎng)站》 劉韜、駱娟、何旭洪 人民郵電出版社
《Visual Basic數據庫開(kāi)發(fā)實(shí)例精粹》 郭瑞軍、唐邦民 電子工業(yè)出版社
《網(wǎng)絡(luò )數據庫應用教程》 袁枚,林志英,劉勁 人民郵電出版社
《網(wǎng)絡(luò )程序設計—ASP》 尚俊杰 清華大學(xué)出版社
《ACCESS應用技術(shù)教程》 史秀章 高等教育出版社
《網(wǎng)絡(luò )數據庫應用教程》 林志英 人民郵電出版社
《JAVA編程從基礎到實(shí)踐》 沈煒、楊世錫 電子工業(yè)出版社
【ASP交友系統設計(一)】相關(guān)文章:
基于A(yíng)SP的網(wǎng)絡(luò )辦公系統設計與實(shí)現ASP+SQL03-08
ASP人才招聘系統(一)03-07
在線(xiàn)考試系統的設計ASP+ACCESS03-08
基于A(yíng)SP的網(wǎng)絡(luò )考試系統的設計與實(shí)現03-07
基于A(yíng)SP的在線(xiàn)商品銷(xiāo)售系統的設計與實(shí)現ASP+SQL03-08
基于A(yíng)SP.NET在線(xiàn)考試系統設計ASP.NET+SQL03-08