畢業設計PHP論壇網站程序設計_第1頁
畢業設計PHP論壇網站程序設計_第2頁
畢業設計PHP論壇網站程序設計_第3頁
畢業設計PHP論壇網站程序設計_第4頁
畢業設計PHP論壇網站程序設計_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、裝訂線安徽工業大學 畢業設計(論文)說明書安徽工業大學畢業設計(論文)任務書課題名稱程序設計論壇網站的設計與實現學 院 計算機專業班級網絡工程062姓 名學 號069074273畢業設計(論文)的主要內容及要求:1、 認真復習軟件工程、數據庫、計算機網絡等相關知識。2、 學習和熟悉php動態網頁設計技術。3、 按照軟件工程的要求,對程序設計論壇網站進行詳細的需求分析,在此基礎上,進行功能設計、界面設計,最后編碼調試實現。要求能夠實現用戶在線瀏覽論壇帖子,分主題發表帖子和回復等功能。4、 完成畢業論文的撰寫、修改和定稿。摘 要現在互聯網已經成為人們快速獲取、發布和傳遞信息的重要渠道,論壇是int

2、ernet上最常用的交流工具之一,越來越多的人開始把論壇作為他們獲取信息的手段和交流的平臺。本畢業設計就是基于php+mysql的論壇設計,以php expert editor作為開發基礎,采用wamp架構,輔用css技術,并通過使用模板技術,在apache本地服務器上實現了較完整的論壇功能。php語言執行效率高并易于同數據庫連接,mysql數據庫訪問速度快、穩定性好。該論壇主要用來為用戶提供一個計算機程序語言的交流環境,學習資料的共享,各類計算機程序技術的討論,問題的求助都可以在論壇上發布,該論壇主要包括前臺和后臺兩大部分,前臺主要實現用戶管理和帖子管理,前者包括用戶注冊、用戶登錄、用戶密碼

3、找回、用戶信息修改等;后者包括包括帖子內容顯示、帖子發布和回復信息等。后臺主要實現管理員對論壇系統的維護。關鍵詞:論壇;php;apache;mysql;模板 abstractnowadays the internet has become an important channel for people to gain , publish and transfer information on the internet, bbs is one of the most common communication tools, more and more people make bbs as the

4、 platform to obtain information and communicate with each other. this design is based on the bbs+mysql,using php expert editor as exploited foundation, adopting wamp architecture,complementary with css technique and through the use of template techonolgy, it realized almost completely bbs functions

5、in apache local server. the efficiency of php language implementation is high and it is easy to connect with mysql database access which is fast speed and good stability. this bbs is mainly used to provide users a computer programming language enviroment to exchange,share information and all kinds o

6、f discussion about computer program technology and questions can post on the bbs. this bbs includes two parts:forestage and backstage.forestage is mainly used to realise user mangement, including the user registration, user login,user password retrieved and user information modification etc. backsta

7、ge mainly realizes the bbs system administrator for maintenance. keywords:bbs;php;apache;mysql;template目錄1 緒論11.1課題的研究意義11.2課題的研究現狀11.3論文的研究內容11.4 系統的設計思路22 理論基礎32.1 wamp架構介紹32.1.1 wamp架構的提出32.1.2 wamp架構的優勢32.1.3 wamp架構的研究現狀32.2 php技術32.2.1 php技術概述32.2.2 php技術特點42.3 mysql數據庫技術52.3.1 mysql數據庫概述52.3.2

8、 mysql圖形管理工具-phpmyadmin62.4論壇采用b/s架構73 總體設計83.1論壇可行性分析83.2 論壇需求分析83.3 功能模塊的設計113.4 論壇系統數據庫的設計策略133.4.1 概念結構設計133.4.2 邏輯結構設計154 論壇系統詳細設計214.1 數據庫的訪問214.2 css樣式表的使用224.3 論壇系統功能的實現224.3.1系統功能224.3.2普通用戶功能234.3.3版主功能274.3.4管理員功能294.4 數據的安全性研究與實現304.4.1 論壇系統的安全體系304.4.2 論壇系統安全性的實現315 論壇系統性能優化325.1 論壇系統測試

9、325.2模板技術在論壇中的應用336 結束語36致謝37第 iv 頁1 緒論1.1課題的研究意義隨著我國改革的深入和發展,公共傳媒的發展也日新月異。人們己經不單單只從電視、報紙上得到需要的新聞報道,internet傳播介質的出現使得人們能夠從更加豐富的網絡資源中得到自己想要的信息。論壇是internet上最常用的交流工具之一,越來越多的人開始把論壇作為他們獲取信息的手段和交流的平臺。論壇系統已經成為互聯網上人與人之間交互的必備工具,特別是做網站必備。以前我們一直使用留言本形式。論壇與留言薄的區別在于論壇上的消息是分層次的。每個人都可以在論壇上發表信息,別人可以回復這條消息。回復消息與被回復消

