天天看點

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

大家好,今天給大家介紹基于asp+access的學生論壇設計與實作,文章末尾附有本畢業設計的論文和源碼下載下傳位址哦。需要下載下傳開題報告PPT模闆及論文答辯PPT模闆等的小夥伴,可以進入我的部落格首頁檢視左側最下面欄目中的自助下載下傳方法哦

文章目錄:

  • 基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)
    • 1、項目簡介
    • 2、資源詳情
    • 3、關鍵詞:
    • 4、畢設簡介
    • 5、資源下載下傳

1、項目簡介

  1. 按照論壇的基本功能,論壇的開發可以歸結為Web開發技術和資料庫應用技術。目前主要的開發技術有ASP、ASP.NET、PHP、JSP等,本文主要采取ASP為開發技術,并使用了一些VBScript語言來實作論壇基本功能。目前常用的資料庫有MYSQL、Oracal等,在資料庫的選取上,為了簡化架設的實作,采取Microsoft公司的Access作為資料庫平台,這樣在單機上架設一個簡單的論壇幾乎不需要安裝任何程式。本文設計的流程是從系統的需求分析開始,确定系統的流程與設計,到子產品的劃分,再到資料加結構的設計,最後開始每個子產品的程式設計與開發。

2、資源詳情

項目難度:中等難度

适用場景:相關題目的畢業設計

配套論文字數:23045個字58頁

包含内容:整套源碼+完整畢業論文

3、關鍵詞:

論壇;Internet;JavaScript;ASP;資料庫

4、畢設簡介

提示:以下為畢業論文的簡略介紹,項目源碼及完整畢業論文下載下傳位址見文末。

第一章 系統功能設計

1.1 引言

省略

在論壇裡大家最熟悉的就是使用者浏覽論壇中已有的内容,針對别人的主題展開讨論,也可以發表自己的觀點供大家品評。同時為了防止使用者釋出一些不健康不合法的内容,需要有管理人員來對這些内容進行删除、修改。而且使用者想在論壇釋出資訊則要求他注冊,這樣來控制使用者釋出資訊和友善管理者操作使用者的資訊。論壇也要有多個版面和分區,用來區分各種文章的内容範疇,友善整理和管理。是以論壇的基本功能就是要實作使用者的資料庫管理和文章的資料庫管理,以及怎麼樣讓這些資料庫和網頁的操作聯系起來。

1.2 需求分析

要設計一個一個論壇,首先要分析論壇裡需要那些内容,以及各種内容之間的關系。

首先列出論壇常用的名詞:使用者、版面、公共資訊、文章、主題、積分、稱号、版主、注冊資訊、管理者、系統參數。

對于以上名詞可以精簡。主題是文章的一個特例、積分和稱号是使用者的一個屬性、版主是增加了權限的使用者,注冊資訊是使用者的具體屬性。

是以具體的對象有:使用者、版面、公共資訊、文章、管理者、系統參數。

具體的操作包括:管理者對使用者、文章、版塊的管理;客人和使用者的對版塊、文章的浏覽;客人的注冊;使用者的發帖、回帖、搜尋等操作。

把具體的對象和具體的操作相聯系,我們可以歸結出論壇基本操作的流程圖,如圖1-1。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

圖1-1 論壇基本功能流程圖

圖1-1中個将具體的對象和操作直覺的表達了出來,為了更具體的細化對象和操作的關聯,用來劃分開發的子產品,我們将對象與對象之間的關聯可以建立出一張表,對象如表1-1。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

表1-1中的對象是單向關聯,是指左側對象對上方對象的活動。×表示沒有關聯,√表示存在單向關聯。通過以上設計,論壇需要些什麼以及所需要的對象之間存在着怎麼的關系就有了基本的概念。

1.3 功能設計

表1-1中使用者關聯的對象是自身、版面、公共資訊、文章。分别根據使用者與這些對

象的聯系給出一個明确的菜單,如表1-2。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

版面、公共資訊、文章都沒有和其他對象的關聯,都屬于被動的對象,是被其他對象所操作的,是以針對它們的功能主要是有其他對象産生。版面和文章是有一定關系的,可以看作是對文章内容的歸類,類似檔案夾與檔案的關系,有時候可以認為版面是文章的一個屬性。

對于管理者的功能,應該認為管理者是論壇的特殊群體,工作是設定論壇參數規則和維護論壇的正常運轉。管理者可以和所有對象産生關聯,是以其功能設定也很豐富,如表1-3。

表1-3 管理者功能清單

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

