久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

免費(fèi)網(wǎng)上戰(zhàn)友錄的設(shè)計(jì)與實(shí)現(xiàn)(一)

時(shí)間:2024-10-08 15:27:46 計(jì)算機(jī)畢業(yè)論文 我要投稿
  • 相關(guān)推薦

免費(fèi)網(wǎng)上戰(zhàn)友錄的設(shè)計(jì)與實(shí)現(xiàn)(一)

摘要
 戰(zhàn)友錄系統(tǒng)是一個(gè)與通訊系統(tǒng),通過使用網(wǎng)上戰(zhàn)友錄,他們可以和多年的戰(zhàn)友通過留言平臺(tái)來(lái)交流,就好比現(xiàn)在很流行的QQ或MSN等通訊系統(tǒng)。通過使用網(wǎng)上戰(zhàn)友錄,戰(zhàn)友們可以很方便的進(jìn)行彼此交流。
 本文介紹了網(wǎng)上戰(zhàn)友錄的設(shè)計(jì)與實(shí)現(xiàn)。整個(gè)系統(tǒng)分為三大模塊:用戶模塊,管理員模塊,和注冊(cè)模塊。主要實(shí)現(xiàn)用戶對(duì)資料的查看,修改,用戶上傳照片,戰(zhàn)友查詢及留言,創(chuàng)建部隊(duì)和加入部隊(duì)、戰(zhàn)友社區(qū)。管理員對(duì)用戶的資料查看,添加刪除用戶,部隊(duì)管理,查看和回復(fù)申請(qǐng),戰(zhàn)友留言管理及嘉賓留言管理功能。
 在技術(shù)上,該系統(tǒng)選擇了三層的網(wǎng)絡(luò)體系結(jié)構(gòu)。客戶端技術(shù)綜合采用HTML、VBScript等技術(shù)提供用戶界面;應(yīng)用服務(wù)器端使用IIS,并采用ASP動(dòng)態(tài)網(wǎng)頁(yè)編程技術(shù)實(shí)現(xiàn)業(yè)務(wù)邏輯;數(shù)據(jù)庫(kù)服務(wù)器采用SQL Server 2000關(guān)系數(shù)據(jù)庫(kù)。應(yīng)用服務(wù)器利用ADO技術(shù)與數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行透明的數(shù)據(jù)傳輸。
 
 關(guān)鍵字:戰(zhàn)友錄;數(shù)據(jù)庫(kù);圖片上傳;留言; asp


 
目  錄
論文總頁(yè)數(shù):24頁(yè)
1 引言 1
1.1 開發(fā)背景及現(xiàn)狀 1
1.2 系統(tǒng)設(shè)計(jì)方法 1
1.3 ASP簡(jiǎn)述 1
1.4 VBScript簡(jiǎn)介 2
1.5 開發(fā)工具dreamweaver簡(jiǎn)介 2
2 系統(tǒng)需求分析 2
2.1 系統(tǒng)初步調(diào)查 2
2.2 可行性分析 3
2.3 技術(shù)可行性 3
3 系統(tǒng)總體設(shè)計(jì) 3
3.1 系統(tǒng)流程分析 3
3.2 數(shù)據(jù)流圖 4
3.3 系統(tǒng)功能模塊設(shè)計(jì) 5
3.4 系統(tǒng)功能模塊圖 5
3.5 功能模塊具體分析 6
3.5.1 用戶模塊具體分析 6
3.5.2 管理員模塊分析 7
4 戰(zhàn)友錄系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)與邏輯實(shí)現(xiàn) 7
4.1 數(shù)據(jù)庫(kù)簡(jiǎn)介 7
4.2 系統(tǒng)E-R圖 8
4.3 數(shù)據(jù)庫(kù)的表結(jié)構(gòu)設(shè)計(jì) 8
5 戰(zhàn)友錄系統(tǒng)的實(shí)現(xiàn) 10
5.1 數(shù)據(jù)庫(kù)的連接 10
5.1.1 設(shè)置數(shù)據(jù)庫(kù)的身份驗(yàn)證模式 10
5.1.2 設(shè)置數(shù)據(jù)源 11
5.1.3 編寫代碼 11
5.2 普通用戶模塊 11
5.2.1 用戶登陸模塊 11
5.2.2 創(chuàng)建部隊(duì) 13
5.2.3 用戶更新 13
5.2.4 戰(zhàn)友社區(qū) 14
5.2.5 加入部隊(duì) 15
5.2.6 戰(zhàn)友留言 15
5.2.7 上傳圖片 17
5.3 管理員模塊 18
5.3.1 查看用戶資料 18
5.3.2 刪除用戶 19
5.3.3 部隊(duì)管理 20
5.3.4 留言薄管理 20
6 難點(diǎn)及解決方法 21
6.1 圖片上傳功能的實(shí)現(xiàn) 21
6.2 代碼中要實(shí)現(xiàn)的方法 21
結(jié)   論 21
參考文獻(xiàn) 22
致    謝 23
聲    明 24