10、息之間存在一種“父子”關系。如果將最上層的消息當作“根消息”,則每一條子消息都有一個唯一的“父”消息。因此,論壇用做發表意見的場合是最合適的,因為可以從中看到不同消息之間的關系,訪問者不至于在瀏覽時因為頭緒太亂而迷失方向。由于論壇系統的論壇作為人們日常生活獲取信息的手段和交流的平臺,因此本文研究論壇系統的開發具有重要的實踐意義。1.2課題的研究現狀隨著互聯網技術的發展,現在的論壇系統功能越來越多,不但可以發帖回帖,還可以上傳視頻和提供下載等等。有的論壇系統為了達到更好的用戶體驗,在實現了基本的討論功能后,設計了很多個性化的功能,比如在論壇中設置了“個人空間”、“加為好友”等功能,還有的論壇系統

11、,通過提供免費的空間來增加論壇的發帖量。當然有些論壇系統的個性化功能設計新穎,也非常有使用價值,但有些個性化功能的設計卻既沒有多少使用價值,同時又大大的影響了系統的性能。以目前許多學生自主創辦的論壇為例,都因盲目重視功能,忽略了性能,系統運行一段時間后都因性能問題不得不更換其他論壇系統,每更換一次,論壇的數據就全部丟失。由此可見,實現一個論壇系統如果只重視功能而忽略性能,破壞的影響是非常嚴重的。經過對一些目前國內外比較典型的bbs論壇系統的設計和實現方式的分析,本文認為去掉系統不必要的個性化功能,實現一個性能好、速度快、安全性高并且基本功能完善的論壇系統是很必要的。1.3論文的研究內容論文的主

12、要研究內容是根據目前聊天工具的現狀和需求,設計出一個具備交互、執行下載數據或程序、上傳數據、閱讀、與其它用戶交換消息等功能,并在實際應用中予以實現和評價。具體的研究內容如下:對論壇系統目前的國內外發展現狀進行對比分析,找出交流系統存在的問題,提出相關的解決策略。結合解決策略,設計新的適合時代特點的論壇系統,并對照原有的傳統的交流工具分析論壇的特點和適應性,完成論壇的系統實現。1.4 系統的設計思路系統將采用軟件工程的生命周期過程來進行分析設計。其基本思路:首先,是進行系統可行性分析和系統的初步設計規劃。其次進行需求調研,主要通過對國內外各種大型論壇進行親身體驗、現有開源論壇系統的研究及進行網上

13、調查與提問等方式得到需求,在此基礎上進行需求分析以確定需求是否值得設計開發,完成業務邏輯分析與設計,確定系統的功能模塊等。接著準確地進行數據庫設計、界面設計以實現系統所要達到的規劃目標。最后進行系統布署與測試,以改進系統性能。2 理論基礎2.1 wamp架構介紹2.1.1 wamp架構的提出1998年,michael kunze為德國計算機雜志寫了一篇關于free 軟件如何成為商業軟件替代品的文章,創建了lamp這個名詞,linux 操作系統、apache網絡服務器、mysql數據庫和php(perl或python)腳本語言組合而成的 lamp (四種技術的開頭字母組成),隨之lamp技術成為

14、了開源軟件業的一盞真正的明燈。隨著互聯網開源潮流的迅速發展,全球it業正迎來一個新的發展格局成長期,而lamp所代表的開源軟件以其開放性、低成本、安全性、適用性以及可靠的性能,正對傳統軟件、硬件和系統集成商產生巨大的沖擊,同時,也給創新型it企業、程序開發者創造了前所未有的機遇。中國開源軟件推進聯盟主席陸首群說,lamp也可以派生出wamp(w代表windows操作系統)。事實上,php與.net是并存的,php也可以和windows捆綁在一起,兩者并沒有沖突,可以因地致宜地使用開源與閉源混合架構。本系統就是采用wamp架構進行論壇程序的設計與實現。2.1.2 wamp架構的優勢wamp架構易

15、于開發、安全性高、適用性強、性能可靠、更新速度快、成本低,wamp被許多開發者視為“黃金組合”。由于apache是免費的,此外還有免費數據庫mysql服務器和開源語言php共同構建了廣受追捧的“wamp(lamp)”套件,性價比極高,因此贏得了網站開發人員的廣泛青睞。2.1.3 wamp架構的研究現狀在今天,全球已有2000萬個網站使用php,包括最流行的雅虎、google、百度,也包括像漢莎航空電子訂票系統、德意志銀行的網上銀行、華爾街在線的金融信息發布系統,甚至軍隊系統這類五花八門和苛刻的環境。隨著社區bbs及web2.0應用的普及,以及國內php技術支持者的不斷增加,據phpchina資

