下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
安徽工業(yè)大學(xué)
┊
┊ 畢業(yè)設(shè)計(jì)(論文)任務(wù)書
┊
┊
┊ 課題名稱 程序設(shè)計(jì)論壇網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
┊
┊
┊
┊ 學(xué) 院 計(jì)算機(jī)
┊
┊ 專業(yè)班級(jí) 網(wǎng)絡(luò)工程062
┊
┊ 姓 名 邢琳
裝
┊ 學(xué) 號(hào) 069074273
┊
┊ 畢業(yè)設(shè)計(jì)(論文)的主要內(nèi)容及要求:
┊ 1、認(rèn)真復(fù)習(xí)軟件工程、數(shù)據(jù)庫(kù)、計(jì)算機(jī)網(wǎng)絡(luò)等相關(guān)知識(shí)。
┊ 2、學(xué)習(xí)和熟悉PHP動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)技術(shù)。
訂 3、按照軟件工程的要求,對(duì)程序設(shè)計(jì)論壇網(wǎng)站進(jìn)行詳細(xì)的需求分析,在此基礎(chǔ)上,
┊ 進(jìn)行功能設(shè)計(jì)、界面設(shè)計(jì),最后編碼調(diào)試實(shí)現(xiàn)。要求能夠?qū)崿F(xiàn)用戶在線瀏覽論壇
┊ 帖子,分主題發(fā)表帖子和回復(fù)等功能。
┊ 4、完成畢業(yè)論文的撰寫、修改和定稿。
┊
┊線
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 第I 頁(yè)
摘要
現(xiàn)在互聯(lián)網(wǎng)已經(jīng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,論壇是
Internet 上最常用的交流工具之一,越來越多的人開始把論壇作為他們獲取信息的
┊ 手段和交流的平臺(tái)。
┊ 本畢業(yè)設(shè)計(jì)就是基于PHP+MySQ的L論壇設(shè)計(jì),以PHPExpertEditor 作為開發(fā)基
┊
┊ 礎(chǔ),采用WAMP架構(gòu),輔用CSS技術(shù),并通過使用模板技術(shù),在Apache本地服務(wù)器上
┊ 實(shí)現(xiàn)了較完整的論壇功能。PHP語(yǔ)言執(zhí)行效率高并易于同數(shù)據(jù)庫(kù)連接, MySQL數(shù)據(jù)庫(kù)
┊ 訪問速度快、穩(wěn)定性好。
┊ 該論壇主要用來為用戶提供一個(gè)計(jì)算機(jī)程序語(yǔ)言的交流環(huán)境,學(xué)習(xí)資料的共享,
┊ 各類計(jì)算機(jī)程序技術(shù)的討論,問題的求助都可以在論壇上發(fā)布,該論壇主要包括前臺(tái)
┊ 和后臺(tái)兩大部分,前臺(tái)主要實(shí)現(xiàn)用戶管理和帖子管理,前者包括用戶注冊(cè)、用戶登錄、
┊
┊ 用戶密碼找回、用戶信息修改等;后者包括包括帖子內(nèi)容顯示、帖子發(fā)布和回復(fù)信息
┊ 等。后臺(tái)主要實(shí)現(xiàn)管理員對(duì)論壇系統(tǒng)的維護(hù)。
┊裝
┊
┊ 關(guān)鍵詞:論壇;PHP;Apache;MySQL;模板
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 第II 頁(yè)
Abstract
NowadaystheInternet hasbecomeanimportant channelfor peopletogain,
publish andtransfer information ontheInternet, BBSisoneofthemostcommon
┊ communicationtools,more andmorepeoplemakeBBSastheplatformto obtain
┊
┊ informationandcommunicatewitheachother.
┊ Thisdesignis basedontheBBS+MySQL,usingPHPExpertEditor asexploited
┊ foundation, adopting WAMParchitecture,complementary with CSStechnique and
┊ throughtheuseoftemplatetechonolgy,itrealizedalmostcompletelyBBS
┊ functions in Apache local server. The efficiency of PHPlanguage
┊ implementationishighanditiseasytoconnectwithMySQLdatabaseaccess
┊ whichisfastspeedandgoodstability.
┊
┊ ThisBBSismainly usedtoprovide usersacomputerprogramminglanguage
┊ enviromenttoexchange,shareinformationandallkindsofdiscussionabout
┊ computerprogramtechnologyandquestionscanpostontheBBS.ThisBBS
裝 includes two parts:forestage and backstage.Forestage is mainly used to
┊ realiseusermangement,includingtheuserregistration,userlogin,user
┊ passwordretrievedanduserinformationmodificationetc.Backstagemainly
┊
┊ realizestheBBSsystemadministratorformaintenance.
┊訂
┊
┊ Keywords:BBS;PHP;Apache;MySQL;Template
┊
┊
┊線
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 第III 頁(yè)
目錄
1.1
課題的研究意義
1
1.2
課題的研究現(xiàn)狀
1
1.3
論文的研究?jī)?nèi)容
1
1緒論 1
┊
┊
┊ 1.4 系統(tǒng)的設(shè)計(jì)思路 2
┊ 2理論基礎(chǔ) 3
┊ 2.1WAMP架構(gòu)介紹 3
┊ 2.1.1WAMP架構(gòu)的提出 3
┊ 2.1.2WAMP架構(gòu)的優(yōu)勢(shì) 3
┊ 2.1.3WAMP架構(gòu)的研究現(xiàn)狀 3
┊ 2.2PHP技術(shù) 3
┊ 2.2.1PHP技術(shù)概述 3
┊ 2.2.2PHP技術(shù)特點(diǎn) 4
┊
┊ 2.3MySQL數(shù)據(jù)庫(kù)技術(shù) 5
裝 2.3.1MySQL數(shù)據(jù)庫(kù)概述 5
┊ 2.3.2MySQL圖形管理工具phpMyAdmin 6
┊ 2.4論壇采用B/S架構(gòu) 7
┊ 3總體設(shè)計(jì) 8
┊ 3.1論壇可行性分析 8
┊ 3.2 論壇需求分析 8
訂 3.3 功能模塊的設(shè)計(jì) 11
┊
┊ 3.4 論壇系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)策略 13
┊ 3.4.1 概念結(jié)構(gòu)設(shè)計(jì) 13
┊ 3.4.2 邏輯結(jié)構(gòu)設(shè)計(jì) 15
┊ 4 論壇系統(tǒng)詳細(xì)設(shè)計(jì) 21
線 4.1 數(shù)據(jù)庫(kù)的訪問 21
┊ 4.2CSS樣式表的使用 22
┊ 4.3 論壇系統(tǒng)功能的實(shí)現(xiàn) 22
┊ 4.3.1 系統(tǒng)功能 22
┊ 4.3.2 普通用戶功能 23
┊ 4.3.3 版主功能 27
┊ 4.3.4 管理員功能 29
┊ 4.4 數(shù)據(jù)的安全性研究與實(shí)現(xiàn) 30
┊ 4.4.1 論壇系統(tǒng)的安全體系 30
┊ 4.4.2 論壇系統(tǒng)安全性的實(shí)現(xiàn) 31
┊
┊ 5論壇系統(tǒng)性能優(yōu)化 32
┊ 5.1 論壇系統(tǒng)測(cè)試 32
┊ 第IV 頁(yè)
5.2模板技術(shù)在論壇中的應(yīng)用 33
6結(jié)束語(yǔ) 36
致謝. 37
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 第V 頁(yè)
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
共43
第
PAGE
7
頁(yè)
頁(yè)
1緒論
1.1課題的研究意義
┊ 隨著我國(guó)改革的深入和發(fā)展,公共傳媒的發(fā)展也日新月異。人們己經(jīng)不單單只從
┊ 電視、報(bào)紙上得到需要的新聞報(bào)道,Internet傳播介質(zhì)的出現(xiàn)使得人們能夠從更加豐
┊ 富的網(wǎng)絡(luò)資源中得到自己想要的信息。論壇是 Internet上最常用的交流工具之一,越
┊
┊ 來越多的人開始把論壇作為他們獲取信息的手段和交流的平臺(tái)。
┊ 論壇系統(tǒng)已經(jīng)成為互聯(lián)網(wǎng)上人與人之間交互的必備工具, 特別是做網(wǎng)站必備。以
┊ 前我們一直使用留言本形式。論壇與留言薄的區(qū)別在于論壇上的消息是分層次的。 每
┊ 個(gè)人都可以在論壇上發(fā)表信息,別人可以回復(fù)這條消息?;貜?fù)消息與被回復(fù)消息之間
┊ 存在一種“父子”關(guān)系。如果將最上層的消息當(dāng)作“根消息” ,則每一條子消息都有
┊ 一個(gè)唯一的“父”消息。因此,論壇用做發(fā)表意見的場(chǎng)合是最合適的,因?yàn)榭梢詮闹?/p>
┊
┊ 看到不同消息之間的關(guān)系,訪問者不至于在瀏覽時(shí)因?yàn)轭^緒太亂而迷失方向。
┊ 由于論壇系統(tǒng)的論壇作為人們?nèi)粘I瞰@取信息的手段和交流的平臺(tái), 因此本文裝 研究論壇系統(tǒng)的開發(fā)具有重要的實(shí)踐意義。
┊ 1.2課題的研究現(xiàn)狀
┊ 隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,現(xiàn)在的論壇系統(tǒng)功能越來越多,不但可以發(fā)帖回帖,還
┊ 可以上傳視頻和提供下載等等。有的論壇系統(tǒng)為了達(dá)到更好的用戶體驗(yàn),在實(shí)現(xiàn)了基
┊
┊ 本的討論功能后,設(shè)計(jì)了很多個(gè)性化的功能,比如在論壇中設(shè)置了“個(gè)人空間”、“加
訂 為好友”等功能,還有的論壇系統(tǒng),通過提供免費(fèi)的空間來增加論壇的發(fā)帖量。
┊ 當(dāng)然有些論壇系統(tǒng)的個(gè)性化功能設(shè)計(jì)新穎,也非常有使用價(jià)值,但有些個(gè)性化功
┊ 能的設(shè)計(jì)卻既沒有多少使用價(jià)值,同時(shí)又大大的影響了系統(tǒng)的性能。以目前許多學(xué)生
┊ 自主創(chuàng)辦的論壇為例,都因盲目重視功能,忽略了性能,系統(tǒng)運(yùn)行一段時(shí)間后都因性
┊ 能問題不得不更換其他論壇系統(tǒng),每更換一次,論壇的數(shù)據(jù)就全部丟失。由此可見,
┊ 實(shí)現(xiàn)一個(gè)論壇系統(tǒng)如果只重視功能而忽略性能,破壞的影響是非常嚴(yán)重的。線
┊ 經(jīng)過對(duì)一些目前國(guó)內(nèi)外比較典型的 BBS論壇系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方式的分析,本文
┊ 認(rèn)為去掉系統(tǒng)不必要的個(gè)性化功能,實(shí)現(xiàn)一個(gè)性能好、速度快、安全性高并且基本功
┊ 能完善的論壇系統(tǒng)是很必要的。
┊
┊ 1.3論文的研究?jī)?nèi)容
┊ 論文的主要研究?jī)?nèi)容是根據(jù)目前聊天工具的現(xiàn)狀和需求,設(shè)計(jì)出一個(gè)具備交互、
┊ 執(zhí)行下載數(shù)據(jù)或程序、上傳數(shù)據(jù)、閱讀、與其它用戶交換消息等功能,并在實(shí)際應(yīng)用
┊ 中予以實(shí)現(xiàn)和評(píng)價(jià)。具體的研究?jī)?nèi)容如下:
┊
┊ 對(duì)論壇系統(tǒng)目前的國(guó)內(nèi)外發(fā)展現(xiàn)狀進(jìn)行對(duì)比分析, 找出交流系統(tǒng)存在的問題,提
┊ 出相關(guān)的解決策略。
結(jié)合解決策略,設(shè)計(jì)新的適合時(shí)代特點(diǎn)的論壇系統(tǒng), 并對(duì)照原有的傳統(tǒng)的交流工具分析論壇的特點(diǎn)和適應(yīng)性,完成論壇的系統(tǒng)實(shí)現(xiàn)。
1.4 系統(tǒng)的設(shè)計(jì)思路
系統(tǒng)將采用軟件工程的生命周期過程來進(jìn)行分析設(shè)計(jì)。 其基本思路:首先,是進(jìn)
┊ 行系統(tǒng)可行性分析和系統(tǒng)的初步設(shè)計(jì)規(guī)劃。其次進(jìn)行需求調(diào)研,主要通過對(duì)國(guó)內(nèi)外各
┊ 種大型論壇進(jìn)行親身體驗(yàn)、現(xiàn)有開源論壇系統(tǒng)的研究及進(jìn)行網(wǎng)上調(diào)查與提問等方式得
┊ 到需求,在此基礎(chǔ)上進(jìn)行需求分析以確定需求是否值得設(shè)計(jì)開發(fā), 完成業(yè)務(wù)邏輯分析
┊ 與設(shè)計(jì),確定系統(tǒng)的功能模塊等。接著準(zhǔn)確地進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)、界面設(shè)計(jì)以實(shí)現(xiàn)系統(tǒng)
┊ 所要達(dá)到的規(guī)劃目標(biāo)。最后進(jìn)行系統(tǒng)布署與測(cè)試,以改進(jìn)系統(tǒng)性能。
┊
┊
┊
┊
┊
┊
┊
┊裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
理論基礎(chǔ)
WAMP架構(gòu)介紹
WAMP架構(gòu)的提出
┊ 1998年,MichaelKunze為德國(guó)計(jì)算機(jī)雜志寫了一篇關(guān)于 Free軟件如何成為商
┊ 業(yè)軟件替代品的文章,創(chuàng)建了 LAMP這個(gè)名詞,Linux 操作系統(tǒng)、Apache網(wǎng)絡(luò)服務(wù)
┊
┊ 器、MySQL數(shù)據(jù)庫(kù)和PHP(Perl或Python)腳本語(yǔ)言組合而成的—— LAMP (四
┊ 種技術(shù)的開頭字母組成),隨之LAMP技術(shù)成為了開源軟件業(yè)的一盞真正的明燈。
┊ 隨著互聯(lián)網(wǎng)開源潮流的迅速發(fā)展,全球 IT業(yè)正迎來一個(gè)新的發(fā)展格局成長(zhǎng)期,
┊ 而LAMP所代表的開源軟件以其開放性、低成本、安全性、適用性以及可靠的性能,
┊ 正對(duì)傳統(tǒng)軟件、硬件和系統(tǒng)集成商產(chǎn)生巨大的沖擊,同時(shí),也給創(chuàng)新型 IT企業(yè)、程
┊ 序開發(fā)者創(chuàng)造了前所未有的機(jī)遇。
┊
┊ 中國(guó)開源軟件推進(jìn)聯(lián)盟主席陸首群說, LAMP 也可以派生出WAMP(W 代表
┊ Windows操作系統(tǒng))。事實(shí)上,PHP與.Net是并存的,PHP也可以和Windows捆綁在
┊ 一起,兩者并沒有沖突,可以因地致宜地使用開源與閉源混合架構(gòu)。裝 本系統(tǒng)就是采用WAMP架構(gòu)進(jìn)行論壇程序的設(shè)計(jì)與實(shí)現(xiàn)。
┊ 2.1.2WAMP架構(gòu)的優(yōu)勢(shì)
┊
┊ WAMP架構(gòu)易于開發(fā)、安全性高、適用性強(qiáng)、性能可靠、更新速度快、成本低,
┊ WAMP被許多開發(fā)者視為“黃金組合”。
┊ 由于Apache是免費(fèi)的,此外還有免費(fèi)數(shù)據(jù)庫(kù) MySQL服務(wù)器和開源語(yǔ)言PHP共訂 同構(gòu)建了廣受追捧的“WAMP(LAMP)”套件,性價(jià)比極高,因此贏得了網(wǎng)站開發(fā)人員
┊ 的廣泛青睞。
┊
┊ 2.1.3WAMP架構(gòu)的研究現(xiàn)狀
┊ 在今天,全球已有2000萬個(gè)網(wǎng)站使用PHP,包括最流行的雅虎、Google、百度,
┊ 也包括像漢莎航空電子訂票系統(tǒng)、德意志銀行的網(wǎng)上銀行、華爾街在線的金融信息發(fā)線 布系統(tǒng),甚至軍隊(duì)系統(tǒng)這類五花八門和苛刻的環(huán)境。
┊ 隨著社區(qū)BBS及Web2.0應(yīng)用的普及,以及國(guó)內(nèi) PHP技術(shù)支持者的不斷增加,
┊
┊ 據(jù)PHPChina資料統(tǒng)計(jì)在中國(guó)前200名的網(wǎng)站中有61%的采用了WAMP技術(shù)。業(yè)內(nèi)
┊ 人士預(yù)計(jì),在服務(wù)器平臺(tái)及軟件方面, WAMP市場(chǎng)占有率將在未來兩年內(nèi)取得更高
┊ 的市場(chǎng)分額。
┊
┊ 2.2PHP技術(shù)
┊
┊ 2.2.1PHP技術(shù)概述
┊ PHP全稱為PersonalHomePage,是一種跨平臺(tái)的服務(wù)器端腳本技術(shù)。于 1995
┊ 年開始發(fā)行使用,到1998年成為一個(gè)成熟的軟件產(chǎn)品。它最初是一個(gè)人為了寫他的
主頁(yè)而用Perl寫的“包裝”程序,后來因?yàn)橛玫娜硕嗔?,就發(fā)展了起來?,F(xiàn)在 PHP已經(jīng)成為最流行的Web腳本語(yǔ)言之一,它運(yùn)行在Web服務(wù)器端,根據(jù)用戶請(qǐng)求或服務(wù)器端的數(shù)據(jù)產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)。它功能強(qiáng)大,和 HTML 腳本融合在一起,并內(nèi)建訪問數(shù)據(jù)庫(kù)的能力。它能夠作為ApacheWeb服務(wù)器的模塊執(zhí)行,也使得它的執(zhí)行效率要
┊ 高于普通的CGI程序。
┊ PHP是編程語(yǔ)言和應(yīng)用程序服務(wù)器的結(jié)合,PHP和其它的編程語(yǔ)言類似,使用
┊ 變量存儲(chǔ)臨時(shí)數(shù)值,使用操作符處理變量。PHP的真正價(jià)值在于它是一個(gè)應(yīng)用程序服
┊ 務(wù)器,應(yīng)用程序服務(wù)器是指一個(gè)把幾個(gè)不同的技術(shù)組合為一個(gè)完整的套件的程序, 這
┊ 些技術(shù)包括:一個(gè)強(qiáng)壯的編程語(yǔ)言;存取數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù);支持 Internet協(xié)議,
┊ 尤其是電子郵件和HTTP協(xié)議。PHP大量借用了C、Java、和Perl語(yǔ)言的語(yǔ)法,并加
┊
┊ 入了各種PHP自己的特征,使Web開發(fā)者能夠?qū)懗隹焖俚膭?dòng)態(tài)頁(yè)面。
┊ PHP是一種跨平臺(tái)的服務(wù)器端嵌入式腳本技術(shù)。 PHP頁(yè)面是一種文本文件,是
┊ 在普通HTML頁(yè)面文件中嵌入PHP腳本語(yǔ)句,由服務(wù)器解釋和翻譯成普通的 HTML
┊ 文件,然后傳送給客戶端瀏覽器,這一點(diǎn)和 ASP一樣。PHP腳本語(yǔ)句段以“<?”為
┊ 開始,以“?>”為結(jié)束?!?lt;?”和“?>”之間的腳本語(yǔ)句由服務(wù)器軟件調(diào)用 PHP腳本
┊ 解釋引擎解釋后替換為普通的 HTML腳本。
裝 PHP語(yǔ)法和C、Perl的語(yǔ)法很相似,并主要來源于 C語(yǔ)言,如控制流語(yǔ)句與C
┊
┊ 幾乎完全一樣、變量之間的運(yùn)算符與C的類似、函數(shù)定義和調(diào)用與C的類似等。PHP
┊ 的變量名前面必須有一個(gè)$號(hào),如$Var1、$Var2。PHP的變量作用域規(guī)定也類似于C,
┊ 即缺省認(rèn)為主函數(shù)中的變量是全局變量,而函數(shù)中的變量都是局部變量。在 PHP中,
┊ echo和printf函數(shù)用來向HTML頁(yè)面中輸出HTML內(nèi)容,其中echo輸出無格式字符訂 串,printf 輸出格式化的字符串。如echo("welcomeyou to comehere")和
┊ printf("%s,%d",str1,int1)。
┊
┊ 2.2.2PHP技術(shù)特點(diǎn)
┊ 現(xiàn)在通常用的服務(wù)器端腳本技術(shù)是 CGI。現(xiàn)有的Web后臺(tái)程序,絕大多數(shù)采用
┊ 下列幾種技術(shù)編寫:Perl或采用第三方解決方案(如ASP),雖然每類方案都有各自線 的強(qiáng)項(xiàng),但均不是理想的解決辦法。Perl編寫CGI是使用得最多的方法,在網(wǎng)絡(luò)上也
┊
┊ 有很多現(xiàn)成的腳本可以拿來修改使用,但它卻存在公認(rèn)的性能問題:由于 Web服務(wù)
┊ 器運(yùn)行時(shí)需調(diào)用解釋程序解析代碼,當(dāng)站點(diǎn)的訪問人數(shù)激增時(shí),Web服務(wù)器的性能也
┊ 必將直線下降,另外則是它的數(shù)據(jù)庫(kù)連接功能非常弱,某些情況下甚至還會(huì)降低數(shù)據(jù)
┊ 庫(kù)的存取速度。第三方廠商提出了較好的解決方案:如Microsoft的ActiveServerPage。
┊ 它具有運(yùn)行速度快,數(shù)據(jù)庫(kù)操作功能強(qiáng)大等特性,受到了許多開發(fā)者的歡迎,但它們
┊ 只能單純地運(yùn)行于個(gè)別平臺(tái) (NT),對(duì)要求更高回應(yīng)率的網(wǎng)站來說(大多數(shù)大中型網(wǎng)站
┊ 均建于Unix或Linux平臺(tái),Apache系列Web服務(wù)器)還是不能順利采用(注:目前
┊
┊ 已有人提出這兩種技術(shù)在Unix系列平臺(tái)上應(yīng)用的方案,但要么是不具備源技術(shù)的全
┊ 部?jī)?yōu)秀功能,要么就是只能應(yīng)用于個(gè)別 Unix 平臺(tái))。1997年,PHP開發(fā)小組在原
PHP/FI2.0的基礎(chǔ)上,開發(fā)出了全新的PHP3,免費(fèi)讓所有人使用和(或)更改解釋器源代碼。相對(duì)于傳統(tǒng)的CGI語(yǔ)言,PHP擁有下列超群的特性:
(1)易學(xué)易用:PHP的語(yǔ)法結(jié)構(gòu)大部分借用了C、Java、Perl的好的語(yǔ)法框架,有以上編程經(jīng)驗(yàn)的開發(fā)人員可快速地掌握投入實(shí)際使用。
┊ (2)運(yùn)行速度快:PHP采用HTML內(nèi)置標(biāo)記技術(shù),解釋程序本身作為Web服務(wù)器的一
┊ 個(gè)模塊運(yùn)行,相當(dāng)大地提高了運(yùn)行時(shí)的解析速度。經(jīng)測(cè)試表明,在 Web站點(diǎn)訪問量
┊ 非常大時(shí),PHP的解析速度相當(dāng)于傳統(tǒng)CGI程序的4倍,非常適合大中型站點(diǎn)的應(yīng)
┊ 用。
┊ (3)跨多個(gè)平臺(tái):目前PHP可在Windows、Unix、Linux的Web服務(wù)器上正常運(yùn)行,
┊ 支持IIS,Apache等通用Web服務(wù)器,用戶更換平臺(tái)時(shí),無需變換 PHP代碼,可即
┊
┊ 拿即用。
┊ (4)效率高:和其它的解釋性語(yǔ)言相比,PHP系統(tǒng)消耗較少的系統(tǒng)資源。當(dāng)PHP作為
┊ ApacheWeb服務(wù)器的一部分時(shí),運(yùn)行代碼不需要調(diào)用外部二進(jìn)制程序,服務(wù)器解釋
┊ 腳本不需要承擔(dān)任何額外負(fù)擔(dān)。
┊ (5)開放源碼:所有的PHP源碼都可以得到。
┊ (6)沒有運(yùn)行費(fèi)用:PHP是免費(fèi)的。
裝 (7)基于服務(wù)器端:由于PHP是在Web服務(wù)器端運(yùn)行的,PHP程序可以很大、很復(fù)雜
┊
┊ 而不會(huì)降低客戶端的運(yùn)行速度。
┊ (8)嵌入HTML:因?yàn)镻HP語(yǔ)言可以嵌入到HTML內(nèi)部,所以PHP容易學(xué)習(xí)。
┊ (9)簡(jiǎn)單的語(yǔ)言:和Java和C++不同,PHP語(yǔ)言堅(jiān)持以基本語(yǔ)言為基礎(chǔ),然而它的功
┊ 能也強(qiáng)大到足以支持任何類型的 Web站點(diǎn)。
訂 (10)極其強(qiáng)大的數(shù)據(jù)庫(kù)支持:PHP最強(qiáng)大也最有代表性的特點(diǎn)在于它的數(shù)據(jù)庫(kù)層,它
┊ 內(nèi)置了對(duì)很多數(shù)據(jù)庫(kù)的支持,而不再需要特殊擴(kuò)充,使得編寫基于數(shù)據(jù)庫(kù)的網(wǎng)頁(yè)變得
┊
┊ 非常簡(jiǎn)單。目前所支持的數(shù)據(jù)庫(kù)有 Oracle、Sybase、FilePro、mSQL、Velocis、MySQL、
┊ In-formix、Solid、dBase、ODBC、Unix、dbm、PostgreSQL、MSSQLSERVER等。
┊ 針對(duì)每個(gè)數(shù)據(jù)庫(kù)都有一組函數(shù)用于數(shù)據(jù)庫(kù)訪問和操作,如對(duì) MySQL有mysql_close、線 mysql_connect、mysql_create_db、mysql_db_query等函數(shù)。
┊ (11)文件存?。篜HP有許多支持文件存取的函數(shù)。
┊ (12)文本處理:PHP有許多函數(shù)處理字符串,其中包括模式匹配的能力。
┊
┊ (13)復(fù)雜的變量:PHP支持標(biāo)量、數(shù)組、關(guān)聯(lián)數(shù)組等變量,這給用戶提供了以支持其
┊ 它的高級(jí)數(shù)據(jù)結(jié)構(gòu)的堅(jiān)實(shí)基礎(chǔ)。
┊ (14)圖像處理:用戶可以使用PHP動(dòng)態(tài)地創(chuàng)建圖像。
┊
┊ 2.3MySQL數(shù)據(jù)庫(kù)技術(shù)
┊ 2.3.1MySQL數(shù)據(jù)庫(kù)概述
┊
┊ MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng), 開發(fā)者為瑞典MySQLAB公司。目
前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。MySQL的特性:(1)核心程序采用完全的多線程編程。線程是輕量級(jí)的進(jìn)程,它可以靈活的為用戶提供服務(wù),而不用浪費(fèi)過多的體統(tǒng)資源。
┊ (2)可運(yùn)行在不同的平臺(tái)上。(3)它有一個(gè)非常靈活且安全的權(quán)限和口令系統(tǒng),當(dāng)客戶
┊ 與一個(gè)服務(wù)器鏈接時(shí),它們之間所有的口令傳送被加密,而且它允許基于主機(jī)的認(rèn)證。
┊ (4)它擁有一個(gè)非常快速的基于線程的內(nèi)存分配系統(tǒng),而且沒有內(nèi)存漏洞,所以可以
┊ 不斷地使用而不用擔(dān)心其穩(wěn)定性。事實(shí)上,它的穩(wěn)定性足以應(yīng)付一個(gè)超大規(guī)模的數(shù)據(jù)
┊ 庫(kù),如跨國(guó)公司的處理流程。(5)PHP的強(qiáng)力支持。PHP中提供了一整套的MySQL
┊ 函數(shù),用來對(duì)MySQL進(jìn)行支持。
┊
┊ 與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQLServer等相比,MySQL自有它的
┊ 不足之處,如規(guī)模小、功能有限等,但是這絲毫也沒有減少它受歡迎的程度。對(duì)于一
┊ 般的個(gè)人使用者和中小型企業(yè)來說, MySQL 提供的功能已經(jīng)綽綽有余,而且由于
┊ MySQL是開放源碼軟件,因此可以大大降低總體成本。
┊ 相對(duì)說來,MySQL內(nèi)定最大連結(jié)數(shù)為 100個(gè)使用者。但是,我們絕對(duì)不可以
┊ 用一個(gè)程序的內(nèi)建設(shè)定來判斷它的效能。到目前為止,我們還沒聽說過使用 MySQL
裝 的較大而且訪問頻繁的網(wǎng)站上的用戶有任何抱怨。
┊
┊ 2.3.2MySQL圖形管理工具phpMyAdmin
┊ MySQL 的標(biāo)準(zhǔn)操作全部是在字符界面下的,這樣可能會(huì)讓習(xí)慣圖形界面的用戶
┊ 覺得不友好。因此出現(xiàn)了一些非命令行方式的管理 MySQL的工具。
┊ 使用最多的MySQL管理工具是phpMyAdmin。phpMyAdmin(簡(jiǎn)稱PMA)是一個(gè)訂
┊ 用PHP編寫的在網(wǎng)絡(luò)上直觀管理 MySQL數(shù)據(jù)庫(kù)的軟件,是眾多MySQL管理員和網(wǎng)
┊ 站管理員的首選數(shù)據(jù)庫(kù)維護(hù)工具,通過phpMyAdmin可以完全對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行
┊ 操作,例如建立、復(fù)制、刪除數(shù)據(jù)等。
┊ phpMyAdmin的主界面如圖2.1所示。
┊線
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 圖2.1phpMyAdmin主界面
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
┊
┊
┊
┊
┊
┊
┊
共43
第
PAGE
11
頁(yè)
頁(yè)
2.4論壇采用B/S架構(gòu)
PHP采用瀏覽器/服務(wù)器(B/S)模式架構(gòu)。所謂B/S結(jié)構(gòu),就是通過瀏覽器(Browser)來訪問服務(wù)器(Server)上的內(nèi)容,客戶端不需要運(yùn)行其他軟件。
B/S結(jié)果的優(yōu)點(diǎn)是維護(hù)方便??蛻舳诉\(yùn)行的軟件是一個(gè)隨操作系統(tǒng)同時(shí)發(fā)布的瀏覽
┊
┊ 器,例如IE,而不用安裝其他軟件。瀏覽器通過網(wǎng)絡(luò)獲取服務(wù)器的信息。 B/S結(jié)構(gòu)系
┊ 統(tǒng)的所有的維護(hù)、升級(jí)工作都只在服務(wù)器上運(yùn)行,服務(wù)器代碼修改后,客戶端就能獲
┊ 取最新的信息。
┊ 服務(wù)器端的PHP代碼會(huì)轉(zhuǎn)化為HTML代碼傳輸?shù)娇蛻舳?,一個(gè)基本的HTML代碼
┊ 如下所示:
┊ <html>
┊ <head>
┊
┊ <title>標(biāo)題</title>
┊ <body>
┊ 主題
┊ </body>
裝 </head>
┊ </html>
┊
┊
┊ 在實(shí)際應(yīng)用中,通常PHP代碼和HTML代碼混合使用以完成一個(gè)頁(yè)面的顯示。
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
總體設(shè)計(jì)
3.1論壇可行性分析
可行性研究的目的是為了對(duì)問題進(jìn)行研究, 以最小的代價(jià)在最短的時(shí)間內(nèi)確定問
┊ 題是否可解,經(jīng)過對(duì)項(xiàng)目進(jìn)行詳細(xì)調(diào)查研究,進(jìn)而便能初擬系統(tǒng)規(guī)劃報(bào)告,對(duì)系統(tǒng)開
┊ 發(fā)中將要面臨的問題及其解決方案進(jìn)行初步設(shè)計(jì)及合理安排。 下面簡(jiǎn)要對(duì)本系統(tǒng)開發(fā)
┊ 的可行性加以論述:
┊ 在經(jīng)濟(jì)可行性上,由于本系統(tǒng)是基于開源項(xiàng)目,在整個(gè)過程使用 WAMP架構(gòu),
┊
┊ 而且是免費(fèi)的,同時(shí)在設(shè)計(jì)過程我參照了相關(guān)系統(tǒng)來設(shè)計(jì),比如用 asp論壇或jsp論
┊ 壇。當(dāng)然,系統(tǒng)也將按照軟件工程的步驟來完成。
┊ 在技術(shù)可行性上,系統(tǒng)將基于MVC架構(gòu),MVC 即視圖,模型,控制器。這種
┊ 設(shè)計(jì)模式是一個(gè)很好系統(tǒng)開發(fā)的途徑,我們可以為一個(gè)模型在運(yùn)行同時(shí)建立和使用多
┊ 個(gè)視圖,這樣就可以使系統(tǒng)在健壯性,代碼重用和結(jié)構(gòu)方面上一個(gè)新的臺(tái)階。除此之
┊ 外,因?yàn)槟P酮?dú)立,這樣就可以把一個(gè)模型獨(dú)立地移植到新的平臺(tái)工作。
┊
┊ 在社會(huì)可行性上,論壇在當(dāng)今非常流行,很大一部分是歸結(jié)于社會(huì)的發(fā)展:從互
裝 聯(lián)網(wǎng)最終用戶角度來講,論壇的出現(xiàn),大規(guī)模實(shí)現(xiàn)了使用者從實(shí)在的世界到網(wǎng)絡(luò)虛禮
┊ 的世界;從網(wǎng)站角度來看,所有網(wǎng)站設(shè)計(jì)出來就是要有人訪問和交流。而論壇系統(tǒng)完
┊ 全符合網(wǎng)站的要求。從這兩個(gè)方面上可看出,本系統(tǒng)的開發(fā)和應(yīng)用能給互聯(lián)網(wǎng)帶來新
┊ 的交流工具與Web應(yīng)用,能促進(jìn)網(wǎng)絡(luò)的發(fā)展,因此具有很好的社會(huì)作用。
┊ 從以上三點(diǎn)可以得知,開發(fā)此系統(tǒng)是可行的。
┊
訂
┊ 3.2 論壇需求分析
┊ 需求定義是對(duì)系統(tǒng)的術(shù)語(yǔ)描述,分析系統(tǒng)是否能實(shí)現(xiàn),或者是否能提供更多的功
┊ 能。
┊ 我們應(yīng)該從使用者的角度來分析和編寫一個(gè)論壇系統(tǒng), 首先要確定論壇的功能是
┊ 什么,也是用戶想要的論壇提供哪些功能。 我們?cè)谑褂谜搲臅r(shí)是按照一定的流程來線 進(jìn)行的,如:用戶注冊(cè)登入論壇,就一個(gè)或幾個(gè)話題展開討論,通過發(fā)帖功能來發(fā)布
┊
┊ 新的話題,通過回帖功能來回復(fù)已有的話題。管理員要管理論壇,具有的功能是創(chuàng)建、
┊ 編輯、刪除論壇的版塊,管理注冊(cè)的用戶,管理帖子。這樣的流程就決定了論壇所應(yīng)
┊ 具有的功能如圖3.1所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 圖3.1流程圖
┊ 帖子類有瀏覽、發(fā)帖、回帖和管理四個(gè)方法,瀏覽方法又可分為列表和查看兩個(gè)
┊
┊ 子方法,管理方法又可分為編輯、刪除、置頂三個(gè)子方法。如圖 3.2所示,只有管理
裝 員可以管理帖子,一般用戶沒這個(gè)權(quán)限的。
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊ 圖3.2帖子對(duì)象相關(guān)用例圖
┊ 用戶類有注冊(cè)、登入和管理三個(gè)方法,管理方法又可分為添加、刪除和設(shè)置權(quán)限
┊
┊ 三個(gè)子方法。如圖3.3所示,用戶的信息和權(quán)限是由管理員來設(shè)置管理的。
┊
┊
┊
┊
┊
┊
┊
┊
┊ 圖3.3用戶對(duì)象相關(guān)用例圖
┊
┊ 這樣,當(dāng)初列出的功能列表就分別有了各自的歸屬對(duì)象。
┊ 論壇一般存在兩種用戶,即注冊(cè)用戶和管理員。用戶的權(quán)限是向下覆蓋的,即上
┊ 級(jí)權(quán)限包括下級(jí)的權(quán)限,在論壇中,管理員是上級(jí)權(quán)限。接下來,需要將不同類的對(duì)裝 象及其方法分配給不同的論壇用戶。
┊ 與注冊(cè)用戶相關(guān)的功能,就是論壇的前臺(tái)的主要功能。論壇系統(tǒng)的前臺(tái),是用戶
┊ 討論問題的平臺(tái),發(fā)帖、瀏覽、回帖一直貫穿用戶的前臺(tái)活動(dòng)。同時(shí),由于論壇系統(tǒng)
┊ 的帖子管理是管理員在瀏覽帖子時(shí)進(jìn)行的,所以編輯帖子、刪除帖子和置頂帖子等功
┊
┊ 能也安排在前臺(tái)實(shí)現(xiàn)、其他與管理員相關(guān)的功能,包括版塊管理、用戶管理和設(shè)置都
訂 需要管理員在后臺(tái)進(jìn)行操作。
┊ 通過以上的分析,論壇的基本功能就可以從眾多需求中篩選出來。
┊ 現(xiàn)在,讓我們來看看哪些是基本功能。
┊ 發(fā)帖。論壇最初是為了相互討論話題而誕生的,發(fā)表帖子就是表達(dá)自己的看法,
┊ 與他人進(jìn)行討論,因?yàn)榘l(fā)帖是論壇首要的功能。
┊
線 瀏覽帖子。發(fā)表了帖子,就要供他人瀏覽查看,使他人分享自己的想法和經(jīng)驗(yàn)。
┊ 回帖。瀏覽了他人發(fā)表帖子,就要發(fā)表自己的想法,參與討論,就可以回復(fù)這
┊ 帖子。
┊ 發(fā)帖、瀏覽帖子和回帖的循環(huán)就構(gòu)成了論壇,三大基本功能的相互關(guān)系如圖 3.4
┊
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
共43
第
PAGE
15
頁(yè)
頁(yè)
功能模塊的設(shè)計(jì)
圖3.4論壇的基本功能
上一節(jié)中確定了論壇的整體需求和詳細(xì)需求。 但是只知道需求還是不行的,整體需求是對(duì)系統(tǒng)目標(biāo)的一個(gè)模糊描述,經(jīng)過分析后的詳細(xì)需求是對(duì)系統(tǒng)中要實(shí)現(xiàn)功能的
┊ 設(shè)計(jì)語(yǔ)言的轉(zhuǎn)換表達(dá),一個(gè)是由用戶表達(dá)的,一個(gè)是由系統(tǒng)的編寫者來分析表達(dá)的。
┊ 但是這些需求的描述,無論多詳細(xì),都不能歸納成系統(tǒng)的相關(guān)模塊,每個(gè)模塊實(shí)際就
┊ 是功能的合理組合。要實(shí)現(xiàn)一個(gè)系統(tǒng),還需要從尋求分析上升到軟件設(shè)計(jì)階段。
┊ 從上一節(jié)需求分析中得知,可以將功能分為前臺(tái)和后臺(tái)兩類,因此模塊也分為兩
┊
┊ 大類:前臺(tái)模塊和后臺(tái)模塊。
┊ 用戶在前臺(tái)的注冊(cè)、登錄、以及修改個(gè)人的注冊(cè)信息組合成注冊(cè)登錄模塊; 用戶
┊ 瀏覽模塊、瀏覽主題帖列表、查看帖子組合成瀏覽模塊;用戶發(fā)帖、回帖、編輯自己
┊ 發(fā)布的帖子組合成發(fā)帖回帖模塊;管理員編輯帖子、刪除帖子和置頂帖子組合成管理
┊ 帖子模塊。以上四個(gè)模塊組成前臺(tái)的功能模塊。
┊ 后臺(tái)模塊都是與管理員相關(guān)的,設(shè)置論壇參數(shù)單獨(dú)為后臺(tái)設(shè)置模塊;創(chuàng)建、修改
┊
┊ 和刪除版塊為管理版塊模塊;添加、刪除和設(shè)置權(quán)限為管理用戶模塊。
裝 如圖3.5所示是論壇的模塊體系圖。
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
┊
┊
┊ 圖3.5論壇的模塊體系圖
┊ 所以對(duì)于注冊(cè)用戶,在論壇的行為可以歸納如下行為。
┊ 注冊(cè)個(gè)人身份,登錄論壇,成功后可以修改自己的注冊(cè)信息。這些行為只與
┊
┊ 用戶自身相關(guān),功能獨(dú)立,設(shè)計(jì)成注冊(cè)登錄模塊。
瀏覽版塊列表,選擇某版塊,顯示其下的主題帖列表,查看帖子內(nèi)容。這些行為是用戶讀取論壇的版塊及其帖子的相關(guān)信息,設(shè)計(jì)成瀏覽模塊。
發(fā)表自己的帖子,回復(fù)已有的帖子,同時(shí)也可以編輯自己的帖子。這些行為是用戶參與論壇討論,發(fā)表自己見解的,設(shè)計(jì)為發(fā)帖回帖模塊。
┊ 對(duì)于管理員,需要負(fù)責(zé)整個(gè)論壇的正常運(yùn)轉(zhuǎn),因此需要更多的管理功能,可以歸
┊ 納如下行為。
┊ 具備注冊(cè)用戶的功能,即管理員也是論壇用戶。
┊ 管理帖子。管理員對(duì)論壇的帖子有監(jiān)督的權(quán)利,好的帖子要獎(jiǎng)勵(lì),搗亂的帖
┊ 子要?jiǎng)h除,置頂帖子,這些行為都是針對(duì)帖子的操作,設(shè)計(jì)成管理帖子模塊。
┊ 管理版塊。擁護(hù)注冊(cè)成功后,需要管理員進(jìn)行創(chuàng)建、管理版塊信息,這些針
┊
┊ 對(duì)版塊的操作,設(shè)計(jì)成管理版塊模塊。
┊ 管理用戶。用戶注冊(cè)成功后,需要管理員賦予權(quán)限,才能使用論壇的相關(guān)功
┊ 能。同時(shí),管理員可以自主添加、刪除用戶,這些針對(duì)用戶信息的操作沒,
┊ 設(shè)計(jì)成管理用戶模塊。
┊ 通過上面的分析我們可以得到用戶的整體用例圖,如圖 3.6所示:
┊
裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 圖3.6用戶整體用例圖
┊ 從用例圖中,可以得到論壇的功能框架,即系統(tǒng)的各個(gè)部分已經(jīng)確定,知道論壇
是什么樣子。
論壇系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)策略
數(shù)據(jù)庫(kù)是信息系統(tǒng)的核心,它具有對(duì)信息進(jìn)行收集、組織、存儲(chǔ)、加工、抽取和
傳播等功能。構(gòu)筑數(shù)據(jù)庫(kù)和蓋房子奠基相似,數(shù)據(jù)庫(kù)的設(shè)計(jì)直接關(guān)系系統(tǒng)的成敗, 因
┊ 此要獲得優(yōu)秀的信息管理系統(tǒng)必須采用科學(xué)方法進(jìn)行合理的數(shù)據(jù)庫(kù)設(shè)計(jì)。 本節(jié)就數(shù)據(jù)
┊ 庫(kù)的設(shè)計(jì)策略方面的內(nèi)容作詳細(xì)討論。
┊ 該論壇系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)分為概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)。
┊ 3.4.1 概念結(jié)構(gòu)設(shè)計(jì)
┊
┊ 數(shù)據(jù)分析是數(shù)據(jù)庫(kù)設(shè)計(jì)的第一步,包括下列內(nèi)容:
┊ 1、調(diào)查論壇系統(tǒng)需要實(shí)現(xiàn)的功能
┊ 本論壇系統(tǒng)要實(shí)現(xiàn)以下功能:
┊ 1)系統(tǒng)功能(指論壇程序自動(dòng)實(shí)現(xiàn)的功能)
┊ ①分論壇顯示
┊ ②主題顯示
┊
┊ ③在線用戶列表
裝 2)普通用戶功能(論壇用戶能夠?qū)崿F(xiàn)的功能)
┊ ①登錄和退出論壇
┊ 用戶需使用其在論壇中注冊(cè)所得帳號(hào)和密碼登錄 (未登錄而直接進(jìn)入論壇的用戶稱為
┊ 訪客,訪客只能查看帖子,不具備其它功能)
┊ ②用戶注冊(cè)
┊ ③發(fā)文功能訂
┊ 包括發(fā)帖子、回復(fù)帖子、修改刪除自己發(fā)布的帖子
┊ ④查詢功能
┊ 可查詢注冊(cè)用戶及其對(duì)應(yīng)的帖子
┊ ⑤用戶控制面板
┊ 用戶可在此處修改自己的個(gè)人資料,定制個(gè)性化的論壇功能線 3)版主功能(版主,也屬于論壇用戶的一種)
┊
┊ ①具有全部普通用戶功能
┊ ②版內(nèi)文章管理,包括增刪改查
┊ ③取消或恢復(fù)用戶在版內(nèi)的發(fā)文權(quán)
┊ ④重要主題前置功能
┊ 4)管理員功能(論壇管理員能夠?qū)崿F(xiàn)的功能)
┊ ①管理員具有普通用戶和版主的所有功能
┊ ②分論壇管理功能
┊
┊ ③論壇內(nèi)的文章管理,包括增刪改查
┊ ④論壇用戶管理,包括增刪用戶,指定版主等
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
┊
┊
┊
┊
┊
┊
共43
第
PAGE
19
頁(yè)
頁(yè)
⑤帳號(hào)封殺列表
2、編寫數(shù)據(jù)流程圖
根據(jù)論壇系統(tǒng)的具體功能,編寫數(shù)據(jù)流程模式圖如圖 3.7所示。
┊
┊
┊
┊
┊
┊ 3、編寫系統(tǒng)功能結(jié)構(gòu)圖
圖3.7數(shù)據(jù)流程模式圖
┊ 系統(tǒng)功能結(jié)構(gòu)圖如圖3.8所示。
┊
┊
┊
┊
┊
┊裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊ 圖3.8系統(tǒng)功能結(jié)構(gòu)圖
┊
線 根據(jù)上述分析的結(jié)果,編制初步E-R圖。它表示信息世界中的信息實(shí)體及其相互聯(lián)系,
┊ 初步E-R圖如圖3.9所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊裝
┊
┊ 3.4.2 邏輯結(jié)構(gòu)設(shè)計(jì)
┊ 1、E-R圖向關(guān)系數(shù)據(jù)模型轉(zhuǎn)換
圖3.9系統(tǒng)初步E-R圖
┊ 定義一個(gè)關(guān)系模型是一個(gè)二維表 R(A1,A2,,, An),其中R為關(guān)系名,Ai為屬
┊ 性名。確切講,一個(gè)關(guān)系模型對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)基表。邏輯結(jié)構(gòu)設(shè)計(jì)首先是將基本 E-R
訂 圖向關(guān)系數(shù)據(jù)模型轉(zhuǎn)換,轉(zhuǎn)換的方法涉及深?yuàn)W的專業(yè)理論,此處不作論述。最簡(jiǎn)單的
┊
┊ 轉(zhuǎn)換可以將基本E-R圖中的每個(gè)實(shí)體定義為一個(gè)關(guān)系模型,一個(gè)聯(lián)系也是一個(gè)關(guān)系,
┊ 從而得到關(guān)系模型。在模型轉(zhuǎn)換中,最基本的要求是保證每個(gè)關(guān)系至少有一個(gè)碼
┊ (Key);關(guān)系中每個(gè)屬性都是不可分的數(shù)據(jù)項(xiàng),不允許表中有表;一個(gè)關(guān)系只是描述
┊ 一個(gè)信息實(shí)體,或者實(shí)體間的一種聯(lián)系。線 2、規(guī)范化
┊ 規(guī)范化是數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的指南和工具,它貫穿數(shù)據(jù)庫(kù)設(shè)計(jì)過程中的數(shù)據(jù)分析、
┊ 基本E-R圖的設(shè)計(jì)和邏輯設(shè)計(jì)。特別在邏輯設(shè)計(jì)中,通過對(duì)關(guān)系模型 R(A1,A2,,
┊
┊ An)的函數(shù)依賴的進(jìn)行模式分解,使模型達(dá)到 BCNF、2NF、或3NF范式,可以消除
┊ 更新異常等,當(dāng)然有時(shí)為了提高查詢速度,也可以犧牲規(guī)范化程度。
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
┊
共43
第
PAGE
25
頁(yè)
頁(yè)
論壇數(shù)據(jù)庫(kù)分別包括10個(gè)表,如圖3.10所示:
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊ 圖3.10數(shù)據(jù)庫(kù)表信息
┊ 其中bans表記錄著用戶ID,用戶帳號(hào),IP地址,email地址和顯示給被封用戶線 信息的信息等,主鍵為id。如圖3.11所示:
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 圖3.11bans表
表categories記錄著版塊ID,版塊名和位置信息,主鍵為ID。如圖3.12所示:
┊
┊ 圖3.12 Categories表
┊
┊ 表config記錄著論壇配置選項(xiàng)名、配置選項(xiàng)值信息。如圖 3.13所示。
┊
┊
┊
┊ 如圖3.13 config表
┊ 表forums記錄著論壇id號(hào),論壇名,論壇描述,論壇版主,主題總數(shù),最后回
┊ 復(fù)時(shí)間,最后回復(fù)帖子的id,最后回復(fù)人的用戶名和是否只允許管理員和版主訪問等
┊
┊ 信息,其中id為主鍵。如圖3.14所示。
┊裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊ 如圖3.14 forums表
┊
┊
┊
┊
┊ 表online記錄著用戶id,用戶名稱,用戶上次訪問的時(shí)間信息,主鍵為 user_id。
┊ 如圖3.15所示。
┊
┊
圖3.15 online表
┊ 表posts記錄著帖子id號(hào),發(fā)帖人用戶名,發(fā)帖人id號(hào),發(fā)帖人ip,發(fā)帖人email,
┊ 發(fā)帖內(nèi)容,是否轉(zhuǎn)換笑臉符號(hào)和發(fā)帖時(shí)間等信息,主鍵為 id。如圖3.16所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
裝 圖3.16 posts表
┊
┊ 表search_matches描述著匹配所涉及的帖子的id,匹配所涉及到的詞和主題匹配
┊ 信息。如圖3.17所示。
┊
┊訂
┊
┊
┊ 圖3.17 search_matches表
┊ 表search_results記錄著查詢結(jié)果id號(hào),查詢?nèi)擞脩裘筒樵償?shù)據(jù)的連續(xù)的 php
┊ 數(shù)組信息,主鍵為id。如圖3.18所示。線
┊
┊
┊
┊ 圖3.18 表search_results
┊
┊
┊ topics記錄著主題帖id號(hào),發(fā)主題的用戶名,主題題目,發(fā)主題的時(shí)間,最后回
┊
┊ 復(fù)時(shí)間,最后回復(fù)的id,最后回復(fù)的用戶名,查看主題的次數(shù),回復(fù)的帖數(shù)和是否設(shè)
┊ 置置頂?shù)刃畔?,主鍵為id。如圖3.19所示。
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
共43
第
PAGE
27
頁(yè)
頁(yè)
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 圖3.19 topics表
┊
┊
裝 表users記錄著用戶id,用戶名,用戶密碼,用戶email,用戶等級(jí)頭銜,真實(shí)姓
┊ 名,用戶個(gè)人網(wǎng)站,用戶QQ號(hào)碼,用戶MSN號(hào)碼,用戶個(gè)性簽名,用戶所在時(shí)區(qū),
┊ 用戶身份等信息,主鍵為id。如圖3.20所示。
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
┊
┊
┊
┊ 圖3.20 users表
┊
┊
┊ 上述給出數(shù)據(jù)庫(kù)中的表信息,本數(shù)據(jù)庫(kù)包含封用戶 IP表、類別版塊表、默認(rèn)配
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
┊
┊
共43
第
PAGE
30
頁(yè)
頁(yè)
置表、論壇表、在線用戶表、帖子表、查詢匹配表、查詢結(jié)果表、主題表、用戶表和數(shù)據(jù)庫(kù)中各個(gè)表的列屬性。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
┊
┊
┊
┊
┊
論壇系統(tǒng)詳細(xì)設(shè)計(jì)
論壇在Internet上是很常見的,但是要實(shí)現(xiàn)一個(gè)論壇,工作量很大。論壇系統(tǒng)大致可以分為兩個(gè)組成部分:面向系統(tǒng)管理者的論壇管理系統(tǒng)和面向一般用戶的論壇服務(wù)系
┊ 統(tǒng)。無論是管理員方還是用戶方都不必安裝該系統(tǒng)。 但是,為了解釋網(wǎng)頁(yè)代碼中的服
┊ 務(wù)器端腳本語(yǔ)言代碼,服務(wù)器端必須安裝相應(yīng)的 WEB服務(wù)器(比如Apache,IIS),
┊ 腳本代碼解釋引擎(比如Apache)和數(shù)據(jù)庫(kù)服務(wù)器(如MySQL)。系統(tǒng)管理員通過帳戶
┊ 密碼驗(yàn)證后登錄論壇管理系統(tǒng),進(jìn)行相應(yīng)的后臺(tái)管理如用戶管理、版塊管理和文章管
┊
┊ 理。而對(duì)于用戶,則要先通過注冊(cè)提出申請(qǐng),經(jīng)管理員審核后成為論壇系統(tǒng)的正式用
┊ 戶。用戶通過帳戶密碼驗(yàn)證登錄論壇服務(wù)系統(tǒng)后,能夠在論壇內(nèi)發(fā)表文章,回復(fù)文章,
┊ 查詢文章,瀏覽文章等。所以,論壇系統(tǒng)應(yīng)該能夠識(shí)別四類不同權(quán)限級(jí)別的用戶。第
┊ 一類是新注冊(cè)用戶,尚未通過系統(tǒng)管理員審核,擁有瀏覽文章,查詢個(gè)體信息的權(quán)限;
┊ 第二類是一般用戶,已經(jīng)通過審核,能夠在論壇討論區(qū)發(fā)表文章,回復(fù)文章,接收信
┊ 件,回復(fù)信件;第三類是版主,能夠在相應(yīng)的版塊刪除文章,封鎖 ID限制發(fā)文以及
┊
┊ 解除對(duì)一般用戶的封鎖;第四類是系統(tǒng)管理員,擁有最高權(quán)限,能夠?qū)徍诵掠脩糇?cè)
裝 請(qǐng)求,權(quán)限申請(qǐng)并執(zhí)行相應(yīng)的裁決。一般網(wǎng)站論壇需要實(shí)現(xiàn)的功能包括: 數(shù)據(jù)庫(kù)的訪
┊ 問,CSS樣式表的使用,論壇系統(tǒng)功能的實(shí)現(xiàn),數(shù)據(jù)的安全性研究與實(shí)現(xiàn)4個(gè)功能。
┊
┊ 4.1 數(shù)據(jù)庫(kù)的訪問
┊ 無論是管理者還是用戶,在操作論壇系統(tǒng)之前,首先要與數(shù)據(jù)庫(kù)建立連接。掌握
┊ 網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程方法也是該課題的主要目的之一。訂
┊ PHP語(yǔ)言提供了大量的數(shù)據(jù)庫(kù)操作函數(shù),對(duì) MySQL 進(jìn)行了很好的支持。對(duì)
┊ MySQL的訪問,首先通過PHP的函數(shù)mysql_pconnect或mysql_connect建立對(duì)數(shù)據(jù)
┊ 庫(kù)服務(wù)器的連接,然后通過 mysql_select_db函數(shù)從數(shù)據(jù)庫(kù)服務(wù)器中選擇本論壇系統(tǒng)
┊ 的數(shù)據(jù)庫(kù),如果需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,可以用 mysql_query函數(shù)向MySQL數(shù)據(jù)庫(kù)
┊ 發(fā)送SQL語(yǔ)句來實(shí)現(xiàn),然后再通過mysql_fetch_row等函數(shù)來取回操作的結(jié)果。線 訪問論壇系統(tǒng)數(shù)據(jù)庫(kù)的功能實(shí)現(xiàn)如下:
┊
┊ Connect連接MySQL;驗(yàn)證管理員用戶名和密碼;if正確do選擇數(shù)據(jù)庫(kù)。
┊ //不能連接數(shù)據(jù)庫(kù)顯示錯(cuò)誤信息
┊ error('Unabletoselectdatabase.'.mysql_error(), LINE , FILE );}
┊ else
┊ //不能連接數(shù)據(jù)庫(kù)服務(wù)器顯示錯(cuò)誤信息
┊ error('UnabletoconnecttoMySQLserver.'.mysql_error(), LINE , FILE );
┊
┊ }
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
┊
┊
┊
┊
┊
共43
第
PAGE
32
頁(yè)
頁(yè)
4.2CSS樣式表的使用
通過瀏覽互聯(lián)網(wǎng)上的論壇,我們知道基本上所有的論壇系統(tǒng)都提供了很多的風(fēng)格來實(shí)現(xiàn)更好的用戶體驗(yàn),用戶可以根據(jù)喜好來選擇自己喜歡的風(fēng)格,這些風(fēng)格的實(shí)現(xiàn)是通過CSS樣式表來實(shí)現(xiàn)的。本論壇系統(tǒng)也提供了這樣的功能, 該論壇系統(tǒng)風(fēng)格的
┊ CSS樣式表部分代碼如下:
┊ /*設(shè)置BODY的背景*/
┊ BODY{background-color:#FFFFFF}
┊ /*設(shè)置表格列的文字和顏色屬性*/
┊ TD{
┊ font:12pxVerdana,Arial,Helvetica,sans-serif;
┊
┊ color:#333333}
┊ /*設(shè)置輸入框和復(fù)選框的字體和顏色*/
┊ INPUT,SELECT{
┊ font:12pxVerdana,Arial,Helvetica,sans-serif;
┊ color:#333333}
┊ /*設(shè)置文本框字體和顏色*/
裝
┊ TEXTAREA{
┊ font:12pxVerdana,Arial,Helvetica,sans-serif;
┊ color:#333333}
┊ /*設(shè)置表單屬性*/
┊ FORM{margin:0}
訂
┊ 4.3 論壇系統(tǒng)功能的實(shí)現(xiàn)
┊
┊ 4.3.1 系統(tǒng)功能
┊ 1、分論壇顯示
┊ 論壇系統(tǒng)版塊和子論壇顯示關(guān)功能如下:
線 對(duì)數(shù)據(jù)表進(jìn)行操作,使用select分別查詢出所有類別版塊表catagories和論壇表forums
┊
┊ 中的版塊名稱和子論壇名稱,把類別版塊表catagories和論壇表forums進(jìn)行等值連接,
┊ 使用while語(yǔ)句循環(huán)取出版塊名和子論壇名,逐一輸出版塊和子論壇名稱;
┊
┊ 論壇系統(tǒng)版塊和子論壇顯示如圖 4.1所示。
┊
┊
┊
┊
┊ 2、主題顯示
┊
圖4.1論壇系統(tǒng)版塊和子論壇顯示圖
┊ 主題顯示主要功能實(shí)現(xiàn)如下:
┊ 在主題表topics中查詢主題id,使用while循環(huán)取出主題表中的主題名
┊ 論壇系統(tǒng)主題顯示如圖4.2所示。
┊
┊
┊
┊
┊裝
┊ 圖4.2論壇系統(tǒng)主題顯示圖
┊
┊
┊ 4.3.2 普通用戶功能
┊ 1、登錄和退出論壇
訂 登錄論壇系統(tǒng)關(guān)功能實(shí)現(xiàn)如下:
┊ 點(diǎn)擊登錄跳轉(zhuǎn)到login.php登錄處理頁(yè)面,
┊
┊ 輸入用戶名密碼后提交表單數(shù)據(jù),對(duì)輸入的用戶名和密碼進(jìn)行去空格和轉(zhuǎn)譯操作
┊ 使用unescape將字符進(jìn)行轉(zhuǎn)義,使用trim對(duì)所提交的字符進(jìn)行去空格處理
┊ 查詢user表
線 if有此用戶then
┊ do檢查密碼是否正確;
┊ if密碼驗(yàn)證正確,顯示登錄成功返回主頁(yè)面
┊ else密碼不符合,提示密碼錯(cuò)誤;
┊
┊ Endif
┊ 系統(tǒng)登錄界面如圖4.3所示。
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
共43
第
PAGE
34
頁(yè)
頁(yè)
┊
┊
┊
┊
┊ 退出論壇系統(tǒng)功能實(shí)現(xiàn):
┊
圖4.3系統(tǒng)登錄界面
┊ 點(diǎn)擊退出登錄,從在線用戶表中刪除,使用WHERE從在線用戶表中選取用戶,并使
┊ 用DELETE語(yǔ)句刪除,then重定向到主頁(yè)index,php
┊
┊ 2、用戶注冊(cè)
┊ 用戶注冊(cè)包括填寫用戶名、密碼、郵箱。在注冊(cè)前要檢查該用戶名是否已經(jīng)被注
┊ 冊(cè)。密碼插入數(shù)據(jù)庫(kù)前要進(jìn)行加密處理。
┊ 點(diǎn)擊注冊(cè)轉(zhuǎn)到register.php,調(diào)用user表,檢查提交表單中用戶名是否已經(jīng)存在,如果裝
┊ 不存在,將檢查2次輸入密碼是否輸入相同,以及檢查提交郵箱格式是否正確,將注
┊ 冊(cè)信息保存至user表中。
┊ 檢查用戶名是否存在:
┊ If用戶名已存在 then
┊ Do返回注冊(cè)頁(yè)面重新輸入用戶名;訂 If2次密碼輸入不一致then
┊
┊ Do返回注冊(cè)頁(yè)面重新輸入密碼;
┊ If 檢查郵箱格式不正確then
┊ Do返回注冊(cè)頁(yè)面重新輸入郵箱;
┊ Else注冊(cè)成功將數(shù)據(jù)寫入用戶表;
線 Endif
┊
┊
┊ 用戶注冊(cè)界面如圖4.4所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 3、發(fā)文功能
┊
圖4.4用戶注冊(cè)界面
┊ 根據(jù)課題內(nèi)容參考的要求,發(fā)文功能包括發(fā)新帖子、回復(fù)帖子、修改刪除自己發(fā)布的
裝 帖子。此功能是對(duì)論壇系統(tǒng)數(shù)據(jù)庫(kù)表進(jìn)行增、刪、改的功能。
┊ 發(fā)新帖子功能如下:
┊ 如果是發(fā)表新帖子,點(diǎn)擊發(fā)新主題,生成一個(gè)發(fā)表新主題的頁(yè)面,將填寫的內(nèi)容提交,
┊ 分別對(duì)topic表和post表操作,使用INSERT語(yǔ)句將新帖數(shù)據(jù)插入主題表topic,將主
┊ 題帖子id,發(fā)帖人,發(fā)帖時(shí)間,帖子內(nèi)容等信息 insert進(jìn)post表,改變主題帖中的最
┊ 后回復(fù)last_post_id一項(xiàng),使用UPDATE更新topic表的屬性last_post_id,即最后發(fā)訂
┊ 表主題名稱,update更新用戶表users的用戶發(fā)帖數(shù)num_posts,和最后發(fā)帖時(shí)間
┊ 發(fā)表新帖子及回復(fù)界面如圖4.5、4.6所示。
┊
┊
┊線
┊
┊
┊
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
共43
第
PAGE
43
頁(yè)
頁(yè)
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊
┊
┊ 4、查詢功能
圖4.5發(fā)表新帖子界面
圖4.6回復(fù)界面
┊ 根據(jù)課題內(nèi)容參考的要求,查詢功能可查詢注冊(cè)用戶及其對(duì)應(yīng)的帖子。 等值連接posts
┊ 表和user表,查詢注冊(cè)用戶可對(duì)本論壇系統(tǒng)的 users表進(jìn)行查詢,posts表包括論壇系
┊
┊ 統(tǒng)所有的主題和回復(fù)內(nèi)容。本論壇系統(tǒng)的查詢功能可使用泛查找,通配符使用“ *”,
┊ 在對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢前要先把“*”號(hào)轉(zhuǎn)換成SQL語(yǔ)句中的“%”。連接user表,posts
和topics表,在user表中select該用戶名,列出該用戶的發(fā)帖信息。查詢功能界面如圖4.7所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
裝 5、用戶控制面板
圖4.7查詢功能界面
┊ 用戶控制面板是用戶對(duì)個(gè)人資料進(jìn)行添加、修改和刪除的地方,可通過對(duì) users
┊ 表的操作來完成此項(xiàng)功能。提交后使用 update語(yǔ)句對(duì)user表更新。
┊ 用戶控制面板界面如圖 4.8所示。
┊
┊訂
┊
┊
┊
┊
┊線
┊
┊
┊
┊ 圖4.8用戶控制面板界面
┊
┊ 4.3.3 版主功能
┊
┊ 1、具有全部普通用戶功能
┊ 2、版內(nèi)文章管理,包括增刪改查
┊ 本論壇系統(tǒng)在forums表中設(shè)置了moderators字段來記錄論壇的版主名,版主登錄系
┊ 統(tǒng)后,在進(jìn)入所管理的論壇前,先對(duì)版主身份進(jìn)行檢查,如果身份符合,則可享有和
發(fā)帖用戶一樣的處理帖子的權(quán)利。
版主版內(nèi)文章管理界面如圖4.9所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊ 圖4.9版主版內(nèi)文章管理界面
┊
┊ 3、取消或恢復(fù)用戶在版內(nèi)的發(fā)文權(quán)
┊
┊ 取消或恢復(fù)用戶在版內(nèi)的發(fā)文權(quán)是通過在 bans表中增加和刪除用戶來實(shí)現(xiàn)的,以
裝 添加禁止用戶為例,功能實(shí)現(xiàn)如下:
┊ 提交用戶名then
┊ Ifselectuser表,有該用戶信息then
┊ Doinsert插入bans表;
┊ Else提示沒有此用戶;
┊
訂
┊ 添加禁止用戶界面如圖4.10所示。
┊
┊
┊
┊
線 圖4.10添加禁止用戶界面
┊
┊ 4、重要主題前置功能
┊ 主題置頂功能實(shí)現(xiàn)如下:
┊ Update更新主題表topics中的sticky一項(xiàng),設(shè)置為1
┊
┊ 重要主題前置功能界面如圖4.11所示。
┊
┊
┊
┊
┊
┊
┊
┊ 4.3.4 管理員功能
┊
圖4.11重要主題前置功能界面
┊ 1、管理員具有普通用戶和版主的所有功能
┊ 2、分論壇管理功能
┊ 此功能是管理員對(duì)categories表的操作,比較簡(jiǎn)單。使用insert語(yǔ)句對(duì)categories表插
┊ 入版塊表單,或者使用update對(duì)已有版塊進(jìn)行更新。
┊ 分論壇管理功能界面如圖4.12所示。
┊
┊
┊
┊裝
┊
┊
┊
┊
┊訂
┊
┊
┊
┊
┊ 圖4.12分論壇管理功能界面
線 3、論壇內(nèi)的文章管理,包括增刪改查
┊ 此功能與版主版內(nèi)文章管理功能類似。對(duì) posts表update或delete操作
┊ 4、論壇用戶管理
┊ 根據(jù)課題內(nèi)容參考的要求,論壇用戶管理包括增刪用戶,指定版主等。由于篇幅的限
┊ 制,現(xiàn)對(duì)指定版主的主要功能如下:
┊
┊ 如果是指定版主操作
┊ if 用戶權(quán)限是不是管理員 then
┊ Do沒有權(quán)限
┊ Elseupdate更新USER表該用戶的status字段為1
┊
┊ 指定版主界面如圖4.13所示。
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊ 5、查所有人的IP
圖4.13指定版主界面
┊ 得到用戶ip地址的函數(shù)代碼如下:裝 functionget_remote_address()
┊ {/*$_SERVER["HTTP_X_FORWARDED_FOR"] :PHP定義的超全局變量,可以知道
┊
┊ 代理服務(wù)器的服務(wù)器名以及端口。 $_SERVER["HTTP_VIA"] 可以知道客戶的內(nèi)部
┊ ip*/
┊ if(isset($_SERVER['HTTP_X_FORWA--*/+*-RDED_FOR'])){// 進(jìn)行正則表達(dá)式匹配訂 if(preg_match('/[0-9]{1,3}\.[ -9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/',
┊ $_SERVER['HTTP_X_FORWARDED_FOR'],$addresses))
┊ return$addresses[0];}
┊
┊ /*如果沒有地址在HTTP_X_FORWARDED_FOR,嘗試HTTP_CLIENT_IP ,如果還沒
┊ 有則返回REMOTE_ADDR*/
線 return (isset($_SERVER['HTTP_CLIENT_IP'])) ? $_SERVER['HTTP_CLIENT_IP'] :
┊ $_SERVER['REMOTE_ADDR'];
┊ }
┊
┊ 4.4 數(shù)據(jù)的安全性研究與實(shí)現(xiàn)
┊
┊ 4.4.1 論壇系統(tǒng)的安全體系
┊ 論壇系統(tǒng)存儲(chǔ)了大量的敏感數(shù)據(jù),它關(guān)系到管理員和用戶雙方的利益。 而且在系
┊ 統(tǒng)運(yùn)行過程中,論壇管理員和用戶的操作都要涉及到這些敏感數(shù)據(jù)的處理, 因此,該
┊ 系統(tǒng)的安全性要求非常高。數(shù)據(jù)庫(kù)安全保密就是保證數(shù)據(jù)庫(kù)信息的完整、 可用,并可
┊
┊ 防止非授權(quán)用戶竊取或篡改數(shù)據(jù)信息。
為了保證數(shù)據(jù)庫(kù)的安全,主要采用了論壇用戶的安全管理、身份認(rèn)證和加密技術(shù)等安全機(jī)制來實(shí)現(xiàn)數(shù)據(jù)庫(kù)的安全。
MySQLserver主要完成數(shù)據(jù)庫(kù)對(duì)象的存儲(chǔ)、管理、接收、執(zhí)行客戶機(jī)傳來的數(shù)據(jù)、指令,并將其執(zhí)行結(jié)果返回客戶機(jī)。在實(shí)現(xiàn)安全管理中支持多級(jí)安全管理機(jī)制,即在
┊ 進(jìn)入系統(tǒng)時(shí),要驗(yàn)證用戶名和密碼。建立數(shù)據(jù)庫(kù)級(jí)安全管理,對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取時(shí),
┊ 對(duì)不同的用戶授予不同的權(quán)限,以限制不同的用戶操作數(shù)據(jù)庫(kù)的權(quán)限等。
┊
┊ 4.4.2 論壇系統(tǒng)安全性的實(shí)現(xiàn)
┊
┊ 1、安全管理
┊ 由于系統(tǒng)用戶種類較多,由管理員負(fù)責(zé)數(shù)據(jù)庫(kù)結(jié)構(gòu)的維護(hù)、 管理等工作。其他用
┊ 戶只能直接使用數(shù)據(jù)庫(kù)中的數(shù)據(jù),但是不能對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行更改。
┊ 2、用戶身份認(rèn)證
┊ 論壇中包含大量的敏感數(shù)據(jù),為保證系統(tǒng)數(shù)據(jù)在存儲(chǔ)時(shí)和網(wǎng)絡(luò)傳輸中不被未經(jīng)授
┊ 權(quán)的用戶訪問或解讀,需用用戶名來標(biāo)明用戶身份,經(jīng)系統(tǒng)鑒別用戶的合法性后,再
┊
┊ 利用口令進(jìn)一步核實(shí)用戶身份。為保證口令的安全性,在口令提交過程中,不采用明
裝 文形式,即:先對(duì)口令加密后再傳輸在數(shù)據(jù)庫(kù)中以密文形式存放, 這樣就可以保證其
┊ 安全性,使用戶和服務(wù)器在通信過程中,可以防竊聽、防干擾、防消息偽造。
┊ 3、加密技術(shù)
┊ 考慮到原始數(shù)據(jù)以可讀的形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,高明的入侵者可以從計(jì)算機(jī)系
┊ 統(tǒng)的內(nèi)存中導(dǎo)出所需要的信息,或者采用某種方式打入系統(tǒng),從系統(tǒng)的后備存儲(chǔ)器上
┊ 竊取數(shù)據(jù)或篡改數(shù)據(jù),這樣就無法保護(hù)數(shù)據(jù)的真實(shí)性、可靠性。因此,要徹底解決數(shù)訂
┊ 據(jù)庫(kù)的安全保密,除了在數(shù)據(jù)的傳輸過程中采取加密保護(hù)和控制非法訪問之外, 還必
┊ 須對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行加密保護(hù)。使得用戶在以明文的方式寫入數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)中保存
┊ 的是密文數(shù)據(jù);在讀出數(shù)據(jù)時(shí),則先把數(shù)據(jù)庫(kù)中的密文轉(zhuǎn)化成對(duì)應(yīng)的明文,然后再進(jìn)
┊ 行相應(yīng)的操作。
┊ 4、數(shù)據(jù)的備份
線 數(shù)據(jù)備份與恢復(fù)是實(shí)現(xiàn)信息安全運(yùn)行的重要技術(shù)之一,能保證信息系統(tǒng)因各種
┊
┊ 原因遭到破壞時(shí),能盡快投入使用。任何一個(gè)數(shù)據(jù)庫(kù)在使用過程中,都可能因各種原
┊ 因而使數(shù)據(jù)庫(kù)受到破壞,而導(dǎo)致系統(tǒng)崩潰,這時(shí)就需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的安全恢復(fù)。
┊ 使用MySQL圖形管理工具phpMyAdmin可以完成對(duì)數(shù)據(jù)的數(shù)據(jù)備份與恢復(fù)。
┊
┊
┊
┊
┊
┊
┊
論壇系統(tǒng)性能優(yōu)化
論壇系統(tǒng)測(cè)試
在開發(fā)論壇系統(tǒng)過程中,需要面對(duì)很多復(fù)雜的問題,因此,在軟件設(shè)計(jì)的過程不
┊ 可避免產(chǎn)生錯(cuò)誤。這里我們要求在每個(gè)設(shè)計(jì)階段都要經(jīng)過嚴(yán)格的測(cè)試, 盡可能早地發(fā)
┊ 現(xiàn)問題并解決。和一般的系統(tǒng)測(cè)試一樣,論壇系統(tǒng)的測(cè)試也要經(jīng)過單元測(cè)試、集成測(cè)
┊ 試、系統(tǒng)測(cè)試三個(gè)階段。其步驟如下圖 5.1圖:
┊
┊
┊
┊
┊
┊
┊
┊
┊
┊
裝 圖5.1系統(tǒng)測(cè)試
┊
┊ 1.單元測(cè)試
┊ 單元測(cè)試的用例從單元詳細(xì)設(shè)計(jì)中導(dǎo)出。在單元測(cè)試中可以采用功能性測(cè)試和結(jié)
┊ 構(gòu)性測(cè)試兩種。首先進(jìn)行功能性測(cè)試,對(duì)于每一個(gè)功能模塊通過不斷的邊界及實(shí)例測(cè)
┊
訂 試進(jìn)行錯(cuò)誤挖掘,以使每個(gè)功能模塊不斷完善。然后進(jìn)行單獨(dú)的結(jié)構(gòu)性測(cè)試,對(duì)于系
┊ 統(tǒng)結(jié)構(gòu)的每一個(gè)設(shè)計(jì)框架有個(gè)很好的總結(jié)和提煉。
┊ 2.集成測(cè)試
┊ 集成測(cè)試是指在單元測(cè)試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求組裝成一個(gè)完整的
┊ 系統(tǒng)而進(jìn)行的測(cè)試,故也稱組裝測(cè)試或聯(lián)合測(cè)試。集成測(cè)試有漸增式和非漸增式測(cè)試
┊ 兩種方法。漸增式測(cè)試是把未經(jīng)過測(cè)試的模塊組裝到測(cè)試過的模塊上, 非漸增式測(cè)試線
┊ 是對(duì)每個(gè)模塊分別進(jìn)行測(cè)試,然后按要求組裝在一起共同測(cè)試。
┊ 3.系統(tǒng)測(cè)試
┊ 在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是需求規(guī)格說明的錯(cuò)誤。 系統(tǒng)測(cè)試過程將整個(gè)管
┊ 理模塊進(jìn)行整體測(cè)試,通過系統(tǒng)測(cè)試能夠?qū)⑿枨蠓治鰰r(shí)沒有考慮到的問題暴露出來,
┊ 以利于設(shè)計(jì)者對(duì)需求規(guī)格說明時(shí)的錯(cuò)誤加以及時(shí)改正補(bǔ)充。 一般來說,系統(tǒng)測(cè)試是功
┊ 能性測(cè)試,而不是結(jié)構(gòu)性測(cè)試。
┊ 4.測(cè)試過程
┊
┊ 在論壇系統(tǒng)運(yùn)行時(shí)按照需求分析逐項(xiàng)進(jìn)行測(cè)試系統(tǒng)各模塊功能。 先通過單元(單
┊ 獨(dú)模塊)測(cè)試,再經(jīng)過集成測(cè)試(各模塊間聯(lián)系與交叉測(cè)試)和邊界數(shù)據(jù)的測(cè)試,最
┊ 后整個(gè)系統(tǒng)的完全測(cè)試。通過系統(tǒng)的整體測(cè)試,及時(shí)發(fā)現(xiàn)設(shè)計(jì)過程中的錯(cuò)誤和缺陷,
對(duì)一般的模塊錯(cuò)誤進(jìn)行修改,對(duì)結(jié)構(gòu)性方面的問題及時(shí)調(diào)整。以使整個(gè)系統(tǒng)逐步走向規(guī)范化。
模板技術(shù)在論壇中的應(yīng)用
┊ 設(shè)計(jì)一個(gè)交互式網(wǎng)站,一定會(huì)關(guān)注兩個(gè)主要的問題,就是美工和程序。這也是一
┊ 個(gè)網(wǎng)站在建設(shè)中拋開其內(nèi)容之后最關(guān)鍵的要素。通常有兩種方式來協(xié)調(diào)美工和程序之
┊ 間的關(guān)系:
┊ 1、先做好美工頁(yè)面,然后由程序員直接在美工頁(yè)面的 HTML文件中嵌入ASP、
┊ JSP、PHP等程序代碼。
┊
┊ 2、美工和程序同時(shí)進(jìn)行,但這時(shí)因?yàn)闆]有頁(yè)面框架,程序只能做出一些關(guān)鍵代
┊ 碼,雙方完成后再進(jìn)行一次美工頁(yè)面和程序代碼的嵌入合成。
┊ 在實(shí)際的網(wǎng)站建設(shè)過程中,由于人員、進(jìn)度等環(huán)境的限制,大家通常會(huì)混合地使
┊ 用上面兩種協(xié)調(diào)方式。然而這兩種方法都有不足之處:
┊ 1.效率不高。兩者協(xié)調(diào)不好可能產(chǎn)生等待、重復(fù)代碼調(diào)試步驟等現(xiàn)象;
┊ 2.調(diào)試不暢。由于程序代碼最終需要嵌入在HTML頁(yè)面中,代碼的嵌入、調(diào)試、
┊ 糾錯(cuò)都比較繁瑣;裝
┊ 3.維護(hù)不便。一旦美工設(shè)計(jì)需要修改,如網(wǎng)站改版,那么所有程序和 HTML代
┊ 碼混合頁(yè)面都需要重寫。
┊ PHP的模板技術(shù)會(huì)比較圓滿地解決上述問題。PHP模板即PHPlib的Template技
┊ 術(shù),是PHPLIB程序庫(kù)中的一個(gè)主要模塊之一,發(fā)展自 Perl的Template。PHPLIB是
┊ 在PHP上的一個(gè)擴(kuò)展,提供了很多類庫(kù),能夠方便地實(shí)現(xiàn)一些基本功能如用戶認(rèn)證、訂 數(shù)據(jù)庫(kù)封裝等。模板技術(shù)的核心概念是要將美工頁(yè)面指定為模板文件, 只需將頁(yè)面中
┊
┊ 活動(dòng)的內(nèi)容如數(shù)據(jù)庫(kù)輸出、用戶交互等部分定義成變量的形式放在模板文件中相應(yīng)的
┊ 位置,當(dāng)用戶瀏覽時(shí),由PHP程序文件打開該模板文件,將模板文件中定義的變量
┊ 替換成對(duì)應(yīng)的數(shù)據(jù)庫(kù)輸出或者用戶交互等動(dòng)態(tài)生成內(nèi)容。
┊ 使用模板技術(shù)的兩個(gè)主要目的是分離和布局。第一個(gè)目的是談?wù)摰米疃嗟哪康?,線 它設(shè)想的情形是:一組程序員編寫用于生成頁(yè)面內(nèi)容的 PHP腳本,同時(shí)另一組設(shè)計(jì)
┊ 人員設(shè)計(jì)HTML 和圖形以控制頁(yè)面的最終外觀。分離功能和布局的基本思想就是使
┊
┊ 得這兩組人能夠各自編寫和使用獨(dú)立的一組文件:程序員只需關(guān)心那些只包含 PHP
┊ 代碼的文件,無需關(guān)心頁(yè)面的外觀;而頁(yè)面設(shè)計(jì)人員可以用自己最熟悉的可視化編輯
┊ 器設(shè)計(jì)頁(yè)面布局,無需擔(dān)心破壞任何嵌入到頁(yè)面的 PHP代碼。
┊ 模板技術(shù)很輕松地把網(wǎng)站設(shè)計(jì)分離成了清晰的美工和程序兩個(gè)方面, 并把他們的
┊ 成果簡(jiǎn)單方便地結(jié)合了起來。如美工設(shè)計(jì)需要修改,那么只要記住原模板中的各個(gè)變
┊ 量名,把他們插入到新模板中對(duì)應(yīng)位置就可以了。另一方面,在 PHP程序中基本沒
┊ 有了PHP腳本和HTML語(yǔ)法混合的現(xiàn)象,很大地提高了PHP系統(tǒng)的執(zhí)行效率,而且
┊
┊ 如果是數(shù)據(jù)庫(kù)等一些費(fèi)時(shí)的操作, 現(xiàn)在可以很及時(shí)地關(guān)閉數(shù)據(jù)庫(kù),釋放資源,這樣也
安徽工業(yè)大學(xué)
畢業(yè)設(shè)計(jì)(論文)說明書
┊
┊
┊
共43
第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程物資運(yùn)輸協(xié)調(diào)方案
- 金融科技小型產(chǎn)品開發(fā)方案
- 一年級(jí)普通話學(xué)習(xí)促進(jìn)方案
- 建筑施工機(jī)械維護(hù)及技能提升方案
- 混凝土運(yùn)輸時(shí)間管理方案
- 醫(yī)院設(shè)備基礎(chǔ)施工方案
- 鋼結(jié)構(gòu)安裝施工材料選用方案
- 深基坑施工方案
- 室內(nèi)厚型鋼結(jié)構(gòu)防火涂料施工方案
- 項(xiàng)目申報(bào)服務(wù)優(yōu)化方案
- 老年人視覺聽覺護(hù)理課件
- 體格檢查技術(shù)操作考核評(píng)分標(biāo)準(zhǔn)(頭頸部)
- 第十周國(guó)旗下演講稿(教師) 傳承紅色基因,爭(zhēng)做時(shí)代新人,講紅色故事
- 山東省臨沂市羅莊區(qū)2023-2024學(xué)年四年級(jí)上學(xué)期11月期中英語(yǔ)試題
- 《心肌梗死診治流程》課件
- 2024屆上海市風(fēng)華中學(xué)物理高一第一學(xué)期期中綜合測(cè)試試題含解析
- OBE理念下的課程目標(biāo)設(shè)計(jì)
- 部編人教版六年級(jí)上冊(cè)語(yǔ)文全冊(cè)課文教學(xué)課堂實(shí)錄
- 計(jì)量箱使用說明書
- 人教版一年級(jí)起點(diǎn)小學(xué)四年級(jí)英語(yǔ)上冊(cè)全套教案
- 人教版小學(xué)音樂二年級(jí)下冊(cè)(簡(jiǎn)譜)火車開啦-教學(xué)課件
評(píng)論
0/150
提交評(píng)論