引言
  開發(fā)背景及現(xiàn)狀
 當(dāng)代社會(huì),隨著社會(huì)、科技、文化和經(jīng)濟(jì)的發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和通信技術(shù)的發(fā)展,人們隨時(shí)隨地,都可以知道遠(yuǎn)在千里的信息。但是,現(xiàn)在許多退役后的戰(zhàn)友都失去了聯(lián)系,如果遠(yuǎn)在千里之外的戰(zhàn)友想找到對(duì)方的聯(lián)系方式,則很困難。因此在這種狀況下,提供一種網(wǎng)絡(luò)管理系統(tǒng)讓戰(zhàn)友們都有一個(gè)統(tǒng)一的交流平臺(tái)。
 系統(tǒng)設(shè)計(jì)方法
 系統(tǒng)采用的是B/S模式開發(fā),界面簡(jiǎn)單實(shí)用,沒有冗余頁(yè)面。此系統(tǒng)既可以在網(wǎng)站上用,也可以在局域網(wǎng)上使用。
 本系統(tǒng)用的是ASP+VBScript +SQL 和少量的語(yǔ)句就用 java script來(lái)開發(fā),采用的服務(wù)器是IIS。系統(tǒng)有非常簡(jiǎn)潔的界面,給用戶帶來(lái)了方便。這樣用戶就可以更加方便的人性化的交流。
 ASP簡(jiǎn)述
 ASP是Active Server Page的縮寫,意為“活動(dòng)服務(wù)器網(wǎng)頁(yè)”。ASP是微軟公司開發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫(kù)和其它程序進(jìn)行交互,是一種簡(jiǎn)單、方便的編程工具。ASP的網(wǎng)頁(yè)文件的格式是.asp,現(xiàn)在常用于各種動(dòng)態(tài)網(wǎng)站中。 ASP是一種服務(wù)器端腳本編寫環(huán)境,可以用來(lái)創(chuàng)建和運(yùn)行動(dòng)態(tài)網(wǎng)頁(yè)或web應(yīng)用程序。ASP網(wǎng)頁(yè)可以包含HTML標(biāo)記、普通文本、腳本命令以及COM組件等。利用ASP可以向網(wǎng)頁(yè)中添加交互式內(nèi)容(如在線表單),也可以創(chuàng)建使用HTML網(wǎng)頁(yè)作為用戶界面的web應(yīng)用程序。 與HTML相比,ASP網(wǎng)頁(yè)具有以下特點(diǎn):
 (1)利用ASP可以實(shí)現(xiàn)突破靜態(tài)網(wǎng)頁(yè)的一些功能限制,實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)技;
 (2)ASP文件是包含在HTML代碼所組成的文件中的,易于修改和測(cè)試;
 (3)服務(wù)器上的ASP解釋程序會(huì)在服務(wù)器端制定ASP程序,并將結(jié)果以HTML格式傳送到客戶端瀏覽器上,因此使用各種瀏覽器都可以正常瀏覽ASP所產(chǎn)生的網(wǎng)頁(yè);
 (4)ASP提供了一些內(nèi)置對(duì)象,使用這些對(duì)象可以使服務(wù)器端腳本功能更強(qiáng)。例如可以從web瀏覽器中獲取用戶通過HTML表單提交的信息,并在腳本中對(duì)這些信息進(jìn)行處理,然后向web瀏覽器發(fā)送信息;
 (5)ASP可以使用服務(wù)器端ActiveX組件來(lái)執(zhí)行各種各樣的任務(wù),例如存取數(shù)據(jù)庫(kù)、發(fā)Email或訪問文件系統(tǒng)等;
 (6)由于服務(wù)器是將ASP程序執(zhí)行的結(jié)果以HTML格式傳回客戶端瀏覽器,因此使用者不會(huì)看到ASP所編寫的原始程序代碼,可防止ASP程序代碼被竊取。
 ASP有幾大內(nèi)置對(duì)象:
 Response對(duì)象:向?yàn)g覽器端傳送數(shù)據(jù),Request對(duì)象:服務(wù)器讀取瀏覽器端數(shù)據(jù),Server對(duì)象:提供了服務(wù)器端的最基本的屬性及方法Session和Application對(duì)象記錄瀏覽器端變量。
  VBScript簡(jiǎn)介
 VBScript是Visual Basic Script的簡(jiǎn)稱,即 Visual Basic 描述語(yǔ)言,有時(shí)也被縮寫為VBS。VBScript是微軟開發(fā)的一種腳本語(yǔ)言,可以看作是VB語(yǔ)言的簡(jiǎn)化版,與VBA的關(guān)系也非常密切。它具有原語(yǔ)言容易學(xué)習(xí)的特性。目前這種語(yǔ)言廣

泛應(yīng)用于網(wǎng)頁(yè)和ASP程序制作,同時(shí)還可以直接作為一個(gè)可執(zhí)行程序。用于調(diào)試簡(jiǎn)單的VB語(yǔ)句非常方便。
  開發(fā)工具dreamweaver簡(jiǎn)介
  對(duì)于一般的動(dòng)態(tài)網(wǎng)頁(yè)我們將用Macromedia公司的Dreamweaver網(wǎng)頁(yè)開發(fā)軟件。Dreamweaver MX主要負(fù)責(zé)網(wǎng)頁(yè)的版式設(shè)計(jì),網(wǎng)頁(yè)編輯制作。它是一套“所見所得”的網(wǎng)頁(yè)制作編輯軟件。它提供了文字的設(shè)置、圖像編輯、表格制作、布局定位、層與動(dòng)畫、表單對(duì)象、框架結(jié)構(gòu)等用途。
 這里我用到層、表單、表格和框架來(lái)讓我們的界面更加友好、華麗及讓我們的用戶一目了然我們要實(shí)現(xiàn)什么功能。比如系統(tǒng)中就用到框架這一功能,它就讓我們的操作更加方便,讓我們對(duì)系統(tǒng)要實(shí)現(xiàn)的功能一目了然。用Dreamweaver來(lái)對(duì)我們寫的程序進(jìn)行調(diào)試也是一個(gè)很好的選擇。文字的設(shè)置 :在制作前臺(tái)網(wǎng)頁(yè)的時(shí)候就可以發(fā)揮它的特定的功能,讓設(shè)計(jì)人員可以更好的發(fā)揮自己的設(shè)計(jì)靈感,不必要寫很多程序代碼。表單:表單的設(shè)計(jì)就可以讓設(shè)計(jì)人員更直觀的操作界面。表格:表格是整個(gè)網(wǎng)頁(yè)設(shè)計(jì)中的核心網(wǎng)頁(yè)中的位置概念是通過字節(jié)來(lái)定位,圖片文本等元素的位置為了可以以像素的方式控制,就只有通過表格和層來(lái)實(shí)現(xiàn)。
