




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(jì)(論文)電子論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)論文作者姓名:申請學(xué)位專業(yè):申請學(xué)位類別:指導(dǎo)教師姓名職稱:論文提交日期:電子論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘 要電子論壇即BBS已經(jīng)是互聯(lián)網(wǎng)上的一種極為常見的互動交流效勞。論壇可以為網(wǎng)友提供開放性的分類討論區(qū)專題效勞,網(wǎng)友們可以在此發(fā)表自己的觀感,交流某些技術(shù),經(jīng)驗(yàn)等。論壇也可以作為用戶和商家交流的渠道,商家也可以在此答復(fù)用戶提出的問題或發(fā)布某些消息。本系統(tǒng)使用ASP進(jìn)行開發(fā),數(shù)據(jù)庫采用Microsoft SQL Server 2000。本文描述了電子論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。首先對系統(tǒng)的需求進(jìn)行了分析,建立系統(tǒng)工作流程圖,設(shè)計(jì)系統(tǒng)數(shù)據(jù)庫,對數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行了詳細(xì)分析
2、。然后劃分系統(tǒng)功能模塊,最后詳細(xì)描述了各個(gè)功能模塊實(shí)現(xiàn)的方法,并給出相應(yīng)代碼。關(guān)鍵詞:電子論壇系統(tǒng);ASP;SQL Server 2000The Design and Implementation of BBSAbstractBBS as an electronic forum on the Internet is a very common interaction services. Forum provides an open platform to discuss one subject amony netizens . Netizens can express their impres
3、sions and communicate technologies and experience. It also can be used as a channel for the communication between customers with businessmen.The system is developed with ASP and Microsoft SQL Server 2000. In this paper, how to design and implement a BBS is introduced. First, it analyzes the demands
4、for this system, establishes system flowchart, designs system database and analyzes the database structure. Second, it introduces the modules. The way of implementation of each modules is introduced, and the source codes are showed in the end.Key words: BBS; ASP; SQL Server 2000 目 錄論文總頁數(shù):32頁 TOC o 1
5、-3 h z u HYPERLINK l _Toc169503513 1引言 PAGEREF _Toc169503513 h 1 HYPERLINK l _Toc169503514 1.1課題背景 PAGEREF _Toc169503514 h 1 HYPERLINK l _Toc169503515 1.2國內(nèi)外研究現(xiàn)狀 PAGEREF _Toc169503515 h 1 HYPERLINK l _Toc169503516 1.3本課題的研究意義 PAGEREF _Toc169503516 h 1 HYPERLINK l _Toc169503517 2系統(tǒng)分析 PAGEREF _Toc1695
6、03517 h 1 HYPERLINK l _Toc169503518 2.1系統(tǒng)需求分析 PAGEREF _Toc169503518 h 1 HYPERLINK l _Toc169503519 2.2系統(tǒng)功能描述 PAGEREF _Toc169503519 h 2 HYPERLINK l _Toc169503520 2.2.1 主要功能 PAGEREF _Toc169503520 h 2 HYPERLINK l _Toc169503521 2.2.2 論壇擴(kuò)展功能 PAGEREF _Toc169503521 h 4 HYPERLINK l _Toc169503522 3系統(tǒng)設(shè)計(jì) PAGERE
7、F _Toc169503522 h 4 HYPERLINK l _Toc169503523 3.1功能模塊 PAGEREF _Toc169503523 h 4 HYPERLINK l _Toc169503524 3.2數(shù)據(jù)庫設(shè)計(jì) PAGEREF _Toc169503524 h 6 HYPERLINK l _Toc169503525 4系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc169503525 h 10 HYPERLINK l _Toc169503526 4.1首頁 PAGEREF _Toc169503526 h 10 HYPERLINK l _Toc169503527 4.2數(shù)據(jù)庫連接函數(shù) PAGE
8、REF _Toc169503527 h 11 HYPERLINK l _Toc169503528 4.3用戶模塊 PAGEREF _Toc169503528 h 11 HYPERLINK l _Toc169503529 4.3.1 用戶登錄 PAGEREF _Toc169503529 h 11 HYPERLINK l _Toc169503530 4.3.2 用戶注冊 PAGEREF _Toc169503530 h 13 HYPERLINK l _Toc169503531 4.3.3 與其他用戶聯(lián)系 PAGEREF _Toc169503531 h 16 HYPERLINK l _Toc16950
9、3532 4.3.4 找回密碼 PAGEREF _Toc169503532 h 17 HYPERLINK l _Toc169503533 4.3.5 用戶登錄添加驗(yàn)證碼 PAGEREF _Toc169503533 h 17 HYPERLINK l _Toc169503534 4.4版面/公共信息模塊 PAGEREF _Toc169503534 h 19 HYPERLINK l _Toc169503535 4.4.1 版面模塊 PAGEREF _Toc169503535 h 19 HYPERLINK l _Toc169503536 4.4.2 公共信息模塊 PAGEREF _Toc1695035
10、36 h 20 HYPERLINK l _Toc169503537 4.5帖子模塊 PAGEREF _Toc169503537 h 20 HYPERLINK l _Toc169503538 4.5.1 發(fā)布/刪除/修改帖子模塊 PAGEREF _Toc169503538 h 20 HYPERLINK l _Toc169503539 4.5.2 帖子瀏覽模塊 PAGEREF _Toc169503539 h 25 HYPERLINK l _Toc169503540 4.5.3 帖子搜索模塊 PAGEREF _Toc169503540 h 25 HYPERLINK l _Toc169503541 4
11、.5.4 其它功能 PAGEREF _Toc169503541 h 26 HYPERLINK l _Toc169503542 4.6管理員模塊 PAGEREF _Toc169503542 h 26 HYPERLINK l _Toc169503543 4.6.1 用戶管理 PAGEREF _Toc169503543 h 26 HYPERLINK l _Toc169503544 4.6.2 版面管理 PAGEREF _Toc169503544 h 26 HYPERLINK l _Toc169503545 4.6.3 帖子管理 PAGEREF _Toc169503545 h 26 HYPERLINK
12、 l _Toc169503546 4.6.4 數(shù)據(jù)庫備份和恢復(fù) PAGEREF _Toc169503546 h 26 HYPERLINK l _Toc169503547 結(jié) 論 PAGEREF _Toc169503547 h 28 HYPERLINK l _Toc169503548 參考文獻(xiàn) PAGEREF _Toc169503548 h 30 HYPERLINK l _Toc169503549 致 謝 PAGEREF _Toc169503549 h 31 HYPERLINK l _Toc169503550 聲 明 PAGEREF _Toc169503550 h 32 引言課題背景論壇效勞已經(jīng)
13、是互聯(lián)網(wǎng)上的一種極為常見的互動交流效勞。論壇可以為網(wǎng)友提供開放性的分類討論區(qū)專題效勞,網(wǎng)友們可以在此發(fā)表自己的觀感,交流某些技術(shù),經(jīng)驗(yàn)?zāi)酥寥松母形蚺c憂歡,亦可以作為用戶和商家交流的渠道,商家也可以在此答復(fù)用戶提出的問題或發(fā)布某些消息。國內(nèi)外研究現(xiàn)狀 BBS起源于20世紀(jì)初。最初,論壇只是用于發(fā)布公共信息和討論問題的在線交流平臺;后來,隨著網(wǎng)絡(luò)的普及,論壇的功能也越來越豐富,不僅僅可以發(fā)表文字,更是可以使用多媒體,受到了廣闊網(wǎng)民的歡送。因此,商業(yè)網(wǎng)站對論壇重視起來,紛紛在自己的網(wǎng)站上開辟論壇,作為與網(wǎng)民交流的園地,同時(shí)在線技術(shù)支持和在線效勞也在論壇中開展起來。本課題的研究意義隨著互聯(lián)網(wǎng)技術(shù)的迅
14、猛開展,網(wǎng)絡(luò)給人們帶來了很多便利,比方人們借助于網(wǎng)絡(luò)進(jìn)行相互交流變得更加方便。電子論壇也稱為BBS,BBS是Bulletin Board System的縮寫,意即電子公告牌,一種在Internet上常見的用于信息效勞的Web系統(tǒng),它的主要效勞是用來幫助瀏覽者相互溝通,吸引用戶,效勞用戶的。技術(shù)的開展一日千里,尤其是Web開發(fā)技術(shù)。早年間,我們還只能用靜態(tài)的HTML編寫靜態(tài)的網(wǎng)站,毫無交互性可言。隨著技術(shù)的飛速開展,我們有了動態(tài)的HTMLDHTML,然后有了腳本Script,腳本有很多種,這些都伴隨著早期的Web開發(fā)者走了很長,很苦的日子。到了21世紀(jì),Web的開發(fā)者們迎來了幸福的生活,Micr
15、osoft,Sun等公司相繼推出了強(qiáng)大,快捷的ASP,PHP,JSP和ASP.NET等開發(fā)技術(shù),我們可以使用多種編程語言來進(jìn)行開發(fā),大大提升了網(wǎng)站開發(fā)的效率,質(zhì)量。我們盡管可以說哪一種技術(shù)是最流行的,但是很難說哪一種技術(shù)是最好的,每一種技術(shù)都在它最對口的應(yīng)用上。對于電子論壇系統(tǒng),我選擇了ASP技術(shù),它同樣可把我們想要的功能很好的實(shí)現(xiàn)。系統(tǒng)分析系統(tǒng)需求分析首先找出論壇針對的對象,得出一個(gè)簡潔的例表:用戶:論壇的使用人員,進(jìn)行某些操作時(shí)需要注冊。版面:說明發(fā)言內(nèi)容的類型。公共信息:與論壇相關(guān)的信息。帖子:論壇中單個(gè)觀點(diǎn)的討論。管理員:與論壇效勞的人員。論壇的對象不是孤立的,它們是緊密聯(lián)系的,下面是
16、論壇各個(gè)對象之間的關(guān)聯(lián)表,關(guān)聯(lián)是單向的,是指左側(cè)對象對上方對象的活動。無關(guān)聯(lián)的用表示,如果兩者只要單向關(guān)聯(lián),那么在另一個(gè)對象關(guān)聯(lián)時(shí)用表示。表1 各對象之間的關(guān)系表用戶版面公共信息帖子管理員用戶注冊 修改 瀏覽 聯(lián)系瀏覽瀏覽 發(fā)布瀏覽 發(fā)布 修改 刪除版面公共信息帖子管理員刪除 授權(quán)添加 刪除 修改添加 刪除 修改添加 刪除 修改至此,論壇的需要分析完成,接下來是論壇的功能設(shè)計(jì)。系統(tǒng)功能描述2.2.1 主要功能首先從用戶開始,用戶關(guān)聯(lián)的對象是自身,版面,公共信息,帖子。分別根據(jù)用戶與這些對象的聯(lián)系給出一個(gè)明確的菜單表2 用戶功能表序號功能名稱說明1用戶注冊用戶在論壇填寫必要信息就可以成為注冊用戶
17、,注冊后,可修改自己的注冊信息2用戶登錄用戶注冊后可使用用戶名,密碼登錄,可選擇用戶名,密碼保存期限3瀏覽用戶信息注冊用戶可查看其它用戶信息序號功能名稱說明4與其它用戶聯(lián)系注冊用戶可發(fā)站內(nèi)短信5瀏覽版面任何用戶可瀏覽版面信息6瀏覽公共信息任何用戶可瀏覽公共信息7瀏覽帖子任何用戶可瀏覽帖子8發(fā)布修改刪除帖子注冊用戶登錄后可發(fā)布帖子,修改自己的帖子,刪除自己的帖子9對帖子的特殊操作主要針對版主類型的用戶,可對帖子置頂,設(shè)置精華,刪除帖子,移動帖子等操作接下來的版面,公共信息,帖子都沒有和其他對象的關(guān)聯(lián),它們在論壇中是被動對象,是被其它對象所操作。因此針對它們的主要功能是由其它對象產(chǎn)生,例如瀏覽版面
18、就是用戶的功能。管理員是論壇的一個(gè)特殊群體,它們的主要工作是保證論壇的正常運(yùn)行,他們可以和論壇的所有對象產(chǎn)生聯(lián)系,因此他們的功能也很豐富表3 管理員功能表序號功能名稱說明1用戶刪除對于在論壇中造成很壞影響的用戶,應(yīng)該刪除他們的身份2用戶授權(quán)授予用戶版主權(quán)限3版面管理版面是論壇的枝干,對版面進(jìn)行添加,修改,刪除等操作4公共信息管理公共信息展示論壇的狀態(tài),不能出現(xiàn)非法言論5帖子的管理帖子是論壇的枝葉,帖子的好壞關(guān)系到論壇的健康開展,對帖子進(jìn)行刪除,移動等6數(shù)據(jù)庫的備份管理員應(yīng)該定期地對系統(tǒng)數(shù)據(jù)庫備份,以免造成不必要的損失現(xiàn)在分析各個(gè)對象的相關(guān)操作,設(shè)計(jì)為對象的功能實(shí)現(xiàn)接口,即為對象的操作方法。各個(gè)
19、板塊有瀏覽列表和管理兩個(gè)方法,管理方法又可以分為添加,修改,刪除3個(gè)子方法。帖子有瀏覽,發(fā)帖,回帖,搜索和管理5個(gè)方法,瀏覽方法又分為列表和查看兩個(gè)子方法,管理方法分為編輯,刪除,置頂,移動,指定精華5個(gè)子方法,如圖。管理員用戶發(fā)帖回帖搜索瀏覽帖子管理帖子編輯指定精華置頂移動刪除 圖1 帖子對象的相關(guān)關(guān)系用戶有注冊、登錄2個(gè)方法,管理用戶方法又分為刪除和設(shè)置權(quán)限2個(gè)子方法,如圖。注冊用戶管理員管理用戶登錄設(shè)置權(quán)限刪除 圖2 用戶對象的相關(guān)關(guān)系這樣分析完后,前面列出的功能列表就有了各自的歸屬對象。論壇一般存在兩種用戶:注冊用戶和管理員。用戶的權(quán)限是向下覆蓋的,既上級權(quán)限包含下級權(quán)限,在論壇中,管
20、理員是上級權(quán)限。論壇的3大根本功能的相互關(guān)系如下列圖所示。瀏覽帖子回帖帖子列表發(fā)帖 圖3 論壇根本功能的關(guān)系本系統(tǒng)還有一些是論壇的內(nèi)容更加豐富的擴(kuò)展功能。2.2.2 論壇擴(kuò)展功能下面是個(gè)一個(gè)論壇擴(kuò)展功能表。表4 擴(kuò)展功能表序號功能名稱說明1用戶控制自己的信息用戶不想讓其他用戶看到自己的信息,可以控制自己的信息是否公開序號功能名稱說明2用戶登錄添加驗(yàn)證碼防止暴力破解密碼,輸入用戶名或密碼錯(cuò)誤會重新生成驗(yàn)證碼3站內(nèi)短信方便用戶在站內(nèi)聯(lián)系4帖子評價(jià)提高用戶參與論壇的積極性5帖子發(fā)布添加多媒體吸引用戶,擴(kuò)展帖子發(fā)布功能6論壇收藏保存用戶喜歡的內(nèi)容,方便用戶查看7帖子搜索提供模糊搜索,方便用戶找到感興趣
21、的主題8用戶等級給用戶一個(gè)榮譽(yù),提高用戶發(fā)帖的積極性9論壇情況顯示把論壇的一些數(shù)據(jù)顯示給用戶,如發(fā)帖數(shù),在線用戶人數(shù)等10數(shù)據(jù)備份防止論壇出現(xiàn)故障,能夠正常運(yùn)行11非法言論過濾對于一些非法言論可以在論壇中進(jìn)行默認(rèn)設(shè)置過濾添加了這幾個(gè)擴(kuò)展功能后,論壇就顯得平易近人多了,也更具有使用性。系統(tǒng)設(shè)計(jì)功能模塊根據(jù)上一節(jié)給出論壇所必須的功能,劃分模塊。模塊的劃分主要是按照每一個(gè)對象的操作來歸類。論壇操作的對象是上一節(jié)所歸納的5個(gè)。下面就針對這5個(gè)對象劃分功能模塊。用戶:有兩個(gè)模塊,一個(gè)是用戶注冊,登錄,修改信息等功能組合,是用戶對用戶自身的操作;另一個(gè)是管理員對用戶進(jìn)行刪除,授權(quán),是管理員對用戶的操作,如
22、表5。表5 用戶功能模塊表模塊模塊包含的功能用戶模塊用戶注冊用戶登錄瀏覽其它用戶信息與其它用戶聯(lián)系用戶控制自己的信息用戶登錄添加驗(yàn)證碼用戶等級管理員模塊用戶刪除用戶授權(quán)版面:也有兩個(gè)模塊,一個(gè)是瀏覽模塊,一個(gè)是管理模塊。其功能模塊列表如表6。表6 版面功能模塊表模塊模塊包含的功能版面瀏覽模塊瀏覽版面版面管理模塊版面管理公共信息:用戶瀏覽公共信息的功能劃分一個(gè)模塊,管理員對公共信息的操作劃分為一個(gè)模塊,其功能模塊列表如表7表7 公共信息功能模塊表模塊模塊包含的功能公共信息顯示模塊瀏覽發(fā)布的公共信息公共信息管理模塊公共信息管理帖子:帖子包括用戶對帖子的操作和管理員對帖子的操作,相應(yīng)地分為帖子模塊和
23、帖子管理模塊,如表8。表8 帖子功能模塊表模塊模塊包含的功能帖子模塊瀏覽帖子發(fā)布/修改/刪除帖子對帖子的特殊操作帖子評價(jià)帖子發(fā)布添加多媒體論壇收藏帖子搜索帖子管理模塊刪除帖子移動帖子管理員:管理員是對其他對象進(jìn)行操作,如表9。表9管理員管理功能模塊表模塊模塊包含的功能管理員管理模塊用戶管理版面管理帖子管理數(shù)據(jù)備份另外,對于用戶使用的模塊稱為前臺模塊,管理員使用的模塊稱為后臺模塊。系統(tǒng)總體功能劃分如圖4。圖4 系統(tǒng)總體功能劃分?jǐn)?shù)據(jù)庫設(shè)計(jì)本論壇使用Microsoft SQL Server 2000數(shù)據(jù)庫,下面列出是數(shù)據(jù)庫設(shè)計(jì)的詳細(xì)。1建立數(shù)據(jù)表間的關(guān)系本論壇數(shù)據(jù)庫共有11個(gè)數(shù)據(jù)表,具體如表10所示
24、。表10 論壇數(shù)據(jù)表序號表名說明1user_t用戶信息表2topic_t主題信息表3superAdmin_t論壇管理員表4post_t帖子信息表5message_t短消息信息表6grade_t用戶積分等級表7friend_t用戶好友表8file_t文件上傳表9board_t子版面信息表10area_t父版面信息表11admin_t版主信息表下面是數(shù)據(jù)表之間的關(guān)系圖,如圖5。圖5 數(shù)據(jù)表關(guān)系2數(shù)據(jù)表結(jié)構(gòu)的詳細(xì)設(shè)計(jì)表11 用戶信息表(user_t)序號字段名字段類型說明備注1useridInt用戶編號主鍵2usernameVarchar(50)用戶名Not null3userpasswordVar
25、char(50)密碼Not null4useremailNvarchar(255)電子郵件Not null5usersignNvarchar(255)用戶簽名6usersexVarchar(50)用戶性別Not null7userfaceNvarchar(255)頭像8pointInt積分9joindateDatetime注冊日期Not null10userbirthdayNvarchar(50)用戶生日11userquestionNvarchar(50)密碼問題Not null12useranswerNvarchar(50)密碼答案Not null13userlastipNvarchar(4
26、0)最后登錄IPNot null14userhiddenbit是否隱身登錄Not null15userqqNvarchar(255)用戶QQ16truenameNvarchar(255)真實(shí)姓名17countryNvarchar(255)國家18cityNvarchar(255)城市19constellationNvarchar(255)星座20bloodNvarchar(255)血型21phoneNvarchar(50) 22WorksNvarchar(255)職業(yè)23SchoolNvarchar(255)畢業(yè)院校24AddressNvarchar(255)家庭住址25jbzlbit是否公開
27、根本資料Not null26xxzlbit是否公開詳細(xì)資料Not null在用戶信息表里保存的是在論壇注冊用戶的信息,用戶編號和用戶名在論壇中是不能重復(fù)的,用戶名不能重復(fù)還使用用戶編號的原因是計(jì)算機(jī)對數(shù)字檢索速度更快。表12 父版面信息表(area_t)序號字段名字段類型說明備注1areaidInt父版面編號主鍵2areanameVarchar(255)父版面名Not null3setuptimedatetime建立時(shí)間Not null表13 子版面信息表(board_t)序號字段名字段類型說明備注1boardidInt子版面編號主鍵2boardnameVarchar(50)子版面名Not n
28、ull3areaidInt父版面編號Not null序號字段名字段類型說明備注4readmeVarchar(255)版面說明Not null5setuptimeDatetime建立日期Not null6boardmasterVarchar(50)版主7topicnumberInt主題數(shù)量Not null8indexIMGVarchar(255)版面圖片Not null表12和13是版面信息表,這里使用兩個(gè)表是為了編程方便,父版面和子版面是通過areaid字段關(guān)聯(lián)的。表14 主題信息表(topic_t)序號字段名字段類型說明備注1topicidInt主題編號主鍵2titleVarchar(255
29、)主題Not null3bordidInt版面編號Not null4replyInt主題回復(fù)數(shù)Not null5useridInt用戶編號Not null6usernameVarchar(50)用戶名Not null7DateAndTimeDatetime發(fā)表日期Not null8hitsInt點(diǎn)擊數(shù)Not null9istopBit是否置頂Not null10isbestBit是否精華Not null11fileidint上傳文件編號Not null表15 帖子信息表(post_t)序號字段名字段類型說明備注1postidInt帖子編號主鍵2parentidInt回復(fù)帖子編號Not null
30、3boardidInt版面編號Not null4usernameVarchar(50)用戶名Not null5useridInt用戶編號Not null6topicidInt主題編號Not null7titleVarchar(255)主題Not null8DateAndTimeDatetime發(fā)表日期Not null9bodyText帖子內(nèi)容Not null10ipVarchar(40)用戶IPNot null以上兩張表是緊密關(guān)聯(lián)的,論壇主題信息表記載了論壇中主題帖的信息,建立這個(gè)表的原因是用戶在瀏覽論壇中的帖子時(shí)先應(yīng)看到的是主題列表,如果主題能夠吸引用戶,用戶才會去看其中的內(nèi)容,否那么用戶一
31、進(jìn)來就看到帖子內(nèi)容,會使用戶感覺非常的雜亂。這兩個(gè)表是通過topicid字段聯(lián)系起來的,parentid字段是用來針對特定的帖子回復(fù)。接下來幾張表是論壇的其它功能需要的數(shù)據(jù)表。表16 短消息信息表(message_t)序號字段名字段類型說明備注1midInt短消息編號主鍵2senderVarchar(50)發(fā)送者Not null3inceptVarchar(50)接受者Not null4titleVarchar(255)主題Not null5contentVarchar(255)內(nèi)容Not null6sendtimeDatetime發(fā)消息時(shí)間Not null7flagbit是否已讀Not nu
32、ll表17 用戶等級信息表(grade_t)序號字段名字段類型說明備注1gradeidInt自動編號主鍵2useridInt用戶編號Not null3postidInt帖子編號Not null4gradeVarchar(255)等級Not null5pointInt積分Not null6ipVarchar(40)IPNot null表18 文件上傳信息表(file_t)序號字段名字段類型說明備注1fileidInt文件編號主鍵2fnameVarchar(100)文件名Not null3useridInt用戶編號Not null4enameVarchar(50)文件擴(kuò)展名Not null5fty
33、peVarchar(255)文件類型Not null6fsizeVarchar(255)文件大小Not null表19 好友信息表(friend_t)序號字段名字段類型說明備注1FidInt自動編號主鍵2UseridInt用戶編號Not null3usernameVarchar(50)用戶名Not null4friendidInt好友編號Not null5frinednameVarchar(50)好友名Not null6addtimedatetime添加時(shí)間Not null表20 管理員信息表(admin_t)序號字段名字段類型說明備注1masteridInt自動編號主鍵2useridInt用
34、戶編號Not null3usernameVarchar(50)用戶名Not null4boardidInt版面編號Not null5flagbit權(quán)限標(biāo)識Not null系統(tǒng)實(shí)現(xiàn)首頁當(dāng)用戶翻開論壇時(shí),首先看到的是論壇首頁,用戶從首頁可以看到和論壇相關(guān)的并且能激起用戶興趣的東西。比方發(fā)帖數(shù),在線用戶數(shù)以及論壇板塊的情況,如圖6所示。圖6論壇首頁首頁分為3個(gè)局部,最上面的導(dǎo)航條為一局部,中間的公共信息為一局部,下面的版面為一局部。將導(dǎo)航條局部單獨(dú)寫入文件top.asp作為公共程序,以后任何一個(gè)頁面需要就使用來調(diào)用。下面是top.asp的程序。1 這里顯示的是游客的導(dǎo)航條2 這里顯示的注冊用戶的導(dǎo)航
35、條3 程序說明:用戶登錄后將用戶名存入session對象來判斷用戶狀態(tài)。公共信息局部是顯示了論壇和當(dāng)前用戶的狀態(tài),該局部的詳細(xì)內(nèi)容將在后面的公共信息局部討論。版面局部顯示了版面的列表,該局部的詳細(xì)內(nèi)容將在后面的版面局部討論。至此,首頁的主要程序已經(jīng)介紹了,以后章節(jié)是各個(gè)模塊的主要程序。數(shù)據(jù)庫連接函數(shù)SQL Server數(shù)據(jù)連接要求提供用戶名,密碼,數(shù)據(jù)庫名及數(shù)據(jù)庫效勞器地址,下面是使用ADO連接數(shù)據(jù)庫的代碼:1 4 用戶模塊4.3.1 用戶登錄下面是一個(gè)用戶登錄的界面,如圖7。圖7 用戶登錄界面下面是對用戶登錄頁面的表單處理程序1 % 驗(yàn)證碼處理2 If trim(request.form(v
36、alidatecode)=empty or Trim(Session(cnbruce _ValidateCode)Trim(Request.Form(validatecode) Then3 response.write(請注意正確輸入驗(yàn)證碼)4 response.end5 end if6 session(user)=request.Form(username)7 user=request.Form(username)8 session(pwd)=request.Form(userpwd)9 pwd=request.Form(userpwd)10 ishidden=request.Form(hi
37、dden)11 set rs = server.CreateObject(adodb.recordset)12 sql=select * from user_t where username=&session(user)& and userpassword=&session(pwd)&13 rs.open sql,conn,3,314 if rs.eof and rs.bof then 判斷用戶是否存在15 response.Redirect(login_error.asp)16 else17 session(userid)=rs(userid)18 sql1=update user_t se
38、t userhidden=&ishidden& where userid=&session(userid)&用戶是否隱身19 conn.execute(sql1)20 select case request(usercookie)把用戶信息寫入Cookie21 case 122 response.Cookies(user)(username)=user23 response.Cookies(user)(userpassword)=pwd24 response.Cookies(user).expires=date()+125 case 226 response.Cookies(user)(use
39、rname)=user27 response.Cookies(user)(userpassword)=pwd28 response.Cookies(user).expires=date()+729 case 330 response.Cookies(user)(username)=user31 response.Cookies(user)(userpassword)=pwd32 response.Cookies(user).expires=date()+36533 end select34 session(name)=request.Form(username)35 response.Writ
40、e()36 response.Write(session(name)37 response.Write(!歡送你回來!)38 response.Write(兩秒鐘后自動轉(zhuǎn)入首頁)39 end if40 rs.close41 set rs=nothing %程序說明:第15行是對驗(yàn)證碼的處理;第610行是將從表單獲取的數(shù)據(jù)存入變量;第1114行是依據(jù)輸入的用戶名和密碼為條件對用戶信息表user_t進(jìn)行查找,如果沒有查找到記錄說明該用戶輸入的用戶名或密碼錯(cuò)誤;第15行轉(zhuǎn)到錯(cuò)誤處理頁面;第1819行是將用戶是否隱身登錄標(biāo)記,即是對用戶信息表中的userhidden字段標(biāo)記;第2033行是將用戶信息寫
41、入Cookie。4.3.2 用戶注冊用戶注冊,首先要檢查的就是用戶填寫的信息,其中包括:字段是否空白,假設(shè)空白那么不接受。輸入的E-mail是否正確,假設(shè)E-mail中沒有,符號位于E-mail的第一個(gè)字符或者位于E-mail的最后一個(gè)字符都算錯(cuò)誤。兩次輸入的密碼是否一致。用戶名是否被使用。電子郵件是否被使用。user_t新用戶注冊reg.asp修改信息update_userinfo.asp修改密碼update_pwd.asp忘記密碼lostpwd.asp寫入寫入讀取寫入讀取讀取圖8用戶注冊各個(gè)頁面與數(shù)據(jù)庫的關(guān)系下面是驗(yàn)證用戶注冊信息的程序:1 % a=instr(request(userpa
42、ssword),*) 2 b=instr(request(userpassword), )3 if username=or useremail=or userquestion=or useranswer=or userpassword=or userpassword1=then4 response.Write(必填信息不能為空,請?zhí)钔辏?5 elseif userpassworduserpassword1 then6response.Write(兩次輸入密碼不一致,請重新輸入!)7 elseif len(username)10 then8response.Write(你輸入的用戶名太長,請重新
43、輸入!)9elseif len(userpassword)18 then10 response.Write(密碼不符合要求,請重新輸入!)11 elseif not isvalidemail(useremail) then12 response.Write(電子郵件地址錯(cuò)誤,請重新輸入)13 elseif a0 or b0 then14 response.Write(請不要將*和 等符號作為密碼!)15 elseif useronly(username,useremail) then16 response.Write(用戶名被占用!)17 else 18 驗(yàn)證通過后將用戶信息寫入用戶信息表us
44、er_t 19 end if %程序說明:第12行是取出密碼中“*和“ 在字符串中的位置;第11行調(diào)用了isvalidmail函數(shù),該函數(shù)是驗(yàn)證電子郵件地址正確性;第15行調(diào)用了useronly函數(shù),該函數(shù)是驗(yàn)證用戶名和電子郵件唯一性;下面給出驗(yàn)證電子郵件正確性的程序:1 function isvalidemail(email)2 dim names,named,I,c3 isvalidemail=true4 names=split(email,)5 if ubound(names)1 then6 isvalidemail=false7 exit function 8 end if9 for
45、each named in names10 if len(named)=0 then11 isvalidemail=false12 exit function13 end if14 for i=1 to len(named)15 c=lcase(mid(named,I,1)16 if instr(“abcdefghijklmnopqrstuvwxyz_-.,c)=0 and not isnumericI then17 isvalidemail=false18 exit function19 end if20 next21 if left(named,1)=. Or right(named,1)
46、=. Then22 isvalidemail=false23 exit function24 end if25 next26 if instr(names(1),.)=0 then 27 isvalidemail=false 28 exit function 29 end if 30 i=len(names(1)-instrrev(names(1),.) 31 if i2 and i3 then 32 isvalidemail=false 33 exit function 34 end if 35 if instr(email,.)0 then 36 isvalidemail=false 37
47、 end if 38 end function下面是驗(yàn)證用戶和電子郵件唯一性的程序:1 function useronly(user,email) 2 set rs = server.CreateObject(adodb.recordset)3 sql=select * from user_t where username=&user& or useremail=&email& 4 rs.open sql,conn,3,3 5 if rs.eof and rs.bof then 6 useronly=false 7 else 8 useronly=true 9 end if 10 rs.clo
48、se 11 set rs=nothing 12 end function它包括修改信息upadate_userinfo.asp和修改密碼update_pwd.asp兩個(gè)頁面。兩個(gè)頁面都是更新用戶信息表user_t里的特定字段,這里就不再列出具體程序。4.3.3 與其他用戶聯(lián)系站內(nèi)用戶通過短消息與其他用戶聯(lián)系,下面是用戶收/發(fā)短消息的頁面:圖9 用戶收/發(fā)短消息頁面該功能包括了發(fā)短消息,發(fā)件箱和收件箱三局部,發(fā)短消息是向短消息表(message_t)添加記錄,發(fā)件箱和收件箱都是從message_t表讀取記錄。標(biāo)記短消息是否已讀是對數(shù)據(jù)表message_t中的flag字段操作。下面是標(biāo)記短消息已讀
49、的程序:1 下面是統(tǒng)計(jì)未讀消息數(shù)的程序:1 4.3.4 找回密碼當(dāng)用戶忘記密碼時(shí),可以使用找回密碼功能。這就要用到用戶信息表user_t里的userquestion和useranswer兩個(gè)字段。系統(tǒng)根據(jù)用戶名給出密碼問題,用戶給出密碼答案,假設(shè)匹配,系統(tǒng)會將用戶的密碼發(fā)至用戶注冊時(shí)填寫的電子郵箱中。系統(tǒng)給出密碼問題和用戶給出密碼答案是對數(shù)據(jù)表user_t的讀/寫操作,前面已經(jīng)介紹過類似的程序,就不再討論,這里給出系統(tǒng)是如何將密碼發(fā)至用戶郵箱的程序:1 4.3.5 用戶登錄添加驗(yàn)證碼使用驗(yàn)證碼,用戶每次登錄時(shí)都不一樣,這樣做的目的是為了防止有人利用破解程序,暴力破解用戶的密碼。驗(yàn)證碼的處理程序
50、已經(jīng)討論過,這里給出生成驗(yàn)證碼的程序:1 版面/公共信息模塊4.4.1 版面模塊版面瀏覽指的是版面列表,下面是一個(gè)顯示版面的程序,用了一個(gè)循環(huán)的嵌套來顯示父版面和子版面,使用了表area_t和表board_t。1 翻開表board_t8 a href= showTitle.asp?boardid=顯示子版面名,并作為進(jìn)入子版面主題列表的鏈接9 4.4.2 公共信息模塊公共信息局部的程序publicInfo.asp顯示論壇和當(dāng)前用戶的狀態(tài),下面是一個(gè)統(tǒng)計(jì)在線人數(shù)的程序。1 0 then11 for i=lbound(application(onlineuser) to lbound(applic
51、ation(onlineuser)12 id=application(onlineuser)(i)13 if idsession.SessionID then14 tmp(num)=id15 num=num+116 end if17 next18 end if19 tmp(num)=session.SessionID20 application(totalusers)=num+121 redim preserve tmp(application(totalusers)22 application(onlineuser)=tmp23 end if24 application(session.Se
52、ssionID & lastaccesstime) =timer25 redim tmp(application(totalusers)26 num=027 for i=0 to application(totalusers)-128 id=application(onlineuser)(i)29 if (timer-application(id & lastaccesstime)idletime then30 tmp(num)=id31 num=num+132 else33 application(id & lastaccesstime) =empty34 end if35 next36 i
53、f numapplication(totalusers) then37 redim preserve tmp(num)38 application(onlineuser) =tmp39 application(totalusers)=num40 end if41 application.UnLock %帖子模塊4.5.1 發(fā)布/刪除/修改帖子模塊網(wǎng)絡(luò)技術(shù)的開展日新月異,現(xiàn)在用戶發(fā)言時(shí)使用的格式也是豐富多彩。例如:用戶可以上傳文件,可以粘貼多媒體等。下面是一個(gè)帖子的發(fā)布頁面,如圖10。圖10 帖子發(fā)布頁面1文件長傳局部文件上傳可以分為組件上傳和無組件上傳,本論壇使用的是無組件上傳,它的好處是不受
54、系統(tǒng)環(huán)境的影響。并且將文件上傳到文件夾,將文件信息寫入文件信息數(shù)據(jù)表file_t中。首先分析上傳數(shù)據(jù)格式,在標(biāo)簽中增加enctype=multipart/from-data屬性后,上傳的數(shù)據(jù)是一個(gè)長長的二進(jìn)制字符串,其中包含了文件瀏覽框的名字,文件的客戶端路徑,文件的MIME類型,文件內(nèi)容,文本框的名稱,文本框的值等信息。同時(shí)表單提交的是二進(jìn)制字符串,需要轉(zhuǎn)換為文本字符串才能在頁面上顯示。下面是獲取上傳文件信息的函數(shù):1 Function GetFileInfo(FormName)2 Dim strTemp,dataStart,dataEnd,dataLen,temp,intFlag3 str
55、Temp=StringToBinary(Content-Disposition: form-data; name= & FormName & ; filename=)4 intFlag=InstrB(formData,Divider & bncrlf & strTemp) 5 Dim arrayTemp() 6 If intFlag0 Then7 Redim arrayTemp(4)8 dataStart=intFlag+LenB(Divider & bncrlf & strTemp) 定位到第1個(gè)字符 9 dataend=InstrB(datastart,formdata,bncrlf)-2
56、 定位到最后1個(gè)字符 10 dataLen=dataend-datastart+1 返回要取信息的長度 11 arrayTemp(0)=MidB(formdata,datastart,datalen) 返回文件路徑 12 arrayTemp(0)=BinaryToString(arrayTemp(0) 轉(zhuǎn)換為文本字符串13 arrayTemp(1)=Mid(arrayTemp(0),InstrRev(arrayTemp(0),)+1)返回文件的擴(kuò)展名,其實(shí)只要從文件名稱中分析出文件擴(kuò)展名即可 14 arrayTemp(2)=Mid(arrayTemp(1),InstrRev(arrayTemp
57、(1),.)+1)下面獲取文件的MIME類型 15 temp=dataend 記住當(dāng)前位置 16 datastart=temp+18 定位到第1個(gè)字符 17 dataend=InstrB(datastart,formdata,bncrlf & bncrlf)-1 定位到最后1個(gè)字符 18 dataLen=dataend-datastart+1 返回要取信息的長度 19 arrayTemp(3)=MidB(formdata,datastart,datalen) 返回MIME類型 20 arrayTemp(3)=BinaryToString(arrayTemp(3) 轉(zhuǎn)換為文本字符串 21 tem
58、p=dataend 下面獲取文件大小 22 datastart=dataend+5 定位到第1個(gè)字符 23 dataend=InstrB(datastart,formdata,divider)-3 定位到最后1個(gè)字符 23 arrayTemp(4)=dataend-datastart+1 返回文件大小 25 Else 26 Redim arrayTemp(0) 27 arrayTemp(0)=0 28 End If 下面返回函數(shù)值 29 GetFileInfo=arrayTemp30 End Function下面是將上傳文件保存到指定的文件夾中的函數(shù):1 Function SaveToFile
59、(FormName,SaveFilePath,OverWriteFlag)2 Dim strTemp,dataStart,dataEnd,dataLen,temp,intFlag,filepath,filename3 strTemp=StringToBinary(Content-Disposition: form-data; name= & FormName & ; filename=)4 intFlag=InstrB(formData,Divider & bncrlf & strTemp) 5 Dim arrayTemp() 6 If intFlag0 Then 因?yàn)楹竺嬉玫轿募拿?,?/p>
60、以首先返回文件的名字 7 dataStart=intFlag+LenB(Divider & bncrlf & strTemp) 定位到第1個(gè)字符 8 dataend=InstrB(datastart,formdata,bncrlf)-2 定位到最后1個(gè)字符 9 dataLen=dataend-datastart+1 返回要取信息的長度 10filepath=BinaryToString(MidB(formdata,datastart,datalen) 返回文件路徑 11filename=Mid(filepath,InstrRev(filepath,)+1)從當(dāng)前位置找到兩個(gè)回車換行符,也就是文
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甲供材料合同范本
- 幼兒園托管協(xié)議合同8篇
- 居間合同居間合同
- 2025年克拉瑪依c1貨運(yùn)從業(yè)資格證考試內(nèi)容
- 工程施工監(jiān)理合同
- 專項(xiàng)工程承包合同文本
- 建筑工程項(xiàng)目分包合同
- 增加附錄條款魚種購銷合同
- 運(yùn)輸水合同范本
- 卷煙戰(zhàn)略市場規(guī)劃報(bào)告
- VTE防治在臨床科室的落地
- 2025年度個(gè)人住房買賣合同(帶家居家具)
- 生產(chǎn)車間布局優(yōu)化與現(xiàn)場改善的策略研究
- 文化自信-最炫中國風(fēng)(2024年內(nèi)蒙古赤峰中考語文試卷非連續(xù)性文本閱讀試題)
- 中央2025年中國作家協(xié)會所屬單位招聘11人筆試歷年參考題庫附帶答案詳解
- 2025年南京信息職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 《餐飲業(yè)發(fā)展》課件 - 探索美食世界的奧秘
- (新版)廣電全媒體運(yùn)營師資格認(rèn)證考試復(fù)習(xí)題庫(含答案)
- 2024年法律職業(yè)資格考試(試卷一)客觀題試卷與參考答案
- 安全生產(chǎn)重大事故隱患排查報(bào)告表
- 小學(xué)音樂課后服務(wù)教學(xué)設(shè)計(jì)方案計(jì)劃
評論
0/150
提交評論