16、料統計在中國前200名的網站中有61%的采用了wamp技術。業內人士預計,在服務器平臺及軟件方面,wamp市場占有率將在未來兩年內取得更高的市場分額。2.2 php技術2.2.1 php技術概述php全稱為personal home page,是一種跨平臺的服務器端腳本技術。于1995年開始發行使用,到1998年成為一個成熟的軟件產品。它最初是一個人為了寫他的主頁而用perl寫的“包裝”程序,后來因為用的人多了,就發展了起來。現在php已經成為最流行的web腳本語言之一,它運行在web服務器端,根據用戶請求或服務器端的數據產生動態網頁。它功能強大,和html腳本融合在一起,并內建訪問數據庫的能

17、力。它能夠作為apache web服務器的模塊執行,也使得它的執行效率要高于普通的cgi程序。php是編程語言和應用程序服務器的結合,php和其它的編程語言類似,使用變量存儲臨時數值,使用操作符處理變量。php的真正價值在于它是一個應用程序服務器,應用程序服務器是指一個把幾個不同的技術組合為一個完整的套件的程序,這些技術包括:一個強壯的編程語言;存取數據庫中存儲的數據;支持internet協議,尤其是電子郵件和http協議。php大量借用了c、java、和perl語言的語法,并加入了各種php自己的特征,使web開發者能夠寫出快速的動態頁面。php是一種跨平臺的服務器端嵌入式腳本技術。php頁

18、面是一種文本文件,是在普通html頁面文件中嵌入php腳本語句,由服務器解釋和翻譯成普通的html文件,然后傳送給客戶端瀏覽器,這一點和asp一樣。php腳本語句段以“<?”為開始,以“?>”為結束。“<?”和“?>”之間的腳本語句由服務器軟件調用php腳本解釋引擎解釋后替換為普通的html腳本。php語法和c、perl的語法很相似,并主要來源于c語言,如控制流語句與c幾乎完全一樣、變量之間的運算符與c的類似、函數定義和調用與c的類似等。php的變量名前面必須有一個$號,如$var1、$var2。php的變量作用域規定也類似于c,即缺省認為主函數中的變量是全局變量,而函

19、數中的變量都是局部變量。在php中,echo和printf函數用來向html頁面中輸出html內容,其中echo輸出無格式字符串,printf輸出格式化的字符串。如echo("welcome you to come here")和printf("%s,%d",str1,int1)。2.2.2 php技術特點現在通常用的服務器端腳本技術是cgi。現有的web后臺程序,絕大多數采用下列幾種技術編寫:perl或采用第三方解決方案(如asp),雖然每類方案都有各自的強項,但均不是理想的解決辦法。perl編寫cgi是使用得最多的方法,在網絡上也有很多現成的腳本可以

20、拿來修改使用,但它卻存在公認的性能問題:由于web服務器運行時需調用解釋程序解析代碼,當站點的訪問人數激增時,web服務器的性能也必將直線下降,另外則是它的數據庫連接功能非常弱,某些情況下甚至還會降低數據庫的存取速度。第三方廠商提出了較好的解決方案:如microsoft的activeserverpage。它具有運行速度快,數據庫操作功能強大等特性,受到了許多開發者的歡迎,但它們只能單純地運行于個別平臺(nt),對要求更高回應率的網站來說(大多數大中型網站均建于unix或linux平臺,apache系列web服務器)還是不能順利采用(注:目前已有人提出這兩種技術在unix系列平臺上應用的方案,但

21、要么是不具備源技術的全部優秀功能,要么就是只能應用于個別unix平臺)。1997年,php開發小組在原php/fi2.0的基礎上,開發出了全新的php3,免費讓所有人使用和(或)更改解釋器源代碼。相對于傳統的cgi語言,php擁有下列超群的特性:(1)易學易用:php的語法結構大部分借用了c、java、perl的好的語法框架,有以上編程經驗的開發人員可快速地掌握投入實際使用。(2)運行速度快:php采用html內置標記技術,解釋程序本身作為web服務器的一個模塊運行,相當大地提高了運行時的解析速度。經測試表明,在web站點訪問量非常大時,php的解析速度相當于傳統cgi程序的4倍,非常適合大中

22、型站點的應用。(3)跨多個平臺:目前php可在windows、unix、linux的web服務器上正常運行,支持iis,apache等通用web服務器,用戶更換平臺時,無需變換php代碼,可即拿即用。(4)效率高:和其它的解釋性語言相比,php系統消耗較少的系統資源。當php作為apache web服務器的一部分時,運行代碼不需要調用外部二進制程序,服務器解釋腳本不需要承擔任何額外負擔。(5)開放源碼:所有的php源碼都可以得到。(6)沒有運行費用:php是免費的。(7)基于服務器端:由于php是在web服務器端運行的,php程序可以很大、很復雜而不會降低客戶端的運行速度。(8)嵌入html:

23、因為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等。針對每個數據庫都有一組函數用于數據