系統(tǒng)需求分析
  系統(tǒng)初步調(diào)查
 在整個(gè)系統(tǒng)的分析階段我們認(rèn)真調(diào)查了現(xiàn)在用戶對(duì)戰(zhàn)友錄的各種要求,經(jīng)過認(rèn)真的整理我們收集到了相應(yīng)的業(yè)務(wù)流程。具體如下:
 (1)戰(zhàn)友錄提供給用戶的基本服務(wù)
 (2)每項(xiàng)功能應(yīng)具有的流程
 (3)用戶可以查看和修改自己的資料
 (4)用戶可以創(chuàng)建和加入部隊(duì)
 (5)用戶可以在社區(qū)里發(fā)表帖子
 (6)用戶可以在系統(tǒng)進(jìn)行留言
 (7)用戶可以上傳自己的圖片
 (8)系統(tǒng)管理員所具有的功能
 可行性分析
 在明確系統(tǒng)目標(biāo)和環(huán)境的基礎(chǔ)上,需要進(jìn)一步對(duì)系統(tǒng)的可行性進(jìn)行研究。此活動(dòng)的主要目標(biāo)是進(jìn)一步明確系統(tǒng)的目標(biāo)、規(guī)模與功能,對(duì)系統(tǒng)開發(fā)背景、必要性和意義進(jìn)行調(diào)查分析并根據(jù)需要和可能提出擬開發(fā)系統(tǒng)的初步方案與計(jì)劃?尚行匝芯渴轻槍(duì)系統(tǒng)進(jìn)行全面、概要的分析。
 技術(shù)可行性
 從用戶應(yīng)用角度來(lái)看,可把應(yīng)用程序系統(tǒng)的組成部分分成數(shù)據(jù)存儲(chǔ)層(DAO)、業(yè)務(wù)處理層(SERVICE)和界面表示層(WEB)3個(gè)層次,而應(yīng)用程序結(jié)構(gòu)可歸納為:集中式應(yīng)用程序結(jié)構(gòu)、單用戶應(yīng)用程序結(jié)構(gòu)、多層服務(wù)器應(yīng)用程序結(jié)構(gòu)、瀏覽器/服務(wù)器應(yīng)用程序結(jié)構(gòu)、客戶機(jī)/服務(wù)器應(yīng)用程序結(jié)構(gòu)等5種類型。
 戰(zhàn)友錄系統(tǒng)就采用的是瀏覽器/服務(wù)器應(yīng)用程序結(jié)構(gòu)(即B/S結(jié)構(gòu))。此時(shí),瀏覽器發(fā)出請(qǐng)求(request),服務(wù)器對(duì)瀏覽器的請(qǐng)求做出回應(yīng)(response)。通過對(duì)服務(wù)功能的分布實(shí)現(xiàn)了分工服務(wù)。這樣使整個(gè)系統(tǒng)具有較好的性能并且使瀏覽器端能夠快速的運(yùn)行和顯示,而服務(wù)器可以并行地處理瀏覽器端發(fā)送的請(qǐng)求降低了瀏覽器的負(fù)荷。
系統(tǒng)總體設(shè)計(jì)
 數(shù)據(jù)流圖
 數(shù)據(jù)流圖DFD(Data Flow Diagram)是用于分析系統(tǒng)數(shù)據(jù)流程的圖形,意在讓用戶理解系統(tǒng)的功能、輸入、輸出和數(shù)據(jù)存儲(chǔ)等。DFD是組織中信息運(yùn)動(dòng)的抽象,是管理信息系統(tǒng)邏輯模型的主要形式。它是采用自頂向下逐層擴(kuò)展的方法,從邏輯上精確地描述系統(tǒng)具有的數(shù)據(jù)加工、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)輸入、輸出及數(shù)據(jù)來(lái)源和去向等功能。這個(gè)模型不涉及硬件、軟件、數(shù)據(jù)結(jié)構(gòu)與文件組織,它與對(duì)系統(tǒng)的物理描述無(wú)關(guān),所描述的內(nèi)容是面向用戶的,是系統(tǒng)設(shè)計(jì)的主要依據(jù)之一。

 

 

 

 

 

 

 

 


  
 
 
 
 
 
圖3-1系統(tǒng)數(shù)據(jù)流程圖
 圖3-1展示了整個(gè)系統(tǒng)的數(shù)據(jù)流圖,展示了登陸資料的數(shù)據(jù)流存取和留言資料數(shù)據(jù)流向。通過數(shù)據(jù)流圖可以清楚的了解到整個(gè)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。
  系統(tǒng)功能模塊設(shè)計(jì)
 從系統(tǒng)目標(biāo)的內(nèi)容可以看出,系統(tǒng)有以下幾個(gè)模塊。用戶級(jí)別分為普通用戶和管理員用戶,用戶可以注冊(cè)帳號(hào)、留言、還可以進(jìn)行戰(zhàn)友查詢。普通用戶可以實(shí)現(xiàn)以下功能:查看個(gè)人資料、修改個(gè)人資料、上傳圖片、留言、創(chuàng)建部隊(duì)和加入部隊(duì)、戰(zhàn)友社區(qū)。管理員擁有下列功能:查看用戶資料、查看和回復(fù)申請(qǐng)、用戶刪除、添加用戶、部隊(duì)管理、和留言薄管理。
 注冊(cè)模塊、個(gè)人資料查看、戰(zhàn)友查詢和修改個(gè)人資料模塊這三個(gè)功能模塊的算法都差不多。主要步驟有2步:
 (1) 在表單頁(yè)面提示用戶輸入數(shù)據(jù)
 (2) 在處理頁(yè)面獲取用戶的輸入數(shù)據(jù),按照用戶的要求對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作
 系統(tǒng)功能模塊圖
                  