對于管理者和使用者功能關系可以細化成以下幾個相關用例圖。

論壇設定參數,可以把設定一組參數作為一個方法,也可以把設定一個參數作為一個方法,如圖1-2。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

圖1-2 論壇對象的相關用例圖

各個版塊有浏覽清單和管理兩個操作,管理方法又包括了建立、修改和删除這3個子方法,如圖1-3。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

圖1-3 版塊對象的相關用例圖

文章有浏覽、發帖、回帖、搜尋和管理5種方法,浏覽方法又可以分清單和檢視2個子方法,管理方法又可分編輯、删除、置頂、轉移、加精華5個子方法,如圖1-4。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

圖1-4 文章對象的相關用例圖

使用者類有注冊、登陸和管理3個方法,管理方法又分為添加、删除、設定權限3個子方法,如圖1-5。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

圖1-5 使用者對象的相關用例圖

這樣,表1-2和1-3就分别有了各自的歸屬對象。

論壇一般存在兩種使用者:注冊使用者和管理者。使用者的權限是向下覆寫的,即上級權限包含下級權限。這樣論壇的基本功能就可以從各種需求中篩選出來了,即發帖、浏覽文章、回帖。基本功能就是構成論壇系統的必要功能,具備這些功能的Web系統即是論壇。

1.4 擴充功能設計

具備了發帖、浏覽文章、回帖的Web系統就構成論壇了,但是這樣的論壇很簡單,沒有吸引力,使用者使用起來也不會很舒服,無論是作為商業還是個人論壇都是沒有競争力的。是以需要為其添加一些更人性化的功能使内容更豐富。

用表格形式列出可能的擴充功能,如表1-4。

表1-4 擴充功能清單

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

添加了以上功能,論壇就顯得更具有親和力了,而且也更具有實用性。

第二章 系統架構與資料庫設計

2.1 功能子產品的劃分

子產品的劃分主要是按每一個對象的操作來歸類。論壇操作的對象在第一章裡歸納為使用者、版面、公共資訊、文章、管理者、系統參數這6個對象,是以就要針對這6個對象劃分功能子產品。

(1) 使用者:有兩個子產品,一個是使用者注冊、登陸、修改資訊等功能組合,是使用者對自身的操作;另一個是管理人員對使用者進行删除、授權的操作;如表2-1。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)
asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

通過以上分析,論壇的子產品劃分也就完成了。但如果要把整個論壇系統完整的架構出來,還要分析子產品與子產品之間的關系,把零散的功能子產品用一條主線串聯起來。對于論壇系統來說,聯系各個子產品的主線是使用者的權限,使用者能使用論壇的哪些功能是由使用者的權限決定的,論壇的每個功能都與相應的權限對應。同一類使用者使用的功能子產品。是以使用者為中心連接配接起來的。另外,操作同一類事物的功能子產品,也是互相關系的。

浏覽子產品與發帖回帖子產品、管理文章子產品關聯,是由論壇的系統流程決定的;管理版塊子產品與浏覽子產品關聯,是有文章與版塊的父子關系決定的,文章依附與版塊,先有版塊後有文章,文章必須發表在某個版塊中;管理使用者子產品與注冊登陸子產品關聯,是由同一類對象使用者決定的,注冊後獲得論壇的身份,成為使用者,所有的使用者需要接受管理者的管理,使用者登陸證明自己在論壇中的身份。分析了這些關系,我們可以得到論壇系統的整體架構,如圖2-1。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

圖2-1 論壇整體架構圖

對于使用者使用的子產品成為前台子產品,管理者使用的子產品稱為背景子產品。其劃分如圖2-2。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

圖2-2 功能子產品劃分

2.2 資料庫設計

論壇系統資訊的儲存一般是在檔案或者資料庫中,相比之下資料庫要簡單高效,能對論壇進行更好的控制,也能對資料提供一些嚴正和保護。是以目前流行的論壇都是使用的資料庫系統。使用資料庫的首先就是要設計資料庫的表結構,一個設計良好的資料庫結構可以提高效率、友善維護,而且對于可能的擴充也會留有餘地。

2.2.1 需要建立的資料表

為了更友善操作和維護,建立的資料表名都使用相關含義的因為單詞,為了差別于資料庫中可能出現的其他非表内容,在給每個表名加上一個辨別。根據對論壇功能的分析,可以建立16個資料表,如表2-6。

表2-6 論壇資料表

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