24、庫訪問和操作,如對mysql有mysql_close、mysql_connect、mysql_create_db、mysql_db_query等函數。(11)文件存取:php有許多支持文件存取的函數。(12)文本處理:php有許多函數處理字符串,其中包括模式匹配的能力。(13)復雜的變量:php支持標量、數組、關聯數組等變量,這給用戶提供了以支持其它的高級數據結構的堅實基礎。(14)圖像處理:用戶可以使用php動態地創建圖像。2.3 mysql數據庫技術2.3.1 mysql數據庫概述mysql是一個小型關系型數據庫管理系統,開發者為瑞典mysql ab公司。目前mysql被廣泛地應用在int

25、ernet上的中小型網站中。由于其體積小、速度快、總體成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體成本而選擇了mysql作為網站數據庫。mysql的特性:(1)核心程序采用完全的多線程編程。線程是輕量級的進程,它可以靈活的為用戶提供服務,而不用浪費過多的體統資源。(2)可運行在不同的平臺上。(3)它有一個非常靈活且安全的權限和口令系統,當客戶與一個服務器鏈接時,它們之間所有的口令傳送被加密,而且它允許基于主機的認證。(4)它擁有一個非常快速的基于線程的內存分配系統,而且沒有內存漏洞,所以可以不斷地使用而不用擔心其穩定性。事實上,它的穩定性足以應付一個超大規模的數據庫,如跨國公

26、司的處理流程。(5)php的強力支持。php中提供了一整套的mysql函數,用來對mysql進行支持。與其他的大型數據庫例如oracle、db2、sql server等相比,mysql自有它的不足之處,如規模小、功能有限等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業來說,mysql提供的功能已經綽綽有余,而且由于mysql是開放源碼軟件,因此可以大大降低總體成本。相對說來,mysql 內定最大連結數為 100 個使用者。但是,我們絕對不可以用一個程序的內建設定來判斷它的效能。到目前為止,我們還沒聽說過使用 mysql 的較大而且訪問頻繁的網站上的用戶有任何抱怨。2.3

27、.2 mysql圖形管理工具-phpmyadminmysql的標準操作全部是在字符界面下的,這樣可能會讓習慣圖形界面的用戶覺得不友好。因此出現了一些非命令行方式的管理mysql的工具。使用最多的mysql管理工具是phpmyadmin。phpmyadmin(簡稱pma)是一個用php編寫的在網絡上直觀管理mysql數據庫的軟件,是眾多mysql管理員和網站管理員的首選數據庫維護工具,通過phpmyadmin可以完全對mysql數據庫進行操作,例如建立、復制、刪除數據等。phpmyadmin的主界面如圖2.1所示。圖2.1 phpmyadmin主界面2.4論壇采用b/s架構php采用瀏覽器/服務

28、器(b/s)模式架構。所謂b/s結構,就是通過瀏覽器(browser)來訪問服務器(server)上的內容,客戶端不需要運行其他軟件。b/s結果的優點是維護方便。客戶端運行的軟件是一個隨操作系統同時發布的瀏覽器,例如ie,而不用安裝其他軟件。瀏覽器通過網絡獲取服務器的信息。b/s結構系統的所有的維護、升級工作都只在服務器上運行,服務器代碼修改后,客戶端就能獲取最新的信息。服務器端的php代碼會轉化為html代碼傳輸到客戶端,一個基本的html代碼如下所示:<html> <head> <title>標題</title><body> 主題

29、</body> </head></html>在實際應用中,通常php代碼和html代碼混合使用以完成一個頁面的顯示。3 總體設計3.1論壇可行性分析可行性研究的目的是為了對問題進行研究,以最小的代價在最短的時間內確定問題是否可解,經過對項目進行詳細調查研究,進而便能初擬系統規劃報告,對系統開發中將要面臨的問題及其解決方案進行初步設計及合理安排。下面簡要對本系統開發的可行性加以論述:在經濟可行性上,由于本系統是基于開源項目,在整個過程使用wamp架構,而且是免費的,同時在設計過程我參照了相關系統來設計,比如用asp論壇或jsp論壇。當然,系統也將按照軟件工程的

30、步驟來完成。在技術可行性上,系統將基于mvc架構,mvc 即視圖,模型,控制器。 這種設計模式是一個很好系統開發的途徑,我們可以為一個模型在運行同時建立和使用多個視圖,這樣就可以使系統在健壯性,代碼重用和結構方面上一個新的臺階。除此之外,因為模型獨立,這樣就可以把一個模型獨立地移植到新的平臺工作。在社會可行性上,論壇在當今非常流行,很大一部分是歸結于社會的發展:從互聯網最終用戶角度來講,論壇的出現,大規模實現了使用者從實在的世界到網絡虛禮的世界;從網站角度來看,所有網站設計出來就是要有人訪問和交流。而論壇系統完全符合網站的要求。從這兩個方面上可看出,本系統的開發和應用能給互聯網帶來新的交流工具