圖3-2前臺(tái)模塊圖
 功能模塊具體分析
 用戶模塊具體分析
 說明:只有用戶成功注冊(cè)后方可登陸系統(tǒng)進(jìn)行用戶權(quán)限內(nèi)的操作。在前臺(tái)功能模塊中,主要包括了:
查看個(gè)人資料模塊:用戶注冊(cè)后可以查看自己的資料。(個(gè)人資料管理)
修改個(gè)人資料模塊:用戶如果想修改自己密碼之類的可以在這里進(jìn)行修改。(個(gè)人資料管理)
創(chuàng)建部隊(duì):用戶可以創(chuàng)建一個(gè)部隊(duì)以便其他戰(zhàn)友加入。
加入部隊(duì):用戶在向管理員提出申請(qǐng)后,經(jīng)管理員同意就可加入部隊(duì)。
戰(zhàn)友查詢:用戶可以通過戰(zhàn)友名字和所在部隊(duì)兩個(gè)字段進(jìn)行查詢。
戰(zhàn)友留言:用戶可以在此發(fā)表自己的意見,和其他戰(zhàn)友進(jìn)行交流。
上傳圖片:用戶可以把自己的照片上傳到數(shù)據(jù)庫(kù)中,并顯示出來(lái)。
戰(zhàn)友社區(qū):戰(zhàn)友可以在社區(qū)里發(fā)表帖子,還可以對(duì)帖子進(jìn)行回復(fù)。

 管理員模塊分析
 說明:只有具有管理員權(quán)限的管理員在登陸系統(tǒng)后才能對(duì)系統(tǒng)的各個(gè)模塊信息進(jìn)行管理。后臺(tái)功能模塊包括了:
 查看用戶資料:管理員輸入部隊(duì)名稱后可以查看該部隊(duì)所有成員的信息。
 用戶添加:管理員可以添加任意用戶。(用戶管理)
 用戶刪除:如果某個(gè)用戶已經(jīng)沒有權(quán)限登陸系統(tǒng),管理員就可以把他從登陸表中刪除。(用戶管理)
 查看申請(qǐng):用戶提出加入部隊(duì)申請(qǐng)后,管理員經(jīng)過審核后,可以批準(zhǔn)用戶加入該部隊(duì)。
 部隊(duì)管理:管理員可以對(duì)那些很久沒有成員加入的部隊(duì)進(jìn)行刪除。
 留言管理:管理員可以對(duì)那些不良留言或過時(shí)留言進(jìn)行刪除。
戰(zhàn)友錄系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)與邏輯實(shí)現(xiàn)
  數(shù)據(jù)庫(kù)簡(jiǎn)介
 Microsoft SQL server 2000是目前使用最為廣泛的數(shù)據(jù)庫(kù),它與Windows網(wǎng)絡(luò)操作系統(tǒng)的無(wú)縫繼承,智能化的內(nèi)容管理,強(qiáng)大的功能,使它得到大量用戶的喜愛。DBS功能有:
 (1) DBMS提供數(shù)據(jù)定義語(yǔ)言(Data Definition Language,DDL),用戶通過它可以方便地對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象進(jìn)行定義。
 (2) DBMS提供數(shù)據(jù)操縱語(yǔ)言(Data Manipulation Language, DML),用戶可以使用DML操縱數(shù)據(jù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的基本操作如查詢、插入、刪除和修改。
 數(shù)據(jù)庫(kù)在建立、運(yùn)用和維護(hù)時(shí)由數(shù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制,以保證數(shù)據(jù)的安全性、完整性、多用戶對(duì)數(shù)據(jù)的開發(fā)使用已經(jīng)發(fā)生故障后的系統(tǒng)恢復(fù)。
 數(shù)據(jù)庫(kù)的建立和維護(hù)功能 。它包括數(shù)據(jù)庫(kù)初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能,數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)、恢復(fù)功能,數(shù)據(jù)庫(kù)的重組織、重構(gòu)造功能和性能分析、監(jiān)視功能等等.這些功能常常由一些使用程序完成的。
 SQL語(yǔ)言是一種非過程化語(yǔ)言,它一次處理一個(gè)記錄集合,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL語(yǔ)言不要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對(duì)指定數(shù)據(jù)存取的最快速手段。當(dāng)設(shè)計(jì)者在關(guān)系表上定義了索引時(shí),系統(tǒng)會(huì)自動(dòng)利用索引進(jìn)行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等細(xì)節(jié)。SQL語(yǔ)言功能如下:
   (1) 查詢數(shù)據(jù)
   (2) 在數(shù)據(jù)庫(kù)表格中插入、修改和刪除記錄
   (3) 建立、修改和刪除數(shù)據(jù)對(duì)象
   (4) 控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取
   (5) 確保數(shù)據(jù)庫(kù)的一致性和完整性等
 系統(tǒng)E-R圖
 用戶實(shí)體可以發(fā)表多個(gè)帖子是1對(duì)N的關(guān)系,同樣一個(gè)用戶可以發(fā)表幾條留言,具體細(xì)節(jié)可參看系統(tǒng)E-R圖。

                             圖4-1系統(tǒng)E-R
  數(shù)據(jù)庫(kù)的表結(jié)構(gòu)設(shè)計(jì)
 普通用戶登錄表“denglu”結(jié)構(gòu)如表4-1所示:
 表4-1登錄表“denglu”
字段名 字段類型 字段是否為空 長(zhǎng)度 
username varchar 否 10 
userid varchar 否 16 
zhenjianid varchar 否 10 
 管理員登錄表“guanliyuan”結(jié)構(gòu)如表4-2:
 表4-2管理員情況表
字段名 字段類型 字段是否為空 長(zhǎng)度 
mima varchar 否 16 
name varchar 否 10 
 由于管理員的權(quán)限比較大,所以管理員的個(gè)數(shù)應(yīng)該比較少。而且也只需要這兩個(gè)屬性。
 作為用戶可以在系統(tǒng)上創(chuàng)建部隊(duì) ,并且用戶可以通過該表向管理員申請(qǐng)加入該部隊(duì)表結(jié)構(gòu)為表4-3:
表4-3部隊(duì)表
字段名 字段類型 字段是否為空 長(zhǎng)度 
name varchar 否 10 
nid int 否 10 
id  int 否 10 
luoji  varchar 否 2 
shenqing  varchar 否 50 
 當(dāng)用戶登錄系統(tǒng)后就可以查看自己的資料,修改資料。所以我們還要?jiǎng)?chuàng)建一個(gè)資料表來(lái)存放更為齊全的資料結(jié)構(gòu)為表4-4所示:
 表4-4資料表
