版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于web的留言簿設(shè)計(jì)摘 要Internet的迅猛發(fā)展,推動(dòng)了各種網(wǎng)絡(luò)技術(shù)的不斷產(chǎn)生和更新,ASP便是在這一條件下產(chǎn)生的,ASP的出現(xiàn)改變了以往網(wǎng)站是由單純的HTML語言編寫的靜態(tài)網(wǎng)頁所組成的情況,有了ASP以后,我們就能夠根據(jù)不同的用戶,在不同的時(shí)間向用戶顯示不同的內(nèi)容。網(wǎng)站的內(nèi)容更新也不再是一個(gè)乏味的重復(fù)過程,它開始變得簡單而有趣。因此這使得人們在互聯(lián)網(wǎng)上的“生活”越來越多姿多彩,人們對于在互聯(lián)網(wǎng)上交流的方式,也提出了越來越多的要求?;趙eb的留言簿,就是運(yùn)用ASP制作出的,為網(wǎng)絡(luò)用戶提供的,一個(gè)能夠多人參與的交流方式。本文分別介紹了ASP概況、VBScript編程語言,ODBC簡介,以
2、及留言簿中用戶登陸/注冊,發(fā)表文章,瀏覽文章,更改個(gè)人信息等功能的實(shí)現(xiàn)。 關(guān)鍵字:留言簿,動(dòng)態(tài)網(wǎng)頁,腳本語言,ASP, ODBC ,VBScriptABSTRACTThe development of Internet caused producing and updatint of all kinds of technology of networks,when ASP arised.The appreanrance of ASP changed the enviroment under which the past network station is made up of static
3、Pages which are consistent of pure HTML language. After ASP turned up , according to different users we can display different contents to user in different time. The updating of the contents of station has never been boring repeating proccess. It begins to become simple and interesting.So the life i
4、n Internet becomes more and more colorful, and the methods of communication in Internet are required more and more.BBS based on Web is produced by using ASP,which is a way of several persons participating for network users.In this theme there are introduction of ASP, the VBScript language,introducti
5、on of ODBC, and user loging/register in the BBS,delivering article, going through articles, modifying personal messages and so on.Key words: BBS, dynamic , Script Language, ASP, ODBC, VBScript 前言目前,ASP(Active Server Pages)技術(shù)已風(fēng)靡全球,在Internet上幾乎處處都能看到它的身影。應(yīng)用ASP技術(shù),不需要進(jìn)行復(fù)雜的編程,就可以開發(fā)出專業(yè)的動(dòng)態(tài)Web網(wǎng)站。ASP技術(shù)的出現(xiàn)和發(fā)展
6、給曾經(jīng)以靜態(tài)內(nèi)容為主的Web帶來了全新的動(dòng)態(tài)效果,使其具有更加靈活和方便的交互特性,在Internet中實(shí)現(xiàn)信息的傳遞和檢索越來越容易。正因?yàn)槿绱?,ASP迅速被廣大網(wǎng)絡(luò)設(shè)計(jì)和開發(fā)人員所接受,成為他們在Windows環(huán)境下首選的網(wǎng)站開發(fā)和編程技術(shù)。ASP技術(shù)的廣泛使用已經(jīng)成為了必然的趨勢,鑒于此點(diǎn),本文將著重介紹一下基于ASP技術(shù)所制作的Web留言板。在本文中,將用到ASP , VBScript的知識,并且要使用Visual InterDev6.0進(jìn)行動(dòng)態(tài)網(wǎng)頁的制作,所以,在文章的開始,我將會(huì)對ASP和VBScript的基礎(chǔ)知識作簡要地介紹,以便與讀者閱讀本文,并且將向讀者介紹制作此BBS所用的
7、開發(fā)工具Visual InterDev6.0的一些特點(diǎn)和功能。 第一章 ASP基礎(chǔ)與VBScript語言1.1 ASP基本特征與功能1.1.1 ASP基本特征Active Server Pages實(shí)際上是將標(biāo)準(zhǔn)的HTML文件拓展了一些附加特征,ASP像標(biāo)準(zhǔn)的HTML文件一樣包含HTML對象冰球在一個(gè)瀏覽器上解釋并顯示。任何可以放在HTML中的東西都可以放在ASP中。因此,一個(gè)ASP有如下4個(gè)重要特征來使之具備很強(qiáng)的通用性。1.一個(gè)ASP可以包括服務(wù)段腳本。雖然我們可以用VBScript或JavaScript來創(chuàng)建由交互功能的HTML網(wǎng)頁。但是這些只是在客戶端執(zhí)行的程序段。這在某些功能的實(shí)現(xiàn)上有
8、很大的局限性。例如,當(dāng)處于客戶端的位置時(shí),你想在網(wǎng)絡(luò)上實(shí)現(xiàn)某種功能,而自己的及膝上卻無能為力時(shí),就想把這個(gè)任務(wù)傳給Server,讓設(shè)備齊全,功能完善的Sever去執(zhí)行。作為服務(wù)器端的腳本語言,ASP就是在Server上執(zhí)行的,因此它就比純客戶端Script語言有更強(qiáng)的功能。2.一個(gè)ASP提供了一些內(nèi)建對象。利用這些ASP中提供的內(nèi)建對象,可以使腳本功能更加強(qiáng)大。這些對象會(huì)允許從瀏覽器中接受和發(fā)送信息。例如,利用request對象,可以將用戶在HTML form中的信息接收到并在一個(gè)腳本中來響應(yīng)它。3.一個(gè)ASP可以用另外的元素來擴(kuò)展。正如前面所說,ASP本身就是來源于相當(dāng)數(shù)量的標(biāo)準(zhǔn)服務(wù)器端的A
9、ctiveX元素,這些組件用于完成諸如根據(jù)瀏覽器能力進(jìn)行不同顯示以及在瀏覽器內(nèi)包含計(jì)數(shù)器或其他統(tǒng)計(jì)項(xiàng)的工作。4.ASP可以和諸如 SQL Server,Microsoft Access這樣的數(shù)據(jù)庫進(jìn)行掛接。利用一些特別的對象集合,Active Data Object(ADO),就可以在ASP中使用SQL語言。這也是ASP強(qiáng)大的功能的重要方面,學(xué)生選課,車票查詢,訂購,在線商務(wù)等各種高級的,動(dòng)態(tài)更新的站點(diǎn)都需要數(shù)據(jù)庫的支持,而且需要?dú)q數(shù)據(jù)庫內(nèi)容的更新而自動(dòng)更新。正因?yàn)檫@個(gè)特征,ASP可以建立很多功能齊全,服務(wù)類型多樣的高級站點(diǎn)。以上四個(gè)特征僅是ASP的基本特征。一句話,ASP就是由Server端
10、腳本,對象以及組件拓展過的標(biāo)準(zhǔn)主頁組成。利用它,主頁就可以具有高度的交互性。1.1.2 ASP的功能ASP的一些典型應(yīng)用如下所示:1.根據(jù)不同訪問者顯示不同內(nèi)容,創(chuàng)建個(gè)性化主頁;2.使用網(wǎng)際導(dǎo)航連接多個(gè)主頁;3.在網(wǎng)站主頁頂部添加一個(gè)隨機(jī)顯示的滾動(dòng)廣告欄;4.根據(jù)用戶瀏覽器的版本,類型和能力顯示不同檔次的內(nèi)容;5.在主頁中添加單擊計(jì)數(shù)器;6.跟蹤用戶網(wǎng)站上的活動(dòng)信息并且存入日志文件;7.從數(shù)據(jù)庫中讀取信息并顯示在Web頁面上;8.從HTML的Form中接受信息并且存到數(shù)據(jù)庫中;9.手機(jī)用戶的反饋意見和留言,并把它顯示出來。1.2 ASP的工作原理Microsoft 將Internet Info
11、rmation Server(IIS)4.0及以上版本和ASP結(jié)合在一起。在IIS4.0中引入ASP就能夠使站點(diǎn)從靜態(tài)內(nèi)容變成動(dòng)態(tài)內(nèi)容。在前面對IIS的 服務(wù)器提出請求后,服務(wù)器將會(huì)從自己的硬盤或者內(nèi)存中提出一個(gè)靜態(tài)主頁發(fā)送到用戶的瀏覽器上。IIS的主要作用就是為用戶瀏覽器訪問服務(wù)器硬盤的一些文件提供一個(gè)有效的接口。早期的IIS版本包括一個(gè)稱作Internet Database Connector(IDC)的 工具 ,它可以通過導(dǎo)出一個(gè)Microsoft Acccess文件或其他數(shù)據(jù)文件另存為其他文件而建立。當(dāng)打開文件時(shí),會(huì)發(fā)現(xiàn)IDC的源程序和一般的ASP程序沒有什么區(qū)別。IDC可以從數(shù)據(jù)庫中
12、接受和存儲(chǔ)數(shù)據(jù),與*.HTX文件配合使用也可實(shí)現(xiàn)某些功能,但是ASP可以做得更好。1.2.1 普通HTML的執(zhí)行過程單從執(zhí)行過程來看,IIS和Apache,Web Site等其他的Web Server 沒有什么區(qū)別,任何Web Server的基本作用之一就是支持靜態(tài)HTML主頁,讀者可以從以下步驟理解其對HTML的支持過程:1 作為一個(gè)用戶首先是在瀏覽器的地址蘭中鍵入要訪問的主頁地址并回車觸發(fā)這個(gè)申請。2 瀏覽器將申請發(fā)送到諸如IIS的Web Server上。3 Web Server接受這些申請并根據(jù).htm或.html的后綴名 判斷這是HTML文件。4 Web Server從當(dāng)前硬盤或內(nèi)存中
13、讀取正確的HTML文件然后將它送回用戶瀏覽器。5 用戶的瀏覽器解釋這些HTML文件并將結(jié)果顯示出來。當(dāng)然,這種過程可能會(huì)更加復(fù)雜一些,例如Form中的內(nèi)容以及查詢字串的傳遞。在大多數(shù)情況下,對于各種典型的Web Server來說,著中國城市按部就班的,Web Server就接受文件申請并從內(nèi)存或者硬盤中讀取正確的文件 1.2.2 ASP與靜態(tài)網(wǎng)頁的區(qū)別ASP改變了上面所講的一切,在IIS仍然支持靜態(tài)HTML主頁的前提下,利用ASP可以更具用戶要求在Web Server上建立新的主頁。為了便于理解它和支持靜態(tài)主頁的區(qū)別,我們將它的工作過程分成以下步驟:1 一個(gè)用戶在瀏覽器的網(wǎng)址欄中鍵入ASP文件
14、名稱,并回車觸發(fā)這個(gè)ASP的申請。2 瀏覽器將這個(gè)ASP的要求發(fā)給IIS。3 Web Server接受這個(gè)申請要求并由于其.asp的后綴意識到這是個(gè)ASP要求。4 Web Server從硬盤或者內(nèi)存中接受正確的ASP文件。5 Web Server 將從這個(gè)文件發(fā)送到一個(gè)叫做ASP.DLL特定文件中。6 ASP文件將會(huì)從頭至尾被執(zhí)行并根據(jù)命令要求生成相應(yīng)的靜態(tài)主頁。7 HTML主頁將被送回瀏覽器8 HTML主頁將會(huì)被用戶瀏覽器解釋執(zhí)行并顯示在用戶瀏覽器上。為了清楚地說明問題,以上步驟已經(jīng)進(jìn)行了很大的簡化,一個(gè)ASP并不一定每一次都重新編譯解釋,如果再次接受以前的那個(gè)請求而且沒有任何變化,ASP會(huì)
15、從緩存中提出結(jié)果而不是再次運(yùn)行。對于Web Server來說,ASP與HTML有著本質(zhì)的區(qū)別,HTML是不經(jīng)過任何處理送回給瀏覽器,而ASP的每一個(gè)命令都首先被用來生成HTML文件,因此,ASP允許生成動(dòng)態(tài)內(nèi)容。另一方面,對于瀏覽器來說,ASP和HTML幾乎是沒有區(qū)別的,僅僅是后綴為.asp和.htm的區(qū)別,當(dāng)我們在客戶端提出ASP申請后,我們的瀏覽器接受的是HTML格式的文件,因此它適用于任何瀏覽器。1.3 VBScript語言1.3.1 VBScript概述 由于本文重要用到VBScript語言,所以,接下來將對VBScript語言做以下簡單介紹。VBScript是Microsoft Vi
16、sual Basic Scripting Edition 的簡稱,它是程序開發(fā)語言Visual Basic家族的最新成員。它的誕生,不僅給Visual Basic大家庭增加來無窮無盡的活力,更為Web世界精彩網(wǎng)頁的開發(fā)提供了強(qiáng)大的工具支持。作為一種腳本語言,VBScript的作用就是用來彌補(bǔ)網(wǎng)頁嵌入的控件(如 Java apple 或 Active X)和CGI/Perl兩者的不足之處。VBScript與HTML兩者和網(wǎng)頁瀏覽器的密切結(jié)合簡直是無與倫比,基本上已經(jīng)將瀏覽器看作操作環(huán)境。它將靈活的腳本通過活動(dòng)的腳本語言嵌入各種各樣的運(yùn)行環(huán)境中,能夠使網(wǎng)頁上的ActiveX控件更加靈活的交互。第二
17、章 Visual InterDev 6.0簡介2.1 Visual InterDev 6.0概況Visual InterDev 6.0是Microsoft公司所推出的Web應(yīng)用程序開發(fā)工具,具體說,Visual InterDev6.0是快速設(shè)計(jì),建立和調(diào)試數(shù)據(jù)庫驅(qū)動(dòng)的Web應(yīng)用程序的基于團(tuán)隊(duì)的開發(fā)環(huán)境。Visual InterDev 6.0 是一個(gè)功能強(qiáng)大的用于Internet和Intranet領(lǐng)域創(chuàng)建和維護(hù)動(dòng)態(tài)Web站點(diǎn)的工具。Visual InterDev 集成了一次些非常優(yōu)秀的特征和功能,它能夠使創(chuàng)建和維護(hù)站點(diǎn)的工作變得更加輕松。當(dāng)提到“動(dòng)態(tài)的Web站點(diǎn)”這個(gè)詞時(shí),指的不是在頁面中加入了
18、動(dòng)畫,或者那種循環(huán)演示的網(wǎng)頁,指的是頁面中活動(dòng),甚至是交互式的內(nèi)容。如果想要將自己的Web與數(shù)據(jù)庫連接,那么Visual InterDev是一個(gè)有力的工具。數(shù)據(jù)庫可以用來在線發(fā)布公司的產(chǎn)品目錄,可以幫助搜集E-mail信息。或者幫助處理網(wǎng)上的電子貿(mào)易業(yè)務(wù)。如果要在自己的Intranet應(yīng)用中加入交互式的人力資源管理,庫存控制系統(tǒng)和其他的基于工作組的應(yīng)用,那么Visual InterDev也是一個(gè)非常有用的工具。使用Visual InterDev,以上所提到的這些聽起來很不錯(cuò)的內(nèi)容都可以很快和很容易地作為一個(gè)Web站點(diǎn)來實(shí)現(xiàn)。所以,一個(gè)動(dòng)態(tài)的Web站點(diǎn),就更像一個(gè)計(jì)算機(jī)程序。也就是說,所創(chuàng)建的W
19、eb頁面作為一個(gè)可視化的程序使用Web作為它的用戶界面。2.1.1 Visual InterDev 6.0集成開發(fā)環(huán)境 Visual InterDev 6.0提供了一個(gè)進(jìn)行Web應(yīng)用程序開發(fā)的集成環(huán)境。Microsoft公司推出Visual InterDev 6.0的主要目的是提供這樣一個(gè)工具:它能夠是開發(fā)者使用各種各樣的技術(shù)來創(chuàng)建動(dòng)態(tài)的、基于Web的應(yīng)用程序;并且,這個(gè)工具應(yīng)該是一個(gè)可視化的工具,便于為開發(fā)者使用。 Visual InterDev 6.0提供了許多的向?qū)Ш涂梢暬ぞ?,這大大提高了Web應(yīng)用程序開發(fā)人員的效率。Visual InterDev 6.0具有強(qiáng)有力的數(shù)據(jù)庫集成特性。鑒
20、于Web應(yīng)用程序越來越多地需要與數(shù)據(jù)庫連接,這也許是Visual InterDev 6.0的一個(gè)最主要特征。 在Visual InterDev 6.0的集成開發(fā)環(huán)境中,開發(fā)者可以使用各種最新的技術(shù)如ActiveX控件,設(shè)計(jì)期控件和活動(dòng)服務(wù)器元件來創(chuàng)建功能強(qiáng)大的Web應(yīng)用程序。也可以使用如VBScript和JavaScript這樣的腳本語言來創(chuàng)建動(dòng)態(tài)的應(yīng)用程序和Web頁面。2.1.2 編輯HTML 在Visual InterDev 6.0中,為了提高開發(fā)人員編寫HTML頁面的效率,提供了可視化的HTML編輯器。這個(gè)編輯器包括三個(gè)視圖:設(shè)計(jì)視圖,源代碼視圖和快速預(yù)覽視圖。設(shè)計(jì)視圖提供了所見即得的H
21、TML編輯環(huán)境,源代碼視圖允許開發(fā)者查看和修改HTML文件代碼,快速預(yù)覽視圖使開發(fā)者可以迅速地在開發(fā)環(huán)境中預(yù)覽頁面的顯示效果。開發(fā)者可以方便地在這三個(gè)視圖中切換。2.1.3腳本程序編寫和調(diào)試 為了創(chuàng)建動(dòng)態(tài)的Web頁面,腳本已經(jīng)使用得越來越多。Visual InterDev 6.0 支持使用VBScript和JavaScript語言來開發(fā)客戶端和服務(wù)器端的腳本程序。另外在Visual InterDev 6.0中提供了智能化的腳本程序編寫功能,可以幫助開發(fā)者快速無誤地開發(fā)各種腳本程序。 在Visual InterDev 1.0中并沒有提供腳本程序調(diào)試功能,要測試開發(fā)者所編寫的腳本程序是否能實(shí)現(xiàn)所需
22、的功能,只能通過瀏覽器來測試。而在Visual InterDev 6.0中這一切有了很大的改變,它所提供的腳本調(diào)試器使得開發(fā)者可以方便地調(diào)試客戶端腳本程序和服務(wù)器斷腳本程序,甚至可以實(shí)現(xiàn)兩類腳本程序的混合調(diào)試。 第三章 ODBC與ADO概述3.1 ODBC概述ODBC是Microsoft Windows的開放服務(wù)體系的標(biāo)準(zhǔn)組成部分,是被人們廣泛接受的用于數(shù)據(jù)庫訪問的應(yīng)用程序編程接口。對于數(shù)據(jù)庫API,她以X/Open和ISO/IEC的Call-Level Interface (CLI)規(guī)范為基礎(chǔ),并使用結(jié)構(gòu)化查詢語言作為其數(shù)據(jù)庫訪問語言。ODBC是為最大的互用性而設(shè)計(jì)的,即一個(gè)應(yīng)用程序用相同的
23、源代碼訪問不同的數(shù)據(jù)庫管理系統(tǒng)的能力。數(shù)據(jù)庫應(yīng)用程序在ODBC接口中調(diào)用函數(shù),ODBC接口在叫作驅(qū)動(dòng)程序的針對數(shù)據(jù)庫的模塊中實(shí)現(xiàn)。驅(qū)動(dòng)程序的是用使應(yīng)用程序從具體的數(shù)據(jù)庫調(diào)用中隔離開來,這與打印機(jī)驅(qū)動(dòng)程序?qū)⒆痔幚沓绦蚺c具體的打印機(jī)命令隔離開的方式是一樣的。因?yàn)轵?qū)動(dòng)程序在運(yùn)行時(shí)才加載,所以,用戶只需要增加一個(gè)新的驅(qū)動(dòng)程序來訪問新的DBMS,沒有必要重新編譯或者重新鏈接應(yīng)用程序。3.2 建立ODBC數(shù)據(jù)源 本文是在實(shí)現(xiàn)系統(tǒng)之前,必須先建立一個(gè)ODBC數(shù)據(jù)源,數(shù)據(jù)源包含了如何與一個(gè)數(shù)據(jù)提供者進(jìn)行鏈接的信息。ODBC是一種訪問數(shù)據(jù)庫的方法,只要系統(tǒng)中有相應(yīng)的ODBC驅(qū)動(dòng)程序,任何程序就可以通過ODBC操
24、縱驅(qū)動(dòng)程序的數(shù)據(jù)庫。比如,系統(tǒng)中有ACCESS的ODBC驅(qū)動(dòng)程序,就不需要有ACCESS軟件,就可以在程序中,往一個(gè)ACCESS的MDB數(shù)據(jù)庫中增、刪、改記錄,而且根本不用知道這個(gè)數(shù)據(jù)庫示放在那里的。數(shù)據(jù)源包含了如何與一個(gè)數(shù)據(jù)提供者進(jìn)行鏈接的信息。 按一下步驟可以建立一個(gè)新的系統(tǒng)數(shù)據(jù)源。(1) 在“我的電腦”中的控制面板中雙擊“管理工具”將會(huì)出現(xiàn)下圖: (2)雙擊“(數(shù)據(jù)源ODBC),選擇系統(tǒng)DSN會(huì)出現(xiàn)下圖: (3)單擊“添加”,增加一個(gè)DSN入口,選擇“Microsoft Access Driver(*.mdb)”,點(diǎn)“完成”鍵,如下圖: (4)在“數(shù)據(jù)源名”里輸入bbs,然后單擊“選取”
25、鍵,選擇數(shù)據(jù)庫,選中bbs.mdb并確認(rèn),如圖: 這樣,名為bbs的新數(shù)據(jù)源創(chuàng)建完畢,可以使用這個(gè)數(shù)據(jù)源鏈接到Microsoft Access.說明:建立了這個(gè)數(shù)據(jù)源后,在下面的留言簿設(shè)計(jì)與實(shí)現(xiàn)中將要應(yīng)用它。db1.mdb數(shù)據(jù)庫將在實(shí)現(xiàn)中用到。第四章 留言簿的設(shè)計(jì)與實(shí)現(xiàn)4.1 系統(tǒng)概述 本例的BBS模型把用戶分成三類,一類是管理員,第二類是普通用戶,第三類是客人。用戶發(fā)表的文章只分成了兩個(gè)版:精華版和普通版。管理員負(fù)責(zé)維護(hù)整個(gè)BBS系統(tǒng),它可以刪除或者確認(rèn)任何人注冊的帳號,刪除任何人發(fā)表的文章,也可以把某個(gè)用戶在普通版發(fā)表的文章轉(zhuǎn)到精華版,當(dāng)然也可以把一些已經(jīng)在精華版上的文章轉(zhuǎn)回到普通版。對于
26、普通用戶來說,是無法在精華版發(fā)表文章的,他們只能在普通版發(fā)表文章,如果文章的內(nèi)容很優(yōu)秀,管理員會(huì)把她轉(zhuǎn)到精華版的。用戶也可以刪除自己寫的文章和對自己的注冊信息進(jìn)行修改。用戶個(gè)人注冊的信息也很簡單,只有帳號、密碼、昵稱這三項(xiàng)。但是自己的帳號是不能更改的,因?yàn)閹ぬ柺且粋€(gè)用戶的唯一標(biāo)識。注冊時(shí)間由程序自動(dòng)讀取當(dāng)前的Web服務(wù)器時(shí)間,而上站次數(shù)和發(fā)表文章數(shù)也是程序通過SQL直接得到的??腿讼喈?dāng)于一個(gè)共有帳號,以客人身份等入的用戶,只能閱讀文章,沒有發(fā)表和刪除的權(quán)利,也沒有自己的個(gè)人資料可以修改。 對于還沒有賬號的新用戶,允許他們進(jìn)行注冊,但是注冊后的賬號不能馬上使用,必須等到管理員確認(rèn)后,這個(gè)賬號才生
27、效,在確認(rèn)之前,新用戶可以查看普通版和精華版的文章,并且也可以修改自己的注冊信息。在注冊的時(shí)候要注意,有可能注冊的賬號已經(jīng)被別人注冊了,那么,在BBS里,賬號是不允許重復(fù)的。所以本著先來后到的原則,只好要求后來的用戶重新注冊一個(gè)別的賬號了。 在用戶權(quán)限一欄中,系統(tǒng)約定:0表示該用戶具有管理員權(quán)限;1 表示該用戶是普通用戶。實(shí)際上,一個(gè)BBS站點(diǎn)的用戶權(quán)限絕不只是這幾種,比如管理員、版主、系統(tǒng)管理員等等,但在本文的具體實(shí)現(xiàn)中,僅分為管理員和普通用戶兩種。 4.2 數(shù)據(jù)庫設(shè)計(jì) 該留言簿需用到Microsoft Access中一個(gè)名為bbs.mdb的數(shù)據(jù)庫。它包括兩個(gè)表,其名稱分別是:users和a
28、rticles,分別用來存放用戶信息和發(fā)表的文章信息。Users表有九個(gè)字段,ID是主關(guān)鍵字。當(dāng)添加一條新的記錄時(shí),會(huì)為該字段自動(dòng)生成一個(gè)數(shù)值,而不需要應(yīng)用程序產(chǎn)生這個(gè)數(shù)值。同時(shí)uid(用戶ID)也是不準(zhǔn)重復(fù)的。字段名稱數(shù)據(jù)類型說明ID自動(dòng)編號UID文本用戶賬號Upassword文本用戶密碼Uname文本用戶昵稱Upermission數(shù)字用戶權(quán)限Utime數(shù)字上站次數(shù)Uarticle數(shù)字發(fā)表文章數(shù)Udate日期注冊時(shí)間Usign是/否是否確認(rèn)身份 Articles表有六個(gè)字段。還是以ID作為主關(guān)鍵字,Auther代表發(fā)表文章的用戶賬號,用來和users表發(fā)生關(guān)聯(lián),為外部關(guān)鍵字。字段名稱數(shù)據(jù)類型
29、說明ID自動(dòng)編號自動(dòng)編號Name文本文章名稱Auther文本作者賬號Date日期發(fā)表日期Location是/否是否在精華版Content備注文章內(nèi)容 4.3 系統(tǒng)設(shè)計(jì) 本BBS中一共涉及了九個(gè).asp文件,分別是”login.asp”、”register.asp”、”main.asp”、”excellent.asp”、”common.asp”、”affirm.asp”、”manage.asp”、”publish.asp”、和”read.asp”及Global.asa文件。 “l(fā)ogin.asp”為用戶登陸頁面,如圖1所示。它是本例的初始進(jìn)入時(shí)的頁面,其功能是要求來訪問的用戶注冊自己的賬號,并輸
30、入密碼,正確注冊后,就可以進(jìn)入”main.asp”,去選取自己權(quán)限內(nèi)的功能了。對于在BBS站內(nèi)還沒有注冊賬號的用戶,就可以在賬號中輸入Guest,以“客人”的身份登陸進(jìn)來。如果用戶想注冊一個(gè)新的賬號,那么可以點(diǎn)擊頁面下部的“新用戶”按鈕,就會(huì)進(jìn)入到”register.asp”主頁中去注冊新的賬號,當(dāng)然,這個(gè)賬號只有在被管理員確認(rèn)后才能正確使用。界面如圖1。圖1如果點(diǎn)擊“新用戶”按鈕,進(jìn)入“register.asp”新用戶注冊界面,如圖2所示。在該界面中,需要輸入賬號、密碼、昵稱三項(xiàng)內(nèi)容,這三項(xiàng)指標(biāo)都不能為空值。其中,為了防止誤操作,密碼要求輸入兩次,這兩次輸入應(yīng)該相同。同時(shí),賬號不能和系統(tǒng)中已
31、經(jīng)存在的重復(fù),在實(shí)際運(yùn)行中,這些輸入方面的控制都是通過程序來完成的,如果用戶輸錯(cuò)了,系統(tǒng)會(huì)給出相應(yīng)的提示。 圖2 新用戶注冊完成后,或者是在登陸界面中輸入正確的賬號和密碼,點(diǎn)擊“登陸”按鈕后,就可以進(jìn)入”main.asp”這是本BBS系統(tǒng)的主頁面。根據(jù)用戶權(quán)限的不同,主頁面將顯示不同的內(nèi)容,普通用戶可以選擇瀏覽普通版和精華版的文章,可以對自己的個(gè)人注冊信息進(jìn)行修改,所看到的界面如圖3所示。而系統(tǒng)管理員除了一般用戶的權(quán)限外,還可以確認(rèn)用戶和對用戶進(jìn)行管理,其界面入圖4所示。如果是客人,則只能瀏覽文章了,如圖5所示。圖3圖4圖5 在主頁面中單擊精華版或普通版超鏈接,就可進(jìn)入相應(yīng)的版面閱讀文章,兩個(gè)
32、版面的界面和操作都差不多,現(xiàn)僅以普通版為例進(jìn)行說明。該版面有”common.asp”文件完成,普通用戶進(jìn)入后,可以閱讀文章,發(fā)表文章,也可以刪除自己寫的文章,如圖6所示。系統(tǒng)管理員進(jìn)入后,除上述權(quán)力外,還可以刪除所有用戶發(fā)表的文章,并且對于好文章可以將它轉(zhuǎn)到精華版中,如圖7所示。而客人和未經(jīng)確認(rèn)身份的新用戶就只能閱讀文章了,如圖8所示。刪除文章和將文章升級到精華版都是通過復(fù)選框完成,選中復(fù)選框后,點(diǎn)擊“提交”按鈕,系統(tǒng)會(huì)自動(dòng)將修改返回到數(shù)據(jù)庫服務(wù)器處理。由于考慮到文章較多,因此設(shè)定了一次只顯示五篇文章,用戶可通過“上一頁”和“下一頁”進(jìn)行翻頁顯示。 圖6 圖7圖8 在該界面中,點(diǎn)中文章標(biāo)題的超
33、鏈接,則可以閱讀該文章,比如要閱讀題為“test3”文章,進(jìn)入”read.asp”文件,如圖9所示。 在普通版界面中,如果用戶具有發(fā)表文章的權(quán)利,則可以發(fā)表文章,發(fā)表文章使用”publish.asp”文件,該界面比較簡單,只有兩個(gè)輸入文本框:一個(gè)用來輸入文章標(biāo)題;另一個(gè)使文章的內(nèi)容,如圖10所示。 在主頁面中,可以重新設(shè)定個(gè)人資料,該功能也是通過”register.asp”文件完成的。用戶可以重新設(shè)定密碼和昵稱,當(dāng)然,也應(yīng)該兩次輸入相同密碼。修改后,點(diǎn)擊“完成”按鈕完成修改,如圖11所示:圖9圖10圖11在主頁面中,如果是系統(tǒng)管理源,則可以點(diǎn)“用戶管理”超鏈接進(jìn)入“manage.asp”文件進(jìn)
34、行用戶管理。首先應(yīng)查詢想要處理的用戶,由于這個(gè)BBS系統(tǒng)比較簡單,因此僅僅設(shè)計(jì)了按用戶賬號進(jìn)行查詢。輸入賬號后,點(diǎn)“查詢”按鈕,如果該用戶存在,則將顯示其詳細(xì)的信息,供管理員處理。下面有“修改”和“刪除”兩個(gè)按鈕,如果僅僅對用戶信息進(jìn)行修改,則在修改完成后,點(diǎn)“修改”鈕即可:如要?jiǎng)h除該用戶,直接點(diǎn)“刪除”。如圖12圖12在主頁面中,如果是系統(tǒng)管理員,那么還可以點(diǎn)“用戶確認(rèn)”超鏈接近如”affirm.asp”文件對未確認(rèn)身份的用戶進(jìn)行身份確認(rèn)。未確認(rèn)的用戶也是以列表的形式排列出來,可以進(jìn)行上下翻頁,選中右邊的復(fù)選框。殿“提交”按鈕后該用戶即被確認(rèn)身份,可以發(fā)表文章了。如圖13圖13 以上便是整個(gè)
35、BBS的具體設(shè)計(jì),每個(gè)模塊的具體實(shí)現(xiàn)請?jiān)斠娤挛摹?.4 各模塊的具體實(shí)現(xiàn)4.4.1 初始化 在制作之前,要說明一下所要用到的Session變量的意義參數(shù)說明Session(“success”)布爾型變量,表示用戶是否注冊成功Session(“visited”)在register.asp中判斷是新用戶還是已注冊用戶Session(“ID”)RecordSet對象,存儲(chǔ)用戶注冊信息的記錄Session(“recAffirm”)RecordSet對象,存儲(chǔ)未被確認(rèn)的賬號的記錄集Session(“page_Affirm”)整型變量,在Affirm.asp中表示Session(“recAffirm”)記
36、錄集正在顯示的頁號Session(“recExcellent”)RecordSet對象,儲(chǔ)存精華版文章的記錄集Session(“page_Excellent”)整型變量,在 “精華.asp”中表示Session(“recJinghua”)記錄集正在顯示的頁號Session(“recCommon”)RecordSet對象,存儲(chǔ)普通版文章的記錄集Session(“page_Common”)整型變量,在 “普通.asp”中表示Session(“recPutong”)記錄集正在顯示的頁號Session(“post_Mode”)字符串變量,可取值為”普通”或”精華”,表示即將發(fā)表的文章是哪一版的本留言簿
37、還需要用到一個(gè)Session_onStart事件。在這個(gè)事件中,需要設(shè)定Session對對象的一個(gè)屬性:TimeOut屬性。這個(gè)屬性在一個(gè)BBS站得主頁重視需要設(shè)置的。當(dāng)一個(gè)用戶很長時(shí)間沒有更新頁面或者進(jìn)行某種操作時(shí),為了保證站點(diǎn)的速度,降低服務(wù)器資源的小號,就可以認(rèn)為這個(gè)用戶已經(jīng)斷線或者推出了。Session_onStart就是要設(shè)置這個(gè)事件的長短。 4.4.2 登陸界面的制作 登陸界面login.asp文件主要的功能是為用戶登陸使用,可直接登陸的用戶分為2種:已注冊用戶和以客人身份登陸的用戶。而想要注冊的用戶也必須通過這頁鏈接到新用戶注冊界面。 在這頁中,便是區(qū)分用戶以何種身份登陸以及登陸
38、,對客人和真正的用戶進(jìn)行區(qū)分。 在判斷注冊信息是否正確之前,要設(shè)置Session(“success”)變量的指為False,然后,根據(jù)用戶所輸入的賬號的不同,進(jìn)行不同的處理。當(dāng)用戶輸入的是Guest這個(gè)字符串時(shí),就把本主頁重新定向到main.asp,同時(shí)把Session(“success”)設(shè)置為True,表示這個(gè)用戶注冊成功。但是這里并沒設(shè)定Session(“ID”),這是區(qū)分客人和真正用戶的標(biāo)志。在其它情況下,都把用戶輸入的信息作為注冊信息處理,接著創(chuàng)建recMembers這個(gè)Recordset對象,利用SQL語句選擇賬戶和密碼都與用戶輸入相符合的記錄,如果記錄集不為空,說明有符合條件的記
39、錄,用戶登陸成功。然后,設(shè)置該用戶信息全局變量結(jié)果集,上站次數(shù)加1。源碼見附錄。 4.4.3 注冊界面制作 register.asp文件在兩個(gè)地方要用到:一是在新用戶注冊時(shí);而是在用戶對自己個(gè)人資料進(jìn)行修改時(shí)。這兩種情況是通過變量Session(“visited”)來區(qū)別,如果該變量為真則是修改個(gè)人資料;否則是新用戶注冊。首先,判斷注冊人兩次輸入的密碼是否相同,不同則從新輸入,Session(“visited”)=True時(shí)表示為修改個(gè)人資料,反之,為新用戶注冊。輸入賬號時(shí),賬號不為空,輸入后,如果沒有其它的賬號重復(fù),則進(jìn)行注冊。在添加usign字段的時(shí),要設(shè)置為False,因?yàn)樾伦缘挠脩魶]
40、有被確認(rèn)。如果success標(biāo)志設(shè)為True,說明注冊新賬號成功,并且賦予新用戶以客人的權(quán)限,如果賬號重復(fù),設(shè)置標(biāo)記為該賬號已經(jīng)存在。源碼見附錄4.4.4 主界面的設(shè)計(jì) main,asp文件是BBS系統(tǒng)的主界面,讀者在閱讀時(shí),應(yīng)注意在程序中如何根據(jù)不同的用戶權(quán)限來設(shè)置界面,即訪問控制問題。 在這個(gè)版面中,主要要實(shí)現(xiàn)四個(gè)功能1 只有注冊成功,才顯示相關(guān)內(nèi)容其關(guān)鍵語句是 2.判斷是否是注冊用戶其關(guān)鍵語句是 3.判斷是否是系統(tǒng)管理員其關(guān)鍵語句是 4.設(shè)置以訪問主界面的標(biāo)記 其關(guān)鍵語句是 4.4.5 精華版界面的制作 首先,要設(shè)定鏈接字符串Conn并創(chuàng)建RecordSet對象。其語句如下: % dim
41、 recArticles set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”bbs” Set recArticles=Server.CreateObject(“ADODB.Recordset”) If Request.ServerVariables(“Request_Metjpd”)=”POST” then 然后,對于用戶提交上來想要發(fā)表的文章,首先要設(shè)定發(fā)表文章的模式,然后把申請定向到”publish.asp”文件上。語句如下: if Request.Form(“publish”)=”發(fā)表文章”then Session(“p
42、ost_mode”)=”精華” Response.Redirect http:/yyd/bbs/publish.asp End if 用戶點(diǎn)擊”提交”按鈕 就要先處理要降級的文章,需要循環(huán)提交上來的chkDec中的每一個(gè)值,由于這些值是對應(yīng)文章記錄的主關(guān)鍵字ID,所以查找ID相符合得記錄,再把它的location字段設(shè)置為False,就表示這篇文章已經(jīng)屬于普通版了。 語句如下: For each x in Request.Form(“chkDec”) sql=”select * from articles where ID =” & x recArticles.Open sq1,Conn,1,
43、3 recArticles(“l(fā)ocation”)=False recArticles.Update recArticles.Close 然后,處理需要?jiǎng)h除的文章,需要循環(huán)chkDel的每一個(gè)值并且需要跟新users庫(sq1=”seclect uarticle from users where uid=(select auther from articles where id=”& x &”)”,查找ID相符合的記錄,并將它刪除。最后,重新打開數(shù)據(jù)庫,選擇屬于精華版的文章(sq1=”select * from articles where location=True”:recArticles
44、.Open sq1.Conn,1,3)4.4.6 普通版界面的設(shè)計(jì) 普通版界面制作和精華版界面設(shè)計(jì)類似,只不過在用戶點(diǎn)擊提交時(shí),要處理的是升級的情況。語句如下: For each x in Request.Form(“chkUpdate”) sq1=”select * from articles where ID=”& x recArticles.Open sq1,Conn,1,3 recArticles(“l(fā)ocation”)=True recArticles.Update recArticles.Close 4.4.7 閱讀版面設(shè)計(jì) 閱讀版面比較簡單,只是一個(gè)無邊框的表格輸出文章的內(nèi)容,用
45、一個(gè)QueryString字符串傳遞文章的編號和返回的版面。4.4.8 發(fā)表文章界面的設(shè)計(jì) 發(fā)表文章界面也比較簡單,只是為了用戶發(fā)表文章用,它用了變量Session(“post_mode”)來傳遞將返回哪個(gè)版面。 確認(rèn)發(fā)表文章的話,就打開數(shù)據(jù)表: set Conn=Server.CreateObject(“ADODB.Connection”) Conn.Open”bbs” set recArticles=Server.CreateObject(“ADODB.Recordset”) sql=”Select * from articles” recArticles.Open sql,Conn,1,3 利用AddNew方法添加記錄: recArticles.AddNew recArticles(“name”)=Request.From(“title”) recArticles(“content”)=Request.From(“content”) recArticles(“datel”)=Now recArticles(“auther”)=Session
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品加工廠高管招聘合同樣本
- 醫(yī)院建設(shè)三方施工合同
- 住宅小區(qū)砌體施工合同
- 咨詢公司內(nèi)勤管理合同
- 武義食堂對外承包合同范例
- 舞臺(tái)布景委托合同三篇
- 裝修承包合同(2篇)
- 退租協(xié)議書樣本
- 團(tuán)隊(duì)境內(nèi)旅游合同第15條
- 花灑定制合同范例
- 泰語版漢語900句
- 醫(yī)院藥品目錄
- 鋼筋混凝土樓板及樓地面構(gòu)造
- 穿越北緯18度-海南旅游文化知到章節(jié)答案智慧樹2023年三亞中瑞酒店管理職業(yè)學(xué)院
- 論農(nóng)村幼兒自然教育的教育理念 論文
- 學(xué)生心理危機(jī)干預(yù)工作流程
- 德語智慧樹知到答案章節(jié)測試2023年西安理工大學(xué)
- 全國2016年10月自考00043經(jīng)濟(jì)法概論(財(cái)經(jīng)類)試題及答案
- 凈化工程施工驗(yàn)收報(bào)告正規(guī)版
- 分娩鎮(zhèn)痛規(guī)范及流程
- 基于改進(jìn)蟻群算法的移動(dòng)機(jī)器人路徑規(guī)劃研究共3篇
評論
0/150
提交評論