31、與web應用,能促進網絡的發展,因此具有很好的社會作用。從以上三點可以得知,開發此系統是可行的。3.2 論壇需求分析需求定義是對系統的術語描述,分析系統是否能實現,或者是否能提供更多的功能。我們應該從使用者的角度來分析和編寫一個論壇系統,首先要確定論壇的功能是什么,也是用戶想要的論壇提供哪些功能。我們在使用論壇的時是按照一定的流程來進行的,如:用戶注冊登入論壇,就一個或幾個話題展開討論,通過發帖功能來發布新的話題,通過回帖功能來回復已有的話題。管理員要管理論壇,具有的功能是創建、編輯、刪除論壇的版塊,管理注冊的用戶,管理帖子。這樣的流程就決定了論壇所應具有的功能如圖3.1所示。圖 3.1流程圖

32、帖子類有瀏覽、發帖、回帖和管理四個方法,瀏覽方法又可分為列表和查看兩個子方法,管理方法又可分為編輯、刪除、置頂三個子方法。如圖3.2所示,只有管理員可以管理帖子,一般用戶沒這個權限的。圖3.2 帖子對象相關用例圖用戶類有注冊、登入和管理三個方法,管理方法又可分為添加、刪除和設置權限三個子方法。如圖3.3所示,用戶的信息和權限是由管理員來設置管理的。圖3.3 用戶對象相關用例圖 這樣,當初列出的功能列表就分別有了各自的歸屬對象。論壇一般存在兩種用戶,即注冊用戶和管理員。用戶的權限是向下覆蓋的,即上級權限包括下級的權限,在論壇中,管理員是上級權限。接下來,需要將不同類的對象及其方法分配給不同的論壇

33、用戶。與注冊用戶相關的功能,就是論壇的前臺的主要功能。論壇系統的前臺,是用戶討論問題的平臺,發帖、瀏覽、回帖一直貫穿用戶的前臺活動。同時,由于論壇系統的帖子管理是管理員在瀏覽帖子時進行的,所以編輯帖子、刪除帖子和置頂帖子等功能也安排在前臺實現、其他與管理員相關的功能,包括版塊管理、用戶管理和設置都需要管理員在后臺進行操作。通過以上的分析,論壇的基本功能就可以從眾多需求中篩選出來。現在,讓我們來看看哪些是基本功能。l 發帖。論壇最初是為了相互討論話題而誕生的,發表帖子就是表達自己的看法,與他人進行討論,因為發帖是論壇首要的功能。l 瀏覽帖子。發表了帖子,就要供他人瀏覽查看,使他人分享自己的想法和

34、經驗。l 回帖。瀏覽了他人發表帖子,就要發表自己的想法,參與討論,就可以回復這帖子。發帖、瀏覽帖子和回帖的循環就構成了論壇,三大基本功能的相互關系如圖3.4圖3.4 論壇的基本功能3.3 功能模塊的設計上一節中確定了論壇的整體需求和詳細需求。但是只知道需求還是不行的,整體需求是對系統目標的一個模糊描述,經過分析后的詳細需求是對系統中要實現功能的設計語言的轉換表達,一個是由用戶表達的,一個是由系統的編寫者來分析表達的。但是這些需求的描述,無論多詳細,都不能歸納成系統的相關模塊,每個模塊實際就是功能的合理組合。要實現一個系統,還需要從尋求分析上升到軟件設計階段。從上一節需求分析中得知,可以將功能分

35、為前臺和后臺兩類,因此模塊也分為兩大類:前臺模塊和后臺模塊。用戶在前臺的注冊、登錄、以及修改個人的注冊信息組合成注冊登錄模塊;用戶瀏覽模塊、瀏覽主題帖列表、查看帖子組合成瀏覽模塊;用戶發帖、回帖、編輯自己發布的帖子組合成發帖回帖模塊;管理員編輯帖子、刪除帖子和置頂帖子組合成管理帖子模塊。以上四個模塊組成前臺的功能模塊。后臺模塊都是與管理員相關的,設置論壇參數單獨為后臺設置模塊;創建、修改和刪除版塊為管理版塊模塊;添加、刪除和設置權限為管理用戶模塊。如圖3.5所示是論壇的模塊體系圖。圖 3.5 論壇的模塊體系圖所以對于注冊用戶,在論壇的行為可以歸納如下行為。l 注冊個人身份,登錄論壇,成功后可以

36、修改自己的注冊信息。這些行為只與用戶自身相關,功能獨立,設計成注冊登錄模塊。l 瀏覽版塊列表,選擇某版塊,顯示其下的主題帖列表,查看帖子內容。這些行為是用戶讀取論壇的版塊及其帖子的相關信息,設計成瀏覽模塊。l 發表自己的帖子,回復已有的帖子,同時也可以編輯自己的帖子。這些行為是用戶參與論壇討論,發表自己見解的,設計為發帖回帖模塊。對于管理員,需要負責整個論壇的正常運轉,因此需要更多的管理功能,可以歸納如下行為。l 具備注冊用戶的功能,即管理員也是論壇用戶。l 管理帖子。管理員對論壇的帖子有監督的權利,好的帖子要獎勵,搗亂的帖子要刪除,置頂帖子,這些行為都是針對帖子的操作,設計成管理帖子模塊。l

