【正文】
txt=請(qǐng)重新登錄 End if End If % !include file= % 33 39。 39。 VALUES(39。,39。,39。) set objRS=(strSQL) if 0 then 數(shù)據(jù)庫操作失敗: amp。center39。 /SCRIPT /td/tr /table /body/html 附錄 源碼如下: % 39。center39。center39。 now() amp。 (remote_host) amp。 strUserName amp。 end if If Not Then if objRS(status)=Y then session(adminboard)=Cint(objRS(manbid)) end if end if 39。 amp。User Exists If objRS(password)=strUserPassword Then bLogSucc=1 session(username)=strUserName repmsg=歡迎 amp。 39。 39。 39。 39。 39。 39。 39。 39。 39。 39。 39。 39。 39。 39。 lxway,birthday,homepage,quantity) strSQL=strSQL amp。adModeShareDenyNone 16 strDBPath = () strDBPath = replace(strDBPath,\bbs\,\db\) strDBConn= DRIVER={Microsoft Access Driver (*.mdb)}。adModeReadWrite 3 39。 30 附錄:部分源代碼 附錄 源碼如下: % 39。楊老師在教學(xué)上一直保持著一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,踏踏實(shí)實(shí)的精神,是我順利完成此次論文的 有利條件 。 在 此留言板 系統(tǒng)開發(fā)過程中, 不 斷的出現(xiàn) 一些新的問題,我又不斷的解決遇到的問題,一步 一步地前進(jìn),隨著系統(tǒng)的逐步完善,我對(duì)以前所學(xué)知識(shí)的領(lǐng)悟程度得到了提升,編程能力得到了提高,所學(xué)的知識(shí)得到了綜合運(yùn)用。 雖然平時(shí)經(jīng)常瀏覽論壇,比較熟悉一般論壇的流程及功能,但由于我的編程實(shí)現(xiàn)能力和畢業(yè)設(shè)計(jì)的時(shí)間都有限,有些地方還不是很完美。因?yàn)橄到y(tǒng)是為用戶服務(wù)的,所以要充分了解用戶的需求,考慮用戶的特點(diǎn)和使用方面的習(xí)慣,以協(xié)調(diào)人機(jī)關(guān)系。 運(yùn)行效果截圖 如圖 圖 圖 圖 9 所示 : 圖 6 登陸界面 截圖 圖 7 登陸錯(cuò)誤 界面截圖 26 圖 8 后臺(tái) 登錄 界面截圖 圖 9 后臺(tái)管理界面截圖 27 五、總結(jié)與展望 在老師的指導(dǎo)和督促下,經(jīng)過三個(gè)月的緊張?jiān)O(shè)計(jì)與開發(fā),我的畢業(yè)設(shè)計(jì) : 基于 ASP 的 BBS留言板 系統(tǒng)終于開發(fā)完成了。 源代碼如 附錄 所示。 每一位用戶都可以擁有一組專用的 Session 變量。 當(dāng)一位尚未建立 Session 對(duì)象的用戶瀏覽到 WEB站點(diǎn)的 ASP 程序時(shí), ASP 就會(huì)自動(dòng)產(chǎn)生一個(gè)新的 Session 對(duì)象,并且指定唯一的 SessionID 編號(hào)。 使用 ADO 組件的 RecordSet RecordSet 對(duì)象為 ADO 組件最重要的對(duì)象,從英文名字看來就是“記錄集合”。 建立復(fù)雜的 SQL 語句,通常得事先進(jìn)行許多復(fù)雜的數(shù)據(jù)類型轉(zhuǎn)換,使用Command 對(duì)象配合 Parameters 數(shù)據(jù)集合建立 SQL 指令則相對(duì)來說比較簡(jiǎn)單,因?yàn)閷?duì)象本身就能夠 自己 處理復(fù)雜的數(shù)據(jù)類型轉(zhuǎn)換,另外,比較 Connection 對(duì)象直接執(zhí)行 SQL 語句來說,操作要靈活。本系統(tǒng)中,用戶身份驗(yàn)證、發(fā)表 帖子 以及回復(fù) 帖子 等相關(guān)數(shù)據(jù)庫操作相當(dāng)頻繁,對(duì)數(shù)據(jù)存取效率有相當(dāng)?shù)囊螅劣谠跀?shù)據(jù)存取的靈活性方面要求不高,因此,大部分都是采取 ADO組件 Connection 對(duì)象配合 SQL 語法這種數(shù)據(jù)庫操作方式。 ADO 組件 Connection 對(duì)象配合 SQL語法 在網(wǎng)頁上使用 SQL 指令處理數(shù)據(jù)的訪問,需要使用 ADO 組件的 Connection對(duì)象建立數(shù)據(jù)連接,以便讓我們下達(dá) SQL 指令到服務(wù)器端的數(shù)據(jù)庫,處理表中的記錄。 Set objDBConn=() 建立一個(gè) connection 對(duì)象的實(shí)例變量,然后才能在它的基礎(chǔ)上建立recordset 對(duì)象或是 mand 對(duì)象來操作數(shù)據(jù)庫。所以,從安全性和代碼執(zhí)行效率方面考慮,我們將讀與寫數(shù)據(jù) 庫連接插入文件分別開來,分別命名為 []和[]。bid=XXX 重新以匿名身分登錄 帖子管理 張貼公告 友情鏈接管理 ?bid=XXX 論壇基本設(shè)定 版面管理 21 ASP網(wǎng)頁數(shù)據(jù)庫的連接 所有要進(jìn)行數(shù)據(jù)庫存取的 ASP 網(wǎng)頁都要以 DSNless 方式進(jìn)行數(shù)據(jù)庫連接,由此我們可以將執(zhí)行數(shù)據(jù)庫連接的 ASP 代碼單獨(dú)形成一個(gè)插入文件,通常插入文件都是以 [.inc]作為擴(kuò)展名,考慮到安全性的需要, 防止用戶直接輸入文件名下載此插入文件,所以我們?nèi)匀灰?[.asp]作為插入文件的擴(kuò)展名,比如,我們將一個(gè)用作數(shù)據(jù)讀操作的數(shù)據(jù)庫連接插入文件名命名為 [],代碼 如附錄 。 帖子 帖子 包含以下一些基本屬性:所屬版面,作者,標(biāo)題, 帖子 類型,所屬主貼,回復(fù)數(shù)量,點(diǎn)擊次數(shù),標(biāo)題圖像, 帖子 內(nèi)容, 帖子 書寫時(shí)間,最后一次更新 帖子 14 時(shí)間。另外,管理員也分為兩類,一類是超級(jí)管理員,具有管理和維護(hù)本論壇所有數(shù)據(jù)信息的權(quán)限,另一類是普通版主,只能管理與某版面相關(guān)的數(shù)據(jù)信息,可以用申請(qǐng)管理版面以及申請(qǐng)被批準(zhǔn)狀態(tài)來區(qū)分這兩類管理員,如果申請(qǐng)管理版面為零用申請(qǐng)被批準(zhǔn)通過,則此會(huì)員就為超級(jí)管理員,如果申請(qǐng)管理版面在本論壇存在且申請(qǐng)被批準(zhǔn)通過,則此會(huì)員就為版主管理員,否則,此會(huì)員仍為普通會(huì)員。其中,用戶名為用戶唯一標(biāo)志,不允許重名。 版主會(huì)員功能要求 通用功能: 帖子 管理、張貼公告、友情鏈接管理 超級(jí)用戶功能要求 通用功能:論壇基本設(shè)定、版面管理、版主會(huì) 員管理、普通會(huì)員管理 系統(tǒng)性能要求 對(duì)于 帖子 查看、發(fā)表 帖子 以及回復(fù) 帖子 這類頻繁發(fā)生的系統(tǒng)操作,要采取適當(dāng)?shù)募夹g(shù)優(yōu)化這類數(shù)據(jù)操作,以提高數(shù)據(jù)存取效率。高級(jí) 別的用戶可以繼承低級(jí)別用戶的公用功能。 SQL標(biāo)準(zhǔn)的確定使大多數(shù)數(shù)據(jù)庫廠家紛紛采用 SQL 語言作為其數(shù)據(jù)庫檢 索語言。pwd=xxx” DSNless 數(shù)據(jù)源方式:使用本方式連接數(shù)據(jù)庫,就必須自行提供 DSN 數(shù)據(jù)的相關(guān)信息,最重要的是驅(qū)動(dòng)程序。 ODBC 規(guī)范為應(yīng)用程序提供了一套高層調(diào)用接口規(guī)范和基本于動(dòng)態(tài)鏈接庫的運(yùn)行支持環(huán)境。 Microsoft Access 是理想的入門級(jí)產(chǎn)品, 它 提供 了大量的向?qū)?,可以輔助完成數(shù)據(jù)庫的創(chuàng)建和管理。因此關(guān)系型數(shù)據(jù)庫可以減小數(shù)據(jù)庫的體積,這對(duì)于大型的數(shù)據(jù)庫來說具有非常重要的意義。對(duì)于一個(gè)簡(jiǎn)單的“平面文件”的 數(shù)據(jù)庫來說,它僅包含了一個(gè)數(shù)據(jù)表格,而對(duì)一個(gè)“關(guān)系型”數(shù)據(jù)庫來說,它卻包含兩個(gè)或兩個(gè)以上的數(shù)據(jù)表格,表格的各字段之間存在這一種或多種關(guān)系(有時(shí)可以把這種關(guān)系叫做“鏈接”)。 ADO 的七個(gè)對(duì)象及四個(gè)數(shù)據(jù)集合相互的關(guān)系圖如下: ActiveX Data Object 關(guān)系圖如 圖 1所示 : 圖 1 ActiveX Data Object 關(guān)系圖 C on ne c t i on對(duì)象R e c or ds e t對(duì)象Exe c ut e 操作方法A c t i v e C on ne c t i on 屬性Er r or對(duì)象P a r a m e t e r對(duì)象C om m a nd對(duì)象F i e l d對(duì)象Er r or s數(shù)據(jù)集合P a r a m e t e r s數(shù)據(jù)集合A c t i v e C on ne c t i on 屬性S ou r c e 屬性Exe c ut e 操作方法F i e l ds數(shù)據(jù)對(duì)象 10 MS Access 數(shù)據(jù)庫 [9] 數(shù)據(jù)庫( Database)是一系列信息資源的集合。 9 ADO 提供的四個(gè)數(shù)據(jù)集合: [5] 1. Connection 對(duì)象包含 Errors 數(shù)據(jù)集合,在 Errors 數(shù)據(jù)集合中包含 數(shù)據(jù)源響應(yīng)失敗時(shí)所建立的 Error 對(duì)象。 4. RecordSet 對(duì)象負(fù)責(zé)瀏覽和操作從數(shù)據(jù)庫取出的數(shù)據(jù),換而言之,RecordSet 對(duì)象就 像 是一個(gè) 二維的數(shù)組,數(shù)組的每一行表示一個(gè)數(shù)據(jù)記錄,而每個(gè)數(shù)劇列包含一個(gè)或多個(gè)數(shù)據(jù)字段,即 Field 對(duì)象。 2. Command 對(duì)象負(fù)責(zé)對(duì)數(shù)據(jù)庫提供請(qǐng)求,也就是傳遞指定的 SQL 命令。必須說明,Session 對(duì)象只能適用于具備 Cookie 功能的瀏覽器。如果希望此對(duì)象實(shí)例可以跨多個(gè) ASP 網(wǎng)頁,就要用到 Session 對(duì)象保留該組件實(shí)例,直到Session 對(duì)象的運(yùn)行時(shí)間到了,或是在其他 ASP 網(wǎng)頁調(diào)用 Session 對(duì)象的 Abandon方法,此組件實(shí)例才會(huì)被釋放。換而言之, Request 對(duì)象通常包含了用戶端的相關(guān)信息,如瀏覽器的種類、表頭信息、表單參數(shù)及 cookies 等等。 5. ASP 可以將運(yùn)行結(jié)果以 HTML 的格式傳送至客戶端瀏覽器,因此 ASP 可以適用于各種瀏覽器。 其特點(diǎn)歸納如下: 1. ASP 可以和 HTML 或其他腳本語言 (VB Script 與 Java Script)互相嵌套。 完成 Web 服務(wù)器端的用戶管理、帖子管理、版面管理、數(shù)據(jù)庫管理、瀏覽和查找、短消息功能等設(shè)計(jì)、實(shí)現(xiàn)與完善以及整個(gè)實(shí)驗(yàn)網(wǎng)站的組織建立和測(cè)試工作 此系統(tǒng) 有以下四種類型的操作用戶:匿名用戶、普通用戶、版面管理員、超級(jí)管理員。采用 3Tier 軟件結(jié)構(gòu):表示層采用 HTML、JavaScript 或 VBScript 結(jié)合 CSS、 ActiveX 技術(shù)來編寫;事務(wù)邏輯層,考慮到本系統(tǒng)為通用 BBS 系統(tǒng),系統(tǒng)應(yīng)該具備較大的可伸縮性,應(yīng)該能適應(yīng)最基本應(yīng)用最廣泛的 WEB 平臺(tái),特別是個(gè)人用戶想在一些免費(fèi)主頁空間搭建 自己 的論壇,而這類免費(fèi)主頁空間通常只支持 ASP 來處理服務(wù)器端數(shù)據(jù)或數(shù)據(jù)庫,另外,通用系統(tǒng)應(yīng) 該具備較大的可擴(kuò)展性,目前, 技術(shù)發(fā)展較快,未來應(yīng)該能以較小的成本用 重寫本系統(tǒng),因此,本系統(tǒng)事務(wù)邏輯層設(shè)計(jì)采用 ASP 網(wǎng)頁;至于數(shù)據(jù)層,本系統(tǒng)采用最基本的 MS Access 數(shù)據(jù)庫系統(tǒng),視需要,系統(tǒng)作較小的改動(dòng)就可以移植到其它大型數(shù)據(jù)庫系統(tǒng) 5 本文討論的是一個(gè)基于 Web 的通用 BBS 網(wǎng)站,它具有 BBS網(wǎng)站應(yīng)該具有的所有功能。最常見的是分成三個(gè)部分:表示層、事務(wù)邏輯層和