字段名 字段類型 字段是否為空 長(zhǎng)度 
name varchar 否 10 
mima varchar 否 16 
sex varchar 否 2 
zhenjianid varchar 否 10 
mail varchar 否 20 
dianhua varchar 否 10 
 由于我們要用到留言功能,所以我們還要?jiǎng)?chuàng)建一個(gè)戰(zhàn)友留言表和一個(gè)嘉賓留言表來(lái)分別存儲(chǔ)戰(zhàn)友留言和嘉賓留言以便我們?cè)谙到y(tǒng)中顯示我們的留言。戰(zhàn)友留言表如表4-5所示:
表4-5戰(zhàn)友留言表
字段名 字段類型 字段是否為空 長(zhǎng)度 
name varchar 否 10 
zhuti varchar 否 20 
shijian datetime 否 8 
neirong varchar 否 50 
 在這里我們是用表把用戶的名字,主題,時(shí)間,和留言的內(nèi)容放在了表中,并且把時(shí)間和內(nèi)容的類型分別設(shè)為datatime 和text 類型。
 為了把上傳的圖片用數(shù)據(jù)庫(kù)中我們就創(chuàng)建一個(gè)表來(lái)存儲(chǔ)圖片,結(jié)構(gòu)如表4-6所示。
表4-6圖片表結(jié)構(gòu)
字段名 字段類型 字段是否為空 長(zhǎng)度 
id int 否 10 
pic image 否 50 
name varchar 否 20 
 為了記錄論壇中的帖子還需要建立個(gè)tiezi表結(jié)構(gòu)如表4-7所示。
表4-7帖子表結(jié)構(gòu)
字段名 字段類型 字段是否為空 長(zhǎng)度 
id int 否 4 
zuozhe varchar 否 10 
neirong varchar 否 50 
zhuti varchar 是 20 
shijian datetime 是 8 
 tiezihuifu表:記錄用戶對(duì)論壇帖子回復(fù)的文章如表4-8所示。
表4-8tiezihuifu表結(jié)構(gòu)
字段名 字段類型 字段是否為空 長(zhǎng)度 
id int 否 4 
rid int 否 4 
zuozhe varchar 否 10 
neirong varchar 否 50 
zhuti varchar 是 20 
shijian datetime 是 8 
戰(zhàn)友錄系統(tǒng)的實(shí)現(xiàn)
 數(shù)據(jù)庫(kù)的連接
 設(shè)置數(shù)據(jù)庫(kù)的身份驗(yàn)證模式
 步驟為;打開sql企業(yè)管理器→右鍵單擊控制臺(tái)→選擇屬性→單擊安全性→選擇sql身份驗(yàn)證;另外還要新建一個(gè)登陸用戶,這里直接用的系統(tǒng)帳號(hào)sa。
 
 設(shè)置數(shù)據(jù)源
 打開控制面板→選擇管理工具→打開選擇數(shù)據(jù)源→選擇系統(tǒng)dsn→點(diǎn)擊添加→選擇server sql→設(shè)置數(shù)據(jù)源名(這里是dd)和設(shè)置服務(wù)器為(local) →在下一步中→選擇使用用戶輸入登陸ID和密碼的 SQL身份驗(yàn)證在下面輸入登陸ID和密碼→在下一步中選擇更改默認(rèn)數(shù)據(jù)庫(kù),選擇你要連接的數(shù)據(jù)庫(kù)(dd)→最后單擊完成。你可以單擊測(cè)試,如果顯示測(cè)試成功,表明你已經(jīng)建好了數(shù)據(jù)源,否則表示你在建的過程中設(shè)置錯(cuò)了值。
 
 編寫代碼
 這一步主要是在需要使用數(shù)據(jù)庫(kù)的頁(yè)面在程序頭部編寫連接代碼,具體代碼如下:
 <%set conn=server.createobject("adodb.connection")
            conn.open "dsn=dd;uid=sa;pwd=sa"%>
  普通用戶模塊
 用戶登陸模塊
 當(dāng)我們點(diǎn)擊“用戶登錄”并輸入你的登錄信息如圖5-1所示

圖5-1用戶登陸界面
 點(diǎn)擊提交后 后臺(tái)將進(jìn)入驗(yàn)證登錄信息的“yanzhen.asp”程序進(jìn)行驗(yàn)證主要代碼:
<% userid=request("mima")
username=request("name")
zhenjianid=request("zenjianid")
session("zenjianid")=request("zenjianid")
set con=server.createobject("adodb.connection")
 con.open "dsn=dd;uid=aa;pwd=aa"rs="select * from denglu where username='"&username&"'and userid='"&userid&"'and zhenjianid='"&zhenjianid&"'"