有些表是可以獨立的,但大多數表都是存在關聯的。其關聯一般都是通過主線使用者相關聯,或者是使用者ID,或者是使用者的其他資訊。是以也可以看到主線使用者的清單是相關資料項目最多的。

2.2.2 資料庫表結構的詳細設計

首先是使用者資訊表,使用者資訊是相關資訊最多的表。如表2-7。

表2-7 使用者資訊表(User_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

在使用者資訊表裡儲存的是所有在論壇注冊的使用者的資訊,使用者編号是使用者在論壇中的唯一辨別。其實使用者名也是不可重複的,但是使用編号作為主鍵可以讓查找起來更加友善,提高效率,而且編号也是與其他表關聯的主要字段。密碼和密碼答案是在使用者忘記密碼時驗證身份的保證,是以設定為不能為空。使用者名和密碼是登陸的唯一識别,郵件是為了友善聯系和某些可能的服務需要,是以也設定為非空。

表2-8是論壇中的版面資訊表。

表2-8 版面資訊表(Board_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)
asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

版面資訊表中依然是使用了版面編号做主鍵,一般都會用編号作為主鍵,這樣效率要更高些。上級版面編号是為了友善分層次找到各級版面。發帖數量、主題數量是指本版面的所有發帖數量和主題數量,而上級版面的數量是包括下級版面的所有發帖數量和主題數量的,今日發帖數和最後一帖的規則也相同。版面置頂主題資訊所包含的是該版面置頂的主題的編号。與版面相關最密切的是文章和主題,表2-9是論壇的主題資訊表。

表2-9 論壇主題資訊表(Topic_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)
asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)
asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)
asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

以上4個表是緊密關聯的。為什麼單獨建立主題資訊表而不把主題當成文章的特例來篩選,是因為主題會有很多回複,而在論壇文章搜尋時如果搜尋要過濾一次文章将會速度很慢,而且使用者浏覽主題時也不必要看到文章的全部内容。表2-9裡用到了4個外鍵,如果在其他表中該字段沒有的資料,在主題資訊表中也是不能有的。發帖使用者名和發帖使用者編号來源于使用者資訊表,可以算是資料備援,是在查詢使用者發帖時具有更高的效率。

表2-10也包含了4個外鍵,其中主題編号是用來關聯主題資訊表的。層數記錄的是該文章是主帖還是從帖,排序數是對同一層次的文章進行排序的。簽名辨別和電子郵件辨別是記錄使用者是否在此帖中開放自己的簽名和電子郵件。

表2-11記錄了投票類文章的投票部分的内容。由于投票内容和文章資訊不一樣,是以單獨建立一張表。後面幾個U開頭的字段是限制字段,可以對于投票的使用者做一些資格上的限制,防止新使用者反複注冊投票。

表2-12記載了沒個投票使用者的投票情況。投票編号和使用者編号都是外鍵。投票選項字段和表2-11中的投票内容字段想關聯。

接着設計管理者資訊表,如表2-13,記載了管理者的資訊。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

管理者資訊表和使用者資訊表是有關聯的,外鍵是使用者資訊表裡的使用者名,是以論壇的管理人員也是論壇的注冊使用者。這樣可以讓管理人員在修改論壇參數後可以很直覺的看到修改後的狀态。

公共資訊表記載的是論壇中釋出的公共資訊,與版面等資訊是關聯的。如表2-14。

