

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