set s=con.execute(rs)
if s.eof then
response.write" 對(duì)不起! 用戶名 或 密碼錯(cuò)誤 或者  你沒有登錄權(quán)限! 若你還沒有注冊(cè)請(qǐng)先注冊(cè)!"
elseif  username=""or userid=""or zhenjianid="" then
response.write"對(duì)不起!   你還沒有輸入你的資料"
else
response.redirect"all.htm"
end if    %>
 這里用到了 ASP的request對(duì)象和response對(duì)象,VBSCRIPT的條件語(yǔ)句。當(dāng)輸入的資料在表“denglu”中存在就驗(yàn)證成功導(dǎo)向all.html 網(wǎng)頁(yè)。進(jìn)入到此界面我們就可以看到作為一個(gè)普通用戶有哪些權(quán)限。首先我們?cè)谄胀ㄓ脩糁锌梢圆榭磦(gè)人資料如圖5-2

圖5-2資料查看界面
 在圖4-2中就可以看到顯示的信息與我們剛剛輸入的信息是一致的。
 因?yàn)樵谏厦骝?yàn)證資料的時(shí)候我們用到session對(duì)象,比如“session("zenjianid")” 在這里我們就不用request對(duì)象來(lái)接收獲取。我們就可以直接用session繼承下來(lái)的值做變量來(lái)查詢。主要代碼如下:
<%s="select * from "&denglu&" where zhenjianid='"&session("zenjianid")&"'"
set rs=con.execute(s) %>
         <td><%=rs("banji")%>&nbsp;</td>

 創(chuàng)建部隊(duì)
 當(dāng)用戶登陸進(jìn)去后可以創(chuàng)建一個(gè)部隊(duì),當(dāng)你輸入所在部隊(duì)的名稱就可以創(chuàng)建一個(gè)部隊(duì)并且可以讓其他用戶加入:

圖5-3創(chuàng)建部隊(duì)
 點(diǎn)擊“創(chuàng)建”后就會(huì)顯示成功。在這里創(chuàng)建一個(gè)部隊(duì)是一個(gè)表的形式存在
 因此必須在數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)表創(chuàng)建表的SQL代碼是:
set objj=con.Execute("create table "&bname&"(id char(10),name char(10) ,email varchar(50),dianhua varchar(50),time varchar(50))")
 set objs=con.execute("insert into banji values('"&bname&"','"&id&"','0','')")
 
    用戶更新
 點(diǎn)擊修改個(gè)人資料,可以修改自己的注冊(cè)信息注冊(cè)成功后如下圖:

圖5-4更新界面
 你就會(huì)看到顯示的信息跟你剛才輸入的信息完全一致說明修改成功。在這里我們是對(duì)數(shù)據(jù)庫(kù)中的兩張表進(jìn)行了更新。即“denglu”表和資料表。這樣我們就既完成了對(duì)自己登錄系統(tǒng)的資料做了修改 ,也對(duì)存儲(chǔ)的個(gè)人信息做了修改。主要部分代碼如下:
<% dname=request("dengluming")
   sex=request("sex")
   email=request("email")
  ----連接到數(shù)據(jù)庫(kù)后就對(duì)所涉及的表做更新操作--------
  set obj=con.execute("update denglu set username='"&dname&"',userid='"&password&"',zhenjianid='"&zjid&"'where zhenjianid='"&session("zenjianid")&"'") set obj=con.execute("update ziliao set name='"&xingming&"',mima='"&password&"',sex='"&sex&"',zhenjianid='"&zjid&"',email='"&email&"',dianhua='"&dianhua&"'where zhenjianid='"&session("zenjianid")&"'")
 顯示更新部分代碼和上面類似。
 
 戰(zhàn)友社區(qū)
 論壇模塊重點(diǎn)主要是顯示頁(yè)面的實(shí)現(xiàn)如圖5-5:

圖5-5戰(zhàn)友社區(qū)圖
 可以看到顯示的重點(diǎn)將帖子和回復(fù)的帖子顯示在一起,這里實(shí)現(xiàn)的方式,主要是將帖子和回復(fù)的帖子分別存在tiezi和tiezihuifu表中,其中tiezi表有一個(gè)字段id對(duì)應(yīng)tiezihuifu表中的字段rid。這樣,就可以先顯示tiezi里的帖子,然后再顯示tiezihuifu里rid字段與顯示的帖子的id 字段相同的回復(fù)帖子就可以了。具體代碼如下:
<% id=Request("id") %>
<%
dim rs
dim sql
set rs = server.createobject("adodb.recordset")
sql = "select*from teizihuifu where rid="&id&" order by shijian desc"
rs.Open sql,conn,1
rs.pagesize=2
a=cint(request.querystring("a"))
if a=0 then
a=1
else
rs.absolutepage=a
end if%>
 第一行就是獲取原帖的id號(hào),然后定義SQL語(yǔ)句sql = "select*from tiezihuifu where rid="&id&" order by shijian desc"是就是查找滿足rid=id的記錄。

 加入部隊(duì)
 當(dāng)你想加入某個(gè)部隊(duì)時(shí),先向管理員填好申請(qǐng)并且點(diǎn)擊申請(qǐng)如圖:

圖5-6加入部隊(duì)界面

 戰(zhàn)友留言
 在這里我們還采用了分頁(yè)顯示的方式顯示,和頁(yè)面在規(guī)定的時(shí)間內(nèi)自動(dòng)刷新。這樣的好處就是讓用戶在第一時(shí)間看到在線的用戶的留言,以方便互相討論。而且還設(shè)置了作者名字和主題的長(zhǎng)度。還有就是讓程序自動(dòng)獲取系統(tǒng)的時(shí)間,用的是vbscript 的now()函數(shù)。點(diǎn)擊上傳后就會(huì)看到留言如圖5-7所示

圖5-7留言界面
顯示留言部分主要代碼為:
<meta http-equiv="refresh" content="10";url=xianshiliuyan.asp>
<%  *------省略連接數(shù)據(jù)庫(kù)代碼
set rs=server.createobject("adodb.recordset")
 rs.open"select * from liuyan ORDER BY shijian desc ",con,3
 rs.pagesize=5 (設(shè)置每頁(yè)顯示行數(shù))
     a=cint(request.querystring("a"))
     if a=0 then   a=1