37、 管理版塊。擁護注冊成功后,需要管理員進行創建、管理版塊信息,這些針對版塊的操作,設計成管理版塊模塊。l 管理用戶。用戶注冊成功后,需要管理員賦予權限,才能使用論壇的相關功能。同時,管理員可以自主添加、刪除用戶,這些針對用戶信息的操作沒,設計成管理用戶模塊。通過上面的分析我們可以得到用戶的整體用例圖,如圖3.6所示:圖3.6 用戶整體用例圖從用例圖中,可以得到論壇的功能框架,即系統的各個部分已經確定,知道論壇是什么樣子。3.4 論壇系統數據庫的設計策略數據庫是信息系統的核心,它具有對信息進行收集、組織、存儲、加工、抽取和傳播等功能。構筑數據庫和蓋房子奠基相似,數據庫的設計直接關系系統的成敗,因

38、此要獲得優秀的信息管理系統必須采用科學方法進行合理的數據庫設計。本節就數據庫的設計策略方面的內容作詳細討論。該論壇系統的數據庫設計分為概念結構設計、邏輯結構設計。3.4.1 概念結構設計數據分析是數據庫設計的第一步,包括下列內容:1、調查論壇系統需要實現的功能本論壇系統要實現以下功能:1)系統功能(指論壇程序自動實現的功能) 分論壇顯示 主題顯示 在線用戶列表2)普通用戶功能(論壇用戶能夠實現的功能) 登錄和退出論壇用戶需使用其在論壇中注冊所得帳號和密碼登錄(未登錄而直接進入論壇的用戶稱為訪客,訪客只能查看帖子,不具備其它功能) 用戶注冊 發文功能包括發帖子、回復帖子、修改刪除自己發布的帖子

39、查詢功能可查詢注冊用戶及其對應的帖子 用戶控制面板用戶可在此處修改自己的個人資料,定制個性化的論壇功能3)版主功能(版主,也屬于論壇用戶的一種) 具有全部普通用戶功能 版內文章管理,包括增刪改查 取消或恢復用戶在版內的發文權 重要主題前置功能4)管理員功能(論壇管理員能夠實現的功能) 管理員具有普通用戶和版主的所有功能 分論壇管理功能 論壇內的文章管理,包括增刪改查 論壇用戶管理,包括增刪用戶,指定版主等 帳號封殺列表2、編寫數據流程圖根據論壇系統的具體功能,編寫數據流程模式圖如圖3.7所示。圖3.7 數據流程模式圖3、編寫系統功能結構圖系統功能結構圖如圖3.8所示。圖3.8 系統功能結構圖根

40、據上述分析的結果,編制初步e-r圖。它表示信息世界中的信息實體及其相互聯系,初步e-r圖如圖3.9所示。圖3.9 系統初步e-r圖3.4.2 邏輯結構設計1、e-r圖向關系數據模型轉換定義一個關系模型是一個二維表r(a1,a2,an),其中r為關系名,ai為屬性名。確切講,一個關系模型對應一個數據庫基表。邏輯結構設計首先是將基本e-r圖向關系數據模型轉換,轉換的方法涉及深奧的專業理論,此處不作論述。最簡單的轉換可以將基本e-r圖中的每個實體定義為一個關系模型,一個聯系也是一個關系,從而得到關系模型。在模型轉換中,最基本的要求是保證每個關系至少有一個碼(key);關系中每個屬性都是不可分的數據項

41、,不允許表中有表;一個關系只是描述一個信息實體,或者實體間的一種聯系。2、規范化規范化是數據庫邏輯設計的指南和工具,它貫穿數據庫設計過程中的數據分析、基本e-r圖的設計和邏輯設計。特別在邏輯設計中,通過對關系模型r(a1,a2an)的函數依賴的進行模式分解,使模型達到bcnf、2nf、或3nf范式,可以消除更新異常等,當然有時為了提高查詢速度,也可以犧牲規范化程度。論壇數據庫分別包括10個表,如圖3.10所示:圖3.10 數據庫表信息其中bans表記錄著用戶id,用戶帳號,ip地址,email地址和顯示給被封用戶信息的信息等,主鍵為id。如圖3.11所示: 圖3.11 bans表表catego

42、ries記錄著版塊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號,發帖人用戶名,