表2-14 公共資訊表(BbsNews_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

表2-14中版面編号和釋出使用者名是外鍵,但版面編号可以為0,表示是在論壇首頁釋出的資訊。背景音樂是讓大家讀枯燥的公告時有親切感,不至于覺得無聊。

收藏夾資訊表是針對使用者的一個資訊表,如表2-15。

表2-15 收藏夾資訊表(BookMark_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

收藏夾是為了給使用者帶來友善的,這裡收藏的是網頁的位址,其實也可以做成收藏主題的編号,但因為可能收藏版面等容易編号混亂。

短消息資訊表記錄使用者之間的短消息,見表2-16。

表2-16 短消息資訊表(Message_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

短消息是使用者之間私下交流的内容,是以必須保留兩者之間的資訊。發送和接收者都是使用者資訊表關聯的外鍵。删除辨別設定兩個是防止一方删除操作後另一方看不到的情況。

使用者的好友資訊表見表2-17。

表2-17 使用者好友清單(Friend_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

使用者好友清單是使用者用來互相交流的,是論壇感覺更人性化。記錄好友使用者名是因為使用者往往記得這個好友名字卻不記得編号,是以這裡用使用者名做記錄而不是編号。

線上使用者表是顯示即時在先的使用者,可以友善使用者見看到線上情況而更及時的交流。如表2-18。

表2-18 線上使用者表(Online_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

這裡的主鍵是DOUBLE類型,是因為使用者的活動很多,資料量存在溢出的可能。使用者名、編号和類型都是來自使用者資訊表的外鍵。浏覽器類型記錄了浏覽器和作業系統的類型。

檔案上傳表是文章表的一個附表,它記錄了在文章中的附件等資訊,見表2-19。

表2-19 使用者資訊表(User_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)
asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

檔案上傳表記錄了使用者上傳附件的内容。使用者名、使用者編号、版面編号等都是外鍵。檔案名字段由于使用者上傳的檔案可能同名,是以采取系統自動命名的方式,缺點是如果同一個檔案分包上傳,則下載下傳後需要重新命名後才能恢複原檔案。檔案類型是檔案真正的類型,而類型編号是論壇檔案類型,表示下載下傳與顯示。

幫助資訊表是很重要的表,是用來介紹整個論壇的使用的,見表2-20。

表2-20 幫助資訊表(Help_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

幫助資訊表是個獨立的表,幫助資訊對于論壇是很重要的,幫助檔案寫得好,使用者就會上手快,論壇就會更有親切感。雖然現在的網絡使用者對論壇都并不陌生,但良好的幫助檔案依然可以展現出論壇在設定上的到位。因為幫助檔案分使用者和管理者的,所有添加一個背景類型來差別幫助檔案的顯示位置。

論壇日志表是用來記錄論壇行為的,一旦論壇出現了問題,可以通過這個表來跟蹤一些活動,分析出問題的所在。見表2-21。

表2-21 論壇日志表(Log_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

為了保證日志記錄資訊的詳實,是以日志表需要設計得很全面。文章編号和版面編号是外鍵,記錄了論壇中對文章資訊進行操作的資訊,當非文章操作時,這兩個字段不是必須的。

系統資訊表關系到整個論壇是否可以正常運作,是核心表,見表2-22。

表2-22 系統資訊表(Setup_T)

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)
asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

雖然是核心表,但是每個字段的内容都很簡單。論壇設定字段存儲了論壇名稱、位址、聯系方式等。過濾詞設定比較有用,當使用者發表一些禁止的詞彙時可以通過過濾讓這些詞彙不顯示在論壇上。其他的一些字段都是記錄了一些論壇的狀态。

論壇的資料庫是非常重要的,它決定了整個論壇最終的使用是否可行。

第三章 基本設計

3.1 論壇首頁設計

當使用者打開論壇時,首先看到的是論壇首頁,使用者從首頁可以看到和論壇相關的内容,發帖數、使用者數量和主要版面的情況等。首先這個頁面應該盡量的美觀,操作截面也要看起來簡單易用而且具有實用性。

一般論壇的首頁分4個部分,上面是論壇的頂部LOGO,一般這個要展現出論壇的一個主題;接着是論壇的導航部分,包括了使用者狀況和論壇了基本狀況,且這兩個狀況應該左右分開;再下面就是論壇主題部分的各個版面資訊;最下面就是論壇使用者線上狀況論壇目前的情況。

基本上可能變動大的隻有版面部分,是以其他變動小的部分可以做成公用檔案,讓其他頁面可以重用。這3部分不寫在檔案裡,而是直接寫進資料庫中。

3.2 資料庫連接配接函數

資料庫連接配接在論壇運作中是必不可少的,把這部分單獨做成一個函數,在需要的時候隻需要調用這個函數就可以了,而不用每次去寫連接配接程式,這種複用可以讓操作更加友善快捷。

選擇的Access作為資料庫,功能不強大,不能讓很多人連接配接,但是可以省掉很多設定,對機器要求也相對要低得多,适合用PC機架設論壇。ASP中與資料相關緊密的是ADO,要讓ADO對象能存取資料庫,最重要的東西是OLE DB和ODBC的驅動程式,必須具備對應資料庫的其中一種驅動程式,ADO對象才能進行存取。因為根據Microsoft公司的說法,OLE DB驅動程式的執行效能比ODBC要好,是以選擇用OLE DB驅動程式。

利用ADO的Connection來建立同資料庫的連接配接。建立ADODB.Connection對象,使用此對象的Open方法打開資料庫。用Access在論壇路徑下建立一個資料庫存儲路徑“data”,然後建立一個名為mybbs7.mdb的資料庫,建立之前資料庫設計中的表。利用Microsoft公司的OLE DB機制連接配接Access,用OLE DB不用建立ODBC就可以直接連接配接Access資料庫。見程式3-2。

程式3-2 Access資料庫連接配接

Sub ConnectionDatabase
	Dim ConnStr
	Db=”data/mybbs7.mdb”
	ConnStr=”Provider=Microsoft.jet.OLEDV.4.0”Data Source=”& Server.MapPath(db)
	Set conn=Server.CreateObject(“ADODB.Connection”)
	Conn.open ConnStr
	if Err Then
		Err.Clear
		Set Conn=Nothing
		Response.Write ”資料庫連接配接出錯,請檢查連接配接字元串。”
		Response.End
	End if
End Sub
           

Sub聲明了函數ConnectionDatabase,End Sub結束這個函數。Dim聲明了變量ConnStr,這個變量是用來存儲連接配接資料庫資訊的。變量Db聲明了資料庫檔案所在的路徑。為ConnStr指派是聲明OLE DB連接配接資料庫的方式,Data Source後面跟的是資料庫檔案所在的路徑。Server.MapPath是ASP内置Server對象一個函數,用來取得網站目錄下檔案的絕對路徑。7~12行是一個判斷錯誤的資訊,如果連接配接出錯,Asp的Err對象判斷系統給出錯誤的存在,然後清除。

第四章 子產品的實作

4.1 使用者子產品

4.1.1 使用者的登陸

首先看使用者的登陸。在使用者資訊表裡使用者名和使用者密碼字段是用來驗證使用者身份的,用這兩個字段來寫驗證使用者登陸的程式。

登陸頁面命名為Login.asp,這個頁面包含了輸入使用者名和密碼、Cookie選項、和隐身登陸選項。隐身登陸隻是一個判斷登陸狀态的辨別。主要是驗證使用者身份和把使用者資訊寫入Cookie。

首先看驗證使用者身份的程式,如程式4-1。

程式4-1 驗證使用者身份程式(Login.asp)

sqlstr=" UserName='"&username&"'"
Sql="Select UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,
UserWidth,UserHeight,JoinDate,LastLogin,UserLogins,Lockuser,Userclass,UserGroupID,
UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,
UserHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday "
	Sql=Sql+" From [Dv_User] Where "&sqlstr&""
	set rsUser=Mybbs.Execute(sql)
	If rsUser.eof and rsUser.bof Then
		ChkUserLogin=false
		Exit Function
	Else
		iMyUserInfo=rsUser.GetString(,1, "|||", "", "")
		rsUser.Close:Set rsUser = Nothing
	End If
	iMyUserInfo = "Mybbs|||"& Now & "|||" & Now &"|||"& Mybbs.BoardID &"|||"& iMyUserInfo 
&"||||||Mybbs"
	iMyUserInfo = Split(iMyUserInfo,"|||")
	If trim(password)<>trim(iMyUserInfo(6)) Then
			ChkUserLogin=false
	ElseIf iMyUserInfo(17)=1 Then
			ChkUserLogin=false
	ElseIf iMyUserInfo(19)=5 Then
			ChkUserLogin=false
	Else
			ChkUserLogin=True
			Session(Mybbs.CacheName & "UserID") = iMyUserInfo
			Mybbs.UserID = iMyUserInfo(4)
			RegName = iMyUserInfo(5)
			Article = iMyUserInfo(8)
			UserLastLogin = iMyUserInfo(15)
			UserClass = iMyUserInfo(18)			
			GroupID = iMyUserInfo(19)
			TitlePic = iMyUserInfo(34)
			If Article<0 Then Article=0
	End If
           

首先是一個查詢使用者身份的SQL語句,輸入某個使用者後将從資料表User_T中查找該使用者。set rsUser=Mybbs.Execute(sql)一句是用來執行這條SQL語句,同時傳回一個包含了查詢資訊的記錄集。If rsUser.eof and rsUser.bof Then一句判斷使用者資訊是否存在。如果不為空,就将把資料集的資訊寫入儲存使用者資訊的字元串中。If trim(password)<>

trim(iMyUserInfo(6)) Then一句判斷使用者密碼是否和資料庫中的使用者密碼相同。

Cookie是對于一些有限制注冊使用者才能看的頁面用來識别是否登陸的。是由Web頁伺服器置于你硬碟上的一個很小的文本檔案,一般不超過4KB。程式4-2是把使用者資訊寫入Cookie的程式。

程式4-2 把使用者資訊寫入Cookie(Login.asp)

select case usercookies
	case "0"
		Response.Cookies(Mybbs.Forum_sn)("usercookies") = usercookies
	case 1
   		Response.Cookies(Mybbs.Forum_sn).Expires=Date+1
		Response.Cookies(Mybbs.Forum_sn)("usercookies") = usercookies
	case 2
		Response.Cookies(Mybbs.Forum_sn).Expires=Date+31
		Response.Cookies(Mybbs.Forum_sn)("usercookies") = usercookies
	case 3
		Response.Cookies(Mybbs.Forum_sn).Expires=Date+365
		Response.Cookies(Mybbs.Forum_sn)("usercookies") = usercookies
	end select
	Response.Cookies(Mybbs.Forum_sn).path = Mybbs.cookiepath
	Response.Cookies(Mybbs.Forum_sn)("username") = regname
	Response.Cookies(Mybbs.Forum_sn)("userid") = Mybbs.UserID
	Response.Cookies(Mybbs.Forum_sn)("password") = TruePassWord
	Response.Cookies(Mybbs.Forum_sn)("userclass") = userclass
	Response.Cookies(Mybbs.Forum_sn)("userhidden") = userhidden
           

Response是ASP的一個内置對象,Cookies是這個對象用來向浏覽器寫Cookie檔案的集合。Cookies集合設定Cookie的值。若指定的Cookie不存在,則建立它,若存在。則設定新的值并且将舊值删除。Response.Cookies(Mybbs.Forum_sn).Expires=Date+1是用來儲存使用者選擇的Cookie儲存時間的,在選擇時間内再次來論壇則可以不用再登陸了。

4.1.2 使用者的注冊

使用者注冊也關系到資訊的驗證,必須确定一些資訊符合一定的規則和要求。使用者注冊後可以修改自己的資訊和密碼,如果忘記密碼還有相關取回密碼的操作。

首先就是使用者的注冊,命名為reg.asp,主要是對使用者所填寫資訊的檢測。主要包括字段是否為空,是不是滿足長度、字元方面的要求;輸入E-mail是否正确,主要判别是@字元是否存在和存在的位置;兩次輸入的密碼是否一緻;使用者名是否已經存在,電子郵件是否被使用。

注冊首先是要向資料庫送出你所填寫的資訊,這些所填寫的資訊大多是表單的形式,可以使用Request.form()來擷取表單内的文本框。Request是ASP的内置對象,Form是Request的一個獲得表單的集合。

(1) 使用者名的驗證:在擷取的同時就可以對檔案長度等進行檢測,使用Cint()函數進行強制執行整數運算判斷是否在可接受的範圍之内。

Cint(Mybbs.Forum_Setting(41)) or strLength(Request.form("name"))
<Cint(Mybbs.Forum_Setting(40))
使用InStr函數來判斷是否存在非法的字元。
	If Instr(username,"=")>0 or Instr(username,"%")>0 or Instr(username,chr(32))>0 or
   Instr(username,"?")>0 or Instr(username,"&")>0 or Instr(username,";")>0 or Instr(username,",")>0
   or Instr(username,"'")>0 or Instr(username,",")>0 or Instr(username,chr(34))>0 or
 Instr(username,chr(9))>0 or Instr(username,"")>0 or Instr(username,"$")>0
           

(2) 密碼的驗證:主要驗證的是密碼的長度,采用Len()函數,可以傳回字元串中字元的個數。參數可以是字元串也可以是變量名。

If Request.form("psw")="" or len(Request.form("psw"))>10 or len(Request.form("psw"))<6 Then
			ErrCodes=ErrCodes+"<li>"+template.Strings(13)
           

(3) 電子郵件的驗證:郵件的位址一般是“使用者名@域名”,采用VBScript的函數Split(),可以傳回一個一維數組。在參數部分可以設定“@”為字元串的辨別界限。用這個符号來拆分電子郵件位址,形成數組。UBound()函數傳回了數組維數的最大可用下标。

Dim names,name,i,c
Is ValidEmail=true
Names=Split(email,”@”)
If UBound(names)<>1 then
	Is VailEmail=false
	Exit function
End If
           

而使用者的注冊資訊如果是合法的則在送出注冊資訊後要将這個注冊資訊插入到資料庫中去,可以使用Recordset對象。

set rs=Server.CreateObject(“ADODB.Recordset”)
sql=”select * from [User_T]
rs.open sql,conn,2,3
rs.addnew
rs(“Username”)=username
rs(“Userpassword”)=password
rs(“UserEmail”)=useremail
rs(“Userclass”)=userclass
rs(“TitlePic”)=titlepic
rs.update
rs.close
set rs=nothing
           

省略

4.2 版面與公共資訊子產品

4.2.1 版面浏覽

版面浏覽是指版面的清單,版面有層次之分,一般以兩層的方式顯示。在一級版面下,依次顯示子版面。可以使用幾個函數來完成,如程式4-5。

程式4-5 版面浏覽函數

‘函數一(獲得某版面下的子版面):

Public Function ReloadBoardInfo(lBoardID)
		If lBoardID=0 Then Exit Function
		Dim Rs
		Set Rs=Execute("select BoardID,BoardType,ParentID,ParentStr,Depth,RootID,Child,readme,
BoardMaster,PostNum,TopicNum,indexIMG,todayNum,boarduser,LastPost,Sid,Board_Setting,
Board_Ads,Board_user,IsGroupSetting,BoardTopStr,BoardID As TempStr,BoardID As TempStr1,
BoardID As TempStr2,BoardID As TempStr3,cid,BoardID As TempStr4 from Dv_board where
    BoardID="&lBoardID)
  			If Not Rs.Eof Then
  				Name = "BoardInfo_" & lBoardID
   				Value = Rs.GetRows(1)
  			Else
  				'自動修正所有版面的boards數
  				Call ReloadAllBoardInfo()
  				'Response.Redirect "index.asp"
  			End If
  		Rs.Close
  		Set Rs = Nothing
 	End Function
	‘函數二(自動修正所有版面的boards數)
	Public Sub ReloadAllBoardInfo()
		Dim Rs,Boards
		Set Rs=Execute("Select BoardID From Dv_Board Order By RootID,Orders")
		If Not Rs.Eof Then
			Boards=Rs.GetString(,-1, "",",","")
			Boards=Left(Boards,Len(Boards)-1)
		End If
		Rs.close:Set Rs=Nothing
		Execute("Update dv_Setup Set Forum_Boards='"&Boards&"'")
		ReloadSetupCache Boards,27
	End Sub
           

Value = Rs.GetRows(1)一句用到了GetRows()方法,其作用是将Recordset對象的多個記錄檢索到數組中。GetRows可以帶3個參數,這裡隻用到了第一個參數。在調用了GetRows後,下一個未讀取的記錄就成了目前記錄。如果沒有其他記錄,則EOF的屬性将被設定成True。

4.2.2 公共資訊子產品

公共資訊有兩類,一類是可以在版面的頂端可以看到的論壇資訊,一類是由使用者發起的在各個版面的資訊,他的功能類似于廣播,稱之為小字報。一般公告具有時效性,要求隻有管理者才能釋出,而版主可以在其負責的版區釋出。小字報則可有各個會員釋出,且版主可以管理這些小字報。釋出公告和文章的原理是一樣的,而隻需要識别使用者的身份來判斷是否有釋出和管理權限。如程式4-6。

程式4-6 判斷使用者身份程式(announcements.asp)

程式一:

Select case UserGroupID
		Case 4  Vipuser=True
		Case 3  Boardmaster=True
		Case 2  Superboardmaster=True
		Case 1  Master=True
	End Select
           

程式二:

If Mybbs.Master Then

Mybbs. Boardmaster=True

ElseIf Mybbs. Superboardmaste Then

Mybbs. Boardmaster=True

ElseIF Mybbs.UserGroupID=3 And Not Trim(Mybbs. BoardmasteList)=”” Then

IF InStr(“|”&lcase(Mybbs. BoardmasteList)&”|”,”|”&lcase(Mybbs.Membername)&”|”)>0 Then

Mybbs. Boardmaste=True

End If

End If

注意UserGroupID和Mybbs.Membername兩個變量,因為當使用者登陸都其登陸資訊會寫如Cookie,這裡面的變量資訊就是從Cookie裡面獲得的。

4.3 文章子產品

一個論壇最重要的是資料,資料部分最重要的隻有兩個,一個是使用者資料,另一個就是文章資料。而文章是一個論壇存在的根本,是以非常重要。

4.3.1 釋出、修改、删除文章

對于釋出、修改和删除文章,釋出是重點,修改文章和釋出文章是差不多的,而删除文章隻需要多資料庫的文章ID實行删除操作,相對也比較簡單。釋出文章的功能很多,使用心情圖檔和表情圖檔,正文部分可以自己定義喜歡的格式,還有使用各種UBB代碼。

文章的正文部分可以通過一些代碼插圖圖檔、Flash等各種東西,而且可以自定義字型、格式、顔色等,讓文章看起來更豐富多彩。其實這裡并沒有提供HTML功能,而是用到了UBB碼。UBB代碼是HTML的一個變種,是Ultimate Bulletin Board(國外的一個BBS程式)采用的一種特殊的TAG。為了避免使用者無意或有意的使用HTML代碼對論壇進行攻擊,一般論壇是禁止HTML代碼的,但會開放一些自定義的Tag标簽,類似與HTML中的Tag,這樣就既可以使用一些等同于HTML代碼的功能,又避免了論壇受到惡意的攻擊。一般我們自定義的這些Tag叫做UBB代碼。

省略

第五章 論壇的架構

5.1 安裝環境和參數設定

省略

5.2 運作論壇

配置完以上參數就可以通路論壇了。打開IE浏覽器輸入之前設定的IP位址,或者直接屬于localhost,就可以進入論壇首頁面。這裡要注意資料庫的連接配接檔案是CONN.ASP檔案,如果要更改資料庫的名稱,或者更改資料庫路徑都要在這個配置檔案裡更改相應的設定。

通路論壇首頁如圖5-5。

asp畢業設計——基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)——學生論壇基于asp+access的學生論壇設計與實作(畢業論文+程式源碼)

圖5-5 論壇首頁

使用管理者登陸後,可以看到管理選項,進入時要再次輸入密碼。這個密碼可以和登陸密碼不同。管理者使用者名為admin,密碼為admin888,背景密碼相同。可以更改論壇相關顯示資訊。

第六章 結論

本文主要說明了ASP論壇的設計和Access資料庫的設計和實作,運用的ASP Web資料庫技術具有強大的功能和普遍的适用性。ASP技術發展已經有許多年了,現在也有各種其他的更安全穩定的技術,如JSP、PHP等。ASP作為可以直接應用于頁面的技術仍然有他的優勢,在各種網絡應用領域依然很有實用性,也是Web設計的基礎技術。Access作為資料庫的功能是相當差的,但是在作為最為流行的Office系統的元件,擁有使用簡單,平台架設友善和普及性強的特點,作為一般學生論壇或者個人論壇其功能也是足夠的。本文的主要是說明如何設計資料庫已經如何将頁面和資料庫進行連接配接,而且這裡的資料庫也可以更換成SQL等進階資料庫進行應用,隻需要修改資料庫的連接配接函數就可以做到資料庫的轉換。通過研究和設計工作,對于Web程式設計有了更深入的了解,對掌握和運用ASP和資料庫的應用方面也有了更進一步的提高,對于今後的對于其他技術的深入和研究也打好了良好基礎。

參考文獻

[1]歐陽周,劉道德。理工類學生專業論文導寫。長沙:中南大學出版社 2000

[2]劉小華,任廷奇 畢業論文寫作指導 北京 科學出版社 2004

[3]黃明,梁旭 Asp資訊系統設計與開發執行個體 北京 機械工業出版社 2004

[4]黃斯偉。HTML4.0動态網頁制作。北京:人民郵電出版社, 1999

[5]孫麗君, 吳紅普. ASP程式設計基礎及應用執行個體集錦 [M]. 北京: 人民郵電出版社. 2001 [6]陳會安. ASP網頁制作徹底研究[M]. 北京:人民郵電出版社. 2001 [7] Richard Anderson Chris Blexrud. ASP 進階程式設計[M]. 北京: 機械工業出版社.2001 [8]李瑞旭. ASP執行個體教程[M]. 北京: 中國電力出版社. 2001 [9]馮能山, 李其藝. --輕松學習ASP網絡實用程式設計 http://www.china-pub.com/computers/common/info.asp?id=4904[M]. 北京: 清華大學出版社 .2002 [10]鄧文淵, 陳惠貞, 陳俊榮. ASP與網頁資料庫設計 [M]. 北京 中國鐵道出版社. 2001 [11]張海藩.軟體工程導論(修訂版). 北京:清華大學出版社 2002 [12]張海藩,牟永敏。面向對象程式設計實用教程。 北京 清華大學出版社 2001

緻 謝

省略

附錄A ASP的介紹

省略

附錄B ADO對象

省略

5、資源下載下傳

本項目源碼及完整論文如下,有需要的朋友可以點選進行下載下傳。如果連結失效可點選下方卡片掃碼自助下載下傳。

序号 畢業設計全套資源(點選下載下傳)
本項目源碼 基于asp+access的學生論壇設計與實作(源碼+文檔)_asp_BS架構_學生論壇.zip