else  rs.absolutepage=a   %>   <%end if  %>
<tr><td><a href="xianshiliuyan.asp? a=1 ">第一頁(yè)</a> </div></td>
<%If a> 1 Then %>
   <a href="xianshiliuyan.asp?a=<%=a-1%> ">上一頁(yè)</a> </div>
  <% end if%>
<%If a <rs.PageCount Then %>
<A HREF="xianshiliuyan.asp?a=<%=a+1%>">下一頁(yè)</A>
<%End If %>
---顯示表頭部分與前面的一樣---------略 
<%  For a =1 To rs.Pagesize %>  (循環(huán)顯示內(nèi)容條件)
*----------顯示內(nèi)容與前面的一樣 ---------略------------
  這里的第一行代碼就是自動(dòng)刷新網(wǎng)頁(yè)功能的代碼。中間部分就是要實(shí)現(xiàn)分頁(yè)顯示功能的代碼。Pagesize是確定每頁(yè)要顯示的行數(shù)  cint()是把字符變?yōu)閿?shù)字,absolutepage為當(dāng)前頁(yè)P(yáng)ageCount為分頁(yè)總數(shù)。For……next就是循環(huán)顯示數(shù)據(jù)。
 
 上傳圖片
下面我們把圖片上傳到數(shù)據(jù)庫(kù)并顯示出來(lái),如圖5-8所示

圖5-8上傳圖片界面
主要代碼為:<%*-----------設(shè)置數(shù)據(jù)庫(kù)鏈接后
<%  Set obj = Server.CreateObject("LyfUpload.UploadFile")(創(chuàng)建圖片上傳外掛對(duì)象)
obj.extname="gif"
rs.AddNew
rs("pic").AppendChunk obj.DBContent (用AppendChunk方法對(duì)pic字段賦值)
rs.Update
rs.movelast
session("ID")=rs("ID")
*---關(guān)閉連接--------略--
<a href="pictest.asp?ID=<%=session("ID")%>">點(diǎn)擊此處查看上傳后數(shù)據(jù)庫(kù)中的GIF文件!</a>
<pictest.asp>
<%*------------'設(shè)置數(shù)據(jù)庫(kù)鏈接省略
contentType = contentType
nFieldSize = field.ActualSize
bytes = field.GetChunk(nFieldSize) (獲取圖片數(shù)據(jù))
Session("Bytes") = bytes
Session("Type") = contentType
set rs=server.CreateObject("adodb.recordset")
rs.Open "SELECT * FROM product",con,2,2
 SetForDisplay rs("pic"), "image/gif" '"image/gif" 為MIME類型 %>
<img src="theImg.asp">
<%response.write(Session("Type"))%>
<-theimg.asp->
<%response.Expires = 0
  response.Buffer  = True
  response.Clear
  response.contentType = Session("Type")
  response.BinaryWrite Session("Bytes") (獲取圖片并顯示出來(lái))
  Session("Type") = ""
  Session("Bytes") = ""
  response.End  %>
 管理員模塊
 同普通用戶一樣在這里我門首先將進(jìn)行身份驗(yàn)證。這樣它就到guanliyuan表中去查詢?nèi)粲信c輸入的資料匹配就成功進(jìn)入界面這里我們將用到了request對(duì)象和session對(duì)象和response對(duì)象及其方法response.write()及respense.redirect()方法vbscript的條件語(yǔ)句和sql的select語(yǔ)句。

圖5-9管理員界面

 查看用戶資料
 作為管理員有權(quán)限對(duì)用戶資料進(jìn)行查看,以便管理。當(dāng)輸入某個(gè)部隊(duì)的名字提交后就可以看到這個(gè)部隊(duì)所有戰(zhàn)友資料。如:輸入海軍就可以看到如圖5-10所示的結(jié)果:

圖5-10查看用戶資料

 刪除用戶
 當(dāng)然作為管理員也得有刪除用戶的權(quán)限。如某些用戶的 登錄權(quán)限過期,管理員就的得刪除他們的一切資料。如圖5-11所示

圖5-11刪除用戶界面
 當(dāng)我們以證件號(hào)和所在部隊(duì)為關(guān)鍵字來(lái)刪除資料。這里也要涉及到denglu 表和海軍表。按“刪除”后我們就可以從表中看到 我們剛剛輸入的資料所在的行就被刪除了。這樣就達(dá)到了控制使用系統(tǒng)的權(quán)限的功能。
 主要程序?yàn)椋?br /> <% zjid=request("zhenjianid")
banji=request("banji")
 *---- 省略連接到數(shù)據(jù)庫(kù)*--------
*----刪除部分代碼為:
set objs=con.execute("delete from denglu where zhenjianid='"&zjid&"'")
 set obj=con.execute("delete from "&banji&" where zhenjianid='"&zjid&"'")
  %>  這里我們也做了判斷若denglu表中沒有這資料是要報(bào)錯(cuò)的。
 
 部隊(duì)管理
 若某個(gè)部隊(duì)已經(jīng)不存在管理員就得刪除其部隊(duì)表,界面如圖5-12所示

圖5-12班級(jí)管理界面
 執(zhí)行表操作代碼為:
set objs=con.execute("delete  from banji where name='"&bname&"'")
set objj=con.Execute("drop table "&bname&"")
 刪除表時(shí)就用到了drop table語(yǔ)句來(lái)刪除表中所有的內(nèi)容。
 
 留言薄管理
 留言薄作為本系統(tǒng)的主體功能就一定要特別的管理。當(dāng)然也只有管理員來(lái)管理。對(duì)于留言薄是傳輸信息的主要部分,戰(zhàn)友主要討論的信息也是顯示在留言薄上所以為了防止不良信息在上面散播,作為管理員就要對(duì)那些不良信息進(jìn)行刪除操作。如圖4-13所示:

圖5-13留言管理界面
 這樣當(dāng)我們點(diǎn)擊留言薄管理時(shí),界面上就顯示了所有的留言。當(dāng)管理員覺得某些留言不良就可以直接點(diǎn)擊右邊的刪除就可以刪除掉與所選內(nèi)容相同的所有記錄都會(huì)被刪除。而且界面也用到了自動(dòng)刷新的功能讓管理員在第一時(shí)間了解到留言記錄方便管理。
 主要代碼為:
 <meta http-equiv="refresh"content="10";url=jialiuyanguanli.asp>此句為設(shè)置自動(dòng)刷新。
 其中<td><a href="deletenei1.asp?neirong=<%=rs("neirong")%>">刪除</a></td>就是當(dāng)我們點(diǎn)擊刪除時(shí)可以直接的刪除的關(guān)鍵句子。當(dāng)我們點(diǎn)擊時(shí)就導(dǎo)向deletenei1.asp程序。
<%   neirong=request("neirong")
  set con=server.createobject("adodb.connection")
           con.open "dsn=dd;uid=aa;pwd=aa"
 con.execute"delete  from jiabinliuyan where neirong='"&neirong&"'"
 response.redirect("jialiuyanguanli.asp")%>
 這里就是在對(duì)后臺(tái)數(shù)據(jù)庫(kù)的操作,刪除與點(diǎn)擊的內(nèi)容相同的所有記錄成功后直接導(dǎo)向前面的網(wǎng)頁(yè)重新顯示留言。嘉賓留言的管理與普通用戶相同。
難點(diǎn)及解決方法
  圖片上傳功能的實(shí)現(xiàn)
 實(shí)現(xiàn)圖片上傳有以下關(guān)鍵步驟:1注冊(cè)一個(gè)上傳圖片組件,把 LyfUpload.dll這個(gè)組件復(fù)制到程序盤后,在cmd下運(yùn)行regsvr32   "C:\LyfUpload.dll"運(yùn)行成功后就可以在程序中使用這個(gè)組件。2用AppendChunk方法對(duì)圖片字段賦值把圖片上傳到數(shù)據(jù)庫(kù)中。3獲取圖片并在瀏覽器端顯示出來(lái)。
 代碼中要實(shí)現(xiàn)的方法
 圖片文件要保存到數(shù)據(jù)庫(kù)中的時(shí)候, 不可以直接使用Insert語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,而是要使用ADO的 AppendChunk方法,同樣的,讀出數(shù)據(jù)庫(kù)中的圖片數(shù)據(jù)要使用GetChunk方法。最后用BinaryWrite獲取圖片并在瀏覽器端顯示出來(lái)。
 
 
 
 
結(jié)   論
 本文簡(jiǎn)要介紹了典型的B/S體系結(jié)構(gòu)戰(zhàn)友錄系統(tǒng)功能模塊,重點(diǎn)討論了系統(tǒng)的數(shù)據(jù)庫(kù)建設(shè),系統(tǒng)流程圖和功能模塊的代碼分析。目前此系統(tǒng)基本可以實(shí)現(xiàn)其功能,在對(duì)整個(gè)工程進(jìn)行全面的測(cè)試,以不同用戶登陸,選擇不同的權(quán)限的操作,得到正確報(bào)錯(cuò)提示。權(quán)限控制成功。經(jīng)測(cè)試系統(tǒng)已完成既定的功能但系統(tǒng)仍然有一些不完善的地方例如:比如系統(tǒng)界面不夠友好,還有就是論壇的版塊太少?zèng)]有給戰(zhàn)友提供更加豐富的內(nèi)容。這些功能都有待在日后的工作中進(jìn)一步的完善。
參考文獻(xiàn)
[1]鄧文淵,陳蕙貞.Asp與網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)[M].北京:中國(guó)鐵道出版社,2005。
[2]方睿,刁仁宏,吳四九.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)原理及應(yīng)用[M].四川:四川大學(xué)出版社,2005。
[3]李浩,馮永毅.DreamweaverMX應(yīng)用培訓(xùn)教程[M].北京:冶金工業(yè)出版社,2003。
[4]金林樵.網(wǎng)絡(luò)數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2002。
[5]程亮,何力勤.Asp網(wǎng)絡(luò)編程實(shí)例[M].北京:人民郵電出版社,2001。
[6]楊得新.SQL SEVER數(shù)據(jù)庫(kù)系統(tǒng)[M].北京:機(jī)械工業(yè)出版社,2004。
[7]溫明等.ASP網(wǎng)站建設(shè)實(shí)錄[M]. 北京:紅旗出版社,2005。

【免費(fèi)網(wǎng)上戰(zhàn)友錄的設(shè)計(jì)與實(shí)現(xiàn)(一)】相關(guān)文章:

網(wǎng)上商城的設(shè)計(jì)與實(shí)現(xiàn)ASP11-23

探析網(wǎng)上交談工具的設(shè)計(jì)與實(shí)現(xiàn)03-18

基于ASP的網(wǎng)上銀行的設(shè)計(jì)與實(shí)現(xiàn)ASP+SQL03-08

免費(fèi)vc++網(wǎng)上尋呼QICQ源代碼(附帶論文)(一)11-22

免費(fèi)畢業(yè)論文--齒輪鏈輪套件設(shè)計(jì)(一)03-08

用ASP實(shí)現(xiàn)科技成果的網(wǎng)上查詢及管理03-20

IP協(xié)議設(shè)計(jì)實(shí)現(xiàn)—重裝模塊(一)03-07

免費(fèi)畢業(yè)論文--巧克力包裝機(jī)設(shè)計(jì)(一)03-08

免費(fèi)畢業(yè)論文--管道清灰機(jī)器人設(shè)計(jì)(一)11-23