43、發帖人id號,發帖人ip,發帖人email,發帖內容,是否轉換笑臉符號和發帖時間等信息,主鍵為id。如圖3.16所示。圖3.16 posts表表search_matches描述著匹配所涉及的帖子的id,匹配所涉及到的詞和主題匹配信息。如圖3.17所示。圖3.17 search_matches表表search_results記錄著查詢結果id號,查詢人用戶名和查詢數據的連續的php數組信息,主鍵為id。如圖3.18所示。圖3.18 表search_resultstopics記錄著主題帖id號,發主題的用戶名,主題題目,發主題的時間,最后回復時間,最后回復的id,最后回復的用戶名,查看主題的次數,

44、回復的帖數和是否設置置頂等信息,主鍵為id。如圖3.19所示。圖3.19 topics表表users記錄著用戶id,用戶名,用戶密碼,用戶email,用戶等級頭銜,真實姓名,用戶個人網站,用戶qq號碼,用戶msn號碼,用戶個性簽名,用戶所在時區,用戶身份等信息,主鍵為id。如圖3.20所示。圖3.20 users表上述給出數據庫中的表信息,本數據庫包含封用戶ip表、類別版塊表、默認配置表、論壇表、在線用戶表、帖子表、查詢匹配表、查詢結果表、主題表、用戶表和數據庫中各個表的列屬性。4 論壇系統詳細設計論壇在internet上是很常見的,但是要實現一個論壇,工作量很大。論壇系統大致可以分為兩個組成

45、部分:面向系統管理者的論壇管理系統和面向一般用戶的論壇服務系統。無論是管理員方還是用戶方都不必安裝該系統。但是,為了解釋網頁代碼中的服務器端腳本語言代碼,服務器端必須安裝相應的web服務器(比如apache,iis),腳本代碼解釋引擎(比如apache)和數據庫服務器(如mysql)。系統管理員通過帳戶密碼驗證后登錄論壇管理系統,進行相應的后臺管理如用戶管理、版塊管理和文章管理。而對于用戶,則要先通過注冊提出申請,經管理員審核后成為論壇系統的正式用戶。用戶通過帳戶密碼驗證登錄論壇服務系統后,能夠在論壇內發表文章,回復文章,查詢文章,瀏覽文章等。所以,論壇系統應該能夠識別四類不同權限級別的用戶。

46、第一類是新注冊用戶,尚未通過系統管理員審核,擁有瀏覽文章,查詢個體信息的權限;第二類是一般用戶,已經通過審核,能夠在論壇討論區發表文章,回復文章,接收信件,回復信件;第三類是版主,能夠在相應的版塊刪除文章,封鎖id限制發文以及解除對一般用戶的封鎖;第四類是系統管理員,擁有最高權限,能夠審核新用戶注冊請求,權限申請并執行相應的裁決。一般網站論壇需要實現的功能包括:數據庫的訪問,css樣式表的使用,論壇系統功能的實現,數據的安全性研究與實現4個功能。4.1 數據庫的訪問無論是管理者還是用戶,在操作論壇系統之前,首先要與數據庫建立連接。掌握網絡數據庫編程方法也是該課題的主要目的之一。php語言提供了

47、大量的數據庫操作函數,對mysql進行了很好的支持。對mysql的訪問,首先通過php的函數mysql_pconnect或mysql_connect建立對數據庫服務器的連接,然后通過mysql_select_db函數從數據庫服務器中選擇本論壇系統的數據庫,如果需要對數據庫進行操作,可以用mysql_query函數向mysql數據庫發送sql語句來實現,然后再通過mysql_fetch_row等函數來取回操作的結果。訪問論壇系統數據庫的功能實現如下:connect連接mysql;驗證管理員用戶名和密碼;if正確do選擇數據庫。/不能連接數據庫顯示錯誤信息error('unable to

48、select database. '.mysql_error(), _line_, _file_);else/不能連接數據庫服務器顯示錯誤信息error('unable to connect to mysql server. '.mysql_error(), _line_, _file_);4.2 css樣式表的使用通過瀏覽互聯網上的論壇,我們知道基本上所有的論壇系統都提供了很多的風格來實現更好的用戶體驗,用戶可以根據喜好來選擇自己喜歡的風格,這些風格的實現是通過css樣式表來實現的。本論壇系統也提供了這樣的功能,該論壇系統風格的css樣式表部分代碼如下:/*設置bod

49、y的背景*/body background-color: #ffffff /*設置表格列的文字和顏色屬性*/td font: 12px verdana, arial, helvetica, sans-serif;color: #333333/*設置輸入框和復選框的字體和顏色*/input, select font: 12px verdana, arial, helvetica, sans-serif;color: #333333/*設置文本框字體和顏色*/textarea font: 12px verdana, arial, helvetica, sans-serif;color: #3333

50、33/*設置表單屬性*/form margin: 0 4.3 論壇系統功能的實現4.3.1系統功能1、分論壇顯示論壇系統版塊和子論壇顯示關功能如下:對數據表進行操作,使用select分別查詢出所有類別版塊表catagories和論壇表forums中的版塊名稱和子論壇名稱,把類別版塊表catagories和論壇表forums進行等值連接,使用while語句循環取出版塊名和子論壇名,逐一輸出版塊和子論壇名稱;論壇系統版塊和子論壇顯示如圖4.1所示。圖4.1 論壇系統版塊和子論壇顯示圖2、主題顯示主題顯示主要功能實現如下:在主題表topics中查詢主題id,使用while循環取出主題表中的主題名論壇

51、系統主題顯示如圖4.2所示。圖4.2 論壇系統主題顯示圖4.3.2普通用戶功能1、登錄和退出論壇登錄論壇系統關功能實現如下:點擊登錄跳轉到login.php登錄處理頁面,輸入用戶名密碼后提交表單數據,對輸入的用戶名和密碼進行去空格和轉譯操作使用unescape將字符進行轉義,使用trim對所提交的字符進行去空格處理查詢user表if有此用戶 then do檢查密碼是否正確; if密碼驗證正確,顯示登錄成功返回主頁面 else密碼不符合,提示密碼錯誤; end if系統登錄界面如圖4.3所示。圖4.3 系統登錄界面退出論壇系統功能實現:點擊退出登錄,從在線用戶表中刪除,使用where從在線用戶表

52、中選取用戶,并使用delete語句刪除,then重定向到主頁index,php2、用戶注冊用戶注冊包括填寫用戶名、密碼、郵箱。在注冊前要檢查該用戶名是否已經被注冊。密碼插入數據庫前要進行加密處理。點擊注冊轉到register.php,調用user表,檢查提交表單中用戶名是否已經存在,如果不存在,將檢查2次輸入密碼是否輸入相同,以及檢查提交郵箱格式是否正確,將注冊信息保存至user表中。檢查用戶名是否存在:if 用戶名已存在 then do 返回注冊頁面重新輸入用戶名; if 2次密碼輸入不一致 then do 返回注冊頁面重新輸入密碼;if 檢查郵箱格式不正確 thendo 返回注冊頁面重新輸

53、入郵箱;else 注冊成功將數據寫入用戶表;end if用戶注冊界面如圖4.4所示。圖4.4 用戶注冊界面3、發文功能根據課題內容參考的要求,發文功能包括發新帖子、回復帖子、修改刪除自己發布的帖子。此功能是對論壇系統數據庫表進行增、刪、改的功能。發新帖子功能如下:如果是發表新帖子,點擊發新主題,生成一個發表新主題的頁面,將填寫的內容提交,分別對topic表和post表操作,使用insert語句將新帖數據插入主題表topic,將主題帖子id,發帖人,發帖時間,帖子內容等信息insert進post表,改變主題帖中的最后回復last_post_id一項,使用update更新topic表的屬性last

54、_post_id,即最后發表主題名稱,update更新用戶表users的用戶發帖數num_posts,和最后發帖時間發表新帖子及回復界面如圖4.5、4.6所示。圖4.5 發表新帖子界面圖4.6 回復界面4、查詢功能根據課題內容參考的要求,查詢功能可查詢注冊用戶及其對應的帖子。等值連接posts表和user表,查詢注冊用戶可對本論壇系統的users表進行查詢,posts表包括論壇系統所有的主題和回復內容。本論壇系統的查詢功能可使用泛查找,通配符使用“*”,在對數據庫進行查詢前要先把“*”號轉換成sql語句中的“%”。連接user表,posts和topics表,在user表中select該用戶名,

55、列出該用戶的發帖信息。查詢功能界面如圖4.7所示。圖4.7 查詢功能界面5、用戶控制面板用戶控制面板是用戶對個人資料進行添加、修改和刪除的地方,可通過對users表的操作來完成此項功能。提交后使用update語句對user表更新。用戶控制面板界面如圖4.8所示。圖4.8 用戶控制面板界面4.3.3版主功能1、具有全部普通用戶功能2、版內文章管理,包括增刪改查本論壇系統在forums表中設置了moderators字段來記錄論壇的版主名,版主登錄系統后,在進入所管理的論壇前,先對版主身份進行檢查,如果身份符合,則可享有和發帖用戶一樣的處理帖子的權利。版主版內文章管理界面如圖4.9所示。圖4.9 版

56、主版內文章管理界面3、取消或恢復用戶在版內的發文權取消或恢復用戶在版內的發文權是通過在bans表中增加和刪除用戶來實現的,以添加禁止用戶為例,功能實現如下:提交用戶名thenif select user表,有該用戶信息thendo insert插入bans表;else 提示沒有此用戶;添加禁止用戶界面如圖4.10所示。圖4.10 添加禁止用戶界面4、重要主題前置功能主題置頂功能實現如下:update更新主題表topics中的sticky一項,設置為1重要主題前置功能界面如圖4.11所示。圖4.11 重要主題前置功能界面4.3.4管理員功能1、管理員具有普通用戶和版主的所有功能2、分論壇管理功能此功能是管理員對categories表的操作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論