![基于PHP框架的社區(qū)論壇管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/3d215767-32de-4931-9096-4df412943635/3d215767-32de-4931-9096-4df4129436351.gif)
![基于PHP框架的社區(qū)論壇管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/3d215767-32de-4931-9096-4df412943635/3d215767-32de-4931-9096-4df4129436352.gif)
![基于PHP框架的社區(qū)論壇管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/3d215767-32de-4931-9096-4df412943635/3d215767-32de-4931-9096-4df4129436353.gif)
![基于PHP框架的社區(qū)論壇管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/3d215767-32de-4931-9096-4df412943635/3d215767-32de-4931-9096-4df4129436354.gif)
![基于PHP框架的社區(qū)論壇管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/3d215767-32de-4931-9096-4df412943635/3d215767-32de-4931-9096-4df4129436355.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 密級: 基于PHP框架的社區(qū)論壇管理系統(tǒng)的設(shè)計與實現(xiàn)Research Php BBS Forum Management System Based on Yii Framework摘 要社區(qū)論壇管理系統(tǒng)是互聯(lián)網(wǎng)上的一種電子信息服務(wù)系統(tǒng)。每個用戶都可以在在論壇上提出自己的想法。近些年來,通過編程人員和很多愛好者的努力,BBS論壇的功能得到了很大的擴充。而如今的BBS論壇系統(tǒng)功能更豐富,允許用戶之間分享工具軟件,技術(shù)文檔等資源。如何設(shè)計穩(wěn)定的BBS系統(tǒng),是每個開發(fā)人員必須要考慮的問題,一個成功的BBS系統(tǒng)可大大提高承載此論壇的網(wǎng)站點擊率,為了使一個論壇系統(tǒng)發(fā)揮更大的作用,使企業(yè)的用戶加入到產(chǎn)品、服
2、務(wù)等內(nèi)容的討論上來,對企業(yè)的發(fā)展有很好的促進作用。論文介紹了課題研究的背景和意義及國內(nèi)外發(fā)展?fàn)顩r,詳細介紹了課題采用的相關(guān)技術(shù)。結(jié)合用戶業(yè)務(wù)基本要求,進行了詳細的分析研究,確定該系統(tǒng)主要功能包括七大模塊:個人用戶管理功能、論壇內(nèi)容展示功能、會員管理與維護功能、分區(qū)管理與維護功能、板塊管理與維護功能、文章管理功能和回帖管理功能。本文較為詳盡的闡述了主要功能模塊的實現(xiàn)過程。本系統(tǒng)使用Zend Studio集成開發(fā)環(huán)境編寫,并使用基于MVC模式的Yii框架技術(shù)進行開發(fā)。利用Sphinx全文檢索引擎實現(xiàn)文章搜索。系統(tǒng)前臺數(shù)據(jù)采用文件緩存和Memcache緩存技術(shù),可以大大提高用戶體驗。后臺數(shù)據(jù)庫使用甲
3、骨文公司的Mysql數(shù)據(jù)庫,利用SQLyog實現(xiàn)對數(shù)據(jù)庫的管理和操作。在以面向?qū)ο蟮某绦蛟O(shè)計技術(shù)為指導(dǎo)思想的前提下,完成了本系統(tǒng)的具體實現(xiàn)過程。系統(tǒng)解決了大訪問量下對網(wǎng)站的壓力,對使用該系統(tǒng)的企業(yè)發(fā)展有很好的輔助作用。關(guān)鍵詞:論壇管理系統(tǒng);全文檢索;Sphinx;Memcache;MysqlAbstractCommunity Community forum management system is an electronic information service system on the Internet. Every user can put forward his ideas in t
4、he forum. In recent years, through the programming of personnel and many enthusiasts, the function of the forum BBS has been greatly expanded. And today's BBS forum system features richer, allowing users to share between the tools and software, technical documentation and other resources. How to
5、 design the stability of the BBS system, each developer must consider the problem, a successful BBS system can greatly improve the bearing of this forum website click rate, in order to make a forum system play a greater role, the enterprise user added to the products, services, and other content are
6、 discussed, the development of enterprises has a good role in promoting.This paper introduces the background and significance of the research and the development of the domestic and foreign, and introduces the technology of the subject. Combined with the business users basic requirements, detailed a
7、nalysis and research, identify seven modules: individual user management function, the content of the Forum display function, member management and maintenance functions, partition management and maintenance functions, sector management and maintenance functions, article management function and repl
8、ies management function, including the main function of the system. This paper expounds the realization of the main function modules in detail.This system uses Studio Zend integrated development environment, and uses the Yii framework technology based on MVC mode to develop. Use Sphinx full-text sea
9、rch engine to achieve the article search. System foreground data using file caching and Memcache caching technology can greatly improve the user experience. Database using the Oracle Corp Mysql database, using SQLyog to achieve the database management and operation. In the premise of the object orie
10、nted programming technology, the concrete realization of the system is completed. The system has solved the pressure of the website under the large amount of visit, and has good assistant for the development of the enterprise.Keyword: Forum management system; full-text search; Sphinx; Memcache; Mysq
11、l目 錄摘 要IAbstractII目 錄IV第 1 章 引 言- 1 -1.1 系統(tǒng)開發(fā)背景- 1 -1.2 國內(nèi)外發(fā)展?fàn)顩r- 2 -1.2.1 國內(nèi)方面- 2 -1.2.2 國外方面- 2 -1.3 研究內(nèi)容及目標(biāo)- 3 -第 2 章 相關(guān)技術(shù)綜述- 4 -2.1 Zend Studio- 4 -2.2 Yii框架- 5 -2.3 Sphinx- 5 -2.4 UEditor- 5 -第 3 章 系統(tǒng)分析與設(shè)計- 7 -3.1 系統(tǒng)分析- 7 -3.2 系統(tǒng)運行環(huán)境- 7 -3.2.1 系統(tǒng)安全性- 8 -3.2.2 系統(tǒng)通用性- 8 -3.3 功能設(shè)計- 8 -3.4 數(shù)據(jù)庫設(shè)計- 10
12、 -3.5關(guān)鍵問題討論- 13 -3.5.1數(shù)據(jù)庫設(shè)計- 13 -3.5.2訪問量大時的解決方法- 13 -3.5.3搜索功能- 13 -第 4 章 系統(tǒng)功能詳細實現(xiàn)- 14 -4.1 個人用戶管理功能- 14 -4.2 論壇內(nèi)容展示功能- 16 -4.3 會員管理功能- 19 -4.3.1 添加會員功能- 19 -4.3.2 會員管理功能- 22 -4.4 分區(qū)管理功能- 25 -4.4.1 添加分區(qū)- 26 -4.4.2 分區(qū)管理- 28 -4.5 版塊管理功能- 30 -4.5.1 添加版塊- 30 -4.5.2 版塊管理- 32 -4.6 文章管理功能- 35 -4.6.1 查看文章列
13、表- 35 -4.6.2 刪除文章- 36 -4.7 回帖管理功能- 37 -4.7.1 查看帖子列表- 37 -4.7.2 刪除回帖- 39 -第 5 章 結(jié) 論- 40 -參 考 文 獻- 41 -致 謝- 42 -第 1 章 引 言在現(xiàn)在快速發(fā)展的社會,互聯(lián)網(wǎng)技術(shù)得到更快的發(fā)展,已經(jīng)不是日新月異就能形容的信息化世界里,更加動態(tài)性、交互性與時速性的網(wǎng)絡(luò)論壇成為其中最快速、最豐富和最自由的網(wǎng)絡(luò)信息資源,也是最受廣大的現(xiàn)代人類歡迎的信息交流方式之一。1.1 系統(tǒng)開發(fā)背景論壇管理系統(tǒng)是一種對某些問題、看法互相學(xué)習(xí)的系統(tǒng),論壇系統(tǒng)的作用在于提供給用戶彼此交流的空間,這種交流的方式瀏覽帖子和發(fā)表帖子
14、以及回帖。因此對于帖子的管理是BBS系統(tǒng)的一個核心功能,發(fā)表帖子的權(quán)利可以只對特定的人群?;ヂ?lián)網(wǎng)上的優(yōu)質(zhì)資源很多,我們每天都會接觸到很多不同的優(yōu)質(zhì)資源,比如實用的網(wǎng)站,有用的資訊等等,大部分網(wǎng)站是利用PHP語言編寫1。BBS是Bulletin board system的縮寫,中文含義是電子公告板。它是一種交互性強,內(nèi)容豐富而即使的Internet電子信息服務(wù)系統(tǒng)。用戶在BBS站點上可以獲得各種信息服務(wù),發(fā)布信息,進行討論,聊天等等。其界面一般是以文字為主,主要目的是為廣大網(wǎng)友提供一個彼此交流的空間,其最大的優(yōu)點是自由平等,快捷互動。BBS最早是用來公布股市價格等類信息的,當(dāng)時BBS連文件傳輸?shù)?/p>
15、功能都沒有,而且只能在蘋果計算機上運行。早期的BBS與一般街頭和校園內(nèi)的公告板性質(zhì)相同,只不過是通過電腦來傳播或獲得消息而已。一直到個人計算機開始普及之后,有些人嘗試將蘋果計算機上的BBS轉(zhuǎn)移到個人計算機上,BBS才開始漸漸普及開來。近些年來,由于愛好者們的努力,BBS的功能得到了很大的擴充。而如今的BBS系統(tǒng)功能更豐富,允許用戶之間分享工具軟件,技術(shù)文檔等資源。BBS論壇系統(tǒng)突破了地域和時間的限制,實現(xiàn)了全球性資源共享,有助于人們學(xué)習(xí),工作,生活,同時提高了人們的交流信息、思想和解決問題的能力。如何設(shè)計、建立一個經(jīng)濟、實用、全面、高效、穩(wěn)定的BBS系統(tǒng),是每個開發(fā)BBS系統(tǒng)的程序員必須要考慮
16、的問題,一個成功的BBS系統(tǒng)可大大提高承載此論壇的網(wǎng)站點擊率,使企業(yè)的用戶加入到產(chǎn)品、服務(wù)等內(nèi)容的討論上來,起到收集反饋資料的作用,對企業(yè)戰(zhàn)略的發(fā)展有很好的參考作用。1.2 國內(nèi)外發(fā)展?fàn)顩r1.2.1 國內(nèi)方面中國大陸最早的BBS站是北京長城站,由于限于互聯(lián)網(wǎng)尚未開始普及的條件,當(dāng)時用戶訪問量每天只有十幾人。隨著計算機及其外設(shè)的大幅度降價、互聯(lián)網(wǎng)在國內(nèi)的快速發(fā)展,BBS及Forum逐漸被認(rèn)識,并以驚人的速度發(fā)展起來。大陸的BBS論壇在2000年達到一個發(fā)展頂峰,各種BBS站大量涌現(xiàn),BBS論壇(續(xù)致信網(wǎng)上一頁內(nèi)容)功能不斷改進,內(nèi)容涉及領(lǐng)域幾乎無所不包。此后,由于發(fā)展的無序和管理的不善,在網(wǎng)絡(luò)泡
17、沫的沖擊之下,很多BBS論壇迅速消亡。之后,國內(nèi)BBS論壇進入調(diào)整和成熟時期,成為現(xiàn)實社會的縮影。在歷次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告中,BBS論壇仍然是國內(nèi)互聯(lián)網(wǎng)最重要的應(yīng)用之一。多數(shù)研究者認(rèn)為,BBS論壇簡單,易用,實用的特點日益突出,今后BBS論壇將向個性化和專業(yè)化的方向發(fā)展。1.2.2 國外方面社區(qū)論壇在國外最開始主要用于BBS成員之間的信息交流與網(wǎng)絡(luò)通訊,那時還沒有瀏覽器、搜索引擎,甚至沒有個人網(wǎng)站。當(dāng)時BBS主要有四項功能應(yīng)用:發(fā)布新聞、發(fā)布交易信息、發(fā)布個人感想、互動式問答。目前在國外BBS的主要應(yīng)用轉(zhuǎn)移到論壇上,也就是現(xiàn)在為大多數(shù)人所接受的BBS概念。因此,互聯(lián)網(wǎng)技術(shù)的發(fā)展,使得
18、BBS在西方國家的影響力正逐漸減小,以美國為例,絕大多數(shù)高?;旧蠜]有開設(shè)BBS,少數(shù)BBS站的存在主要用于提出或解決問題,集中表現(xiàn)為技術(shù)類BBS,針對軟件或商品的技術(shù)支持BBS等。相比于人氣極旺的中文BBS,它們并不存在復(fù)雜的管理機制和輿論調(diào)控行為。在這些BBS上,注重的是發(fā)帖和回帖的就事論事,區(qū)別于中文BBS的人與人的交流。國外對BBS的直接研究很少,間接的研究主要集中在對網(wǎng)絡(luò)社會、虛擬社區(qū)方面。如針對網(wǎng)絡(luò)社會中的人際關(guān)系、行為方式、價值觀念和社會結(jié)構(gòu)等,對虛擬社區(qū)的自身特征及虛擬社區(qū)中的社會問題等進行廣泛研究。著名的研究成果有曼紐爾·卡期特的網(wǎng)絡(luò)社會的崛起、霍華德·萊
19、茵戈德的虛擬社區(qū)、尼爾·巴雷特的數(shù)字化犯罪等。1.3 研究內(nèi)容及目標(biāo)本文主要先全面系統(tǒng)的分析BBS論壇管理系統(tǒng)的實際業(yè)務(wù)流程,然后進行模塊化的設(shè)計,再然后針對實際業(yè)務(wù)中存在的難點問題提出了較好的解決方案,并對各系統(tǒng)功能進行了詳細方案設(shè)計。根據(jù)本系統(tǒng)的特點,可以將其分為前臺和后臺兩個部分,前臺主要包括用戶個人管理和論壇內(nèi)容展示兩個部分,而后臺主要包括會員管理,分區(qū)管理,板塊管理,文章管理和回帖管理五個部分2。預(yù)期目標(biāo),管理員和會員可以在后臺添加分區(qū)及板塊等,普通用戶可以在前臺發(fā)表及回帖,以及最后系統(tǒng)上線。通過BBS論壇的方式,使用者可以在論壇上發(fā)布各項通知,可以讓用戶,游客能夠及時準(zhǔn)確
20、的了解想要了解的動態(tài),同時通過交流平臺能夠展示每一個用戶的各種能力,發(fā)布個人對一些事物的看法,增強人與人之間,團體與團體之間,個人與團體之間的互動交流。 系統(tǒng)中的主要代碼使用Sublime Text3編寫,主要采用的語言是PHP。符合MVC架構(gòu)3,本網(wǎng)站采用現(xiàn)在很流行的B/S開發(fā)模式,采用Yii框架進行開發(fā),與MySQL數(shù)據(jù)庫高性能組合,完全可以滿足上述功能的需求,軟件界面簡易,流程合理,結(jié)構(gòu)清晰,滿足用戶視覺使用習(xí)慣。易使用和維護等,將實施成本降到了最低。對軟件使用與實施具重要意義。由于本系統(tǒng)采用PHP語言開發(fā),代碼編寫符合在Linux下的編寫要求。因此可以運行在任何環(huán)境下,包括:Windo
21、ws、Linux和Unix等主流操作系統(tǒng)。系統(tǒng)的設(shè)計以方便未來業(yè)務(wù)的擴展和系統(tǒng)擴充為目標(biāo),系統(tǒng)要求能夠方便的升級,充分保護系統(tǒng)的投資。論壇系統(tǒng)的研究目標(biāo)是前臺對所有的數(shù)據(jù)進行展示,以及利用網(wǎng)絡(luò)文本編輯器實現(xiàn)發(fā)帖和回帖。搜索功能利用斯芬克斯檢索。后臺分區(qū)、版塊和文章的管理。和該系統(tǒng)要完成無限分類對分區(qū)和板塊的改善。以及RBAC對權(quán)限進行分配4。第 2 章 相關(guān)技術(shù)綜述本系統(tǒng)使用Zend Technologies公司開發(fā)的PHP語言集成開發(fā)環(huán)境Zend Studio。主要是使用基于MVC模式的YII框架進行開發(fā)。后臺數(shù)據(jù)庫是目前屬于Oracle公司的Mysql數(shù)據(jù)庫。利用Sqlyog數(shù)據(jù)庫管理工具
22、實現(xiàn)對數(shù)據(jù)庫的管理和操作。系統(tǒng)前臺文章搜索功能是一個基于SQL的全文檢索引擎Sphinx。Sphinx單一索引最大可包含1億條記錄,在1千萬條記錄情況下的查詢速度為毫秒級5。系統(tǒng)編輯文字運用了所見即所得的開源富文本編輯器UEditor,具有輕量、可定制、用戶體驗優(yōu)秀等特點。2.1 Zend StudioZend Studio是Zend Technologies開發(fā)的PHP語言集成開發(fā)環(huán)境(IDE)。也支持HTML和js標(biāo)簽,但只對PHP語言提供調(diào)試支持。它包括了PHP所有必須的開發(fā)部件。通過一整套編輯、調(diào)試、分析、優(yōu)化和數(shù)據(jù)庫工具,Zend Studio 加速開發(fā)周期,并簡化復(fù)雜的應(yīng)用方案。Z
23、end Studio支持PHP語法加亮顯示,支持語法自動填充功能,支持書簽功能,支持語法自動縮排和代碼復(fù)制功能,內(nèi)置一個強大的PHP代碼調(diào)試工具,支持本地和遠程兩種調(diào)試模式,支持多種高級調(diào)試功能6。Zend Studio可以在Linux、Windows、Mac OS X上運行。Zend Studio的強大之處,除了一般編輯器所具有的代碼高亮,語法自動縮進,書簽功能外,它內(nèi)置的調(diào)試器更是無可挑剔,支持本地和遠程(debug server)兩種調(diào)試模式,支持諸如跟蹤變量、單步運行、斷點、堆棧信息、函數(shù)調(diào)用、查看實時輸出等多種高級調(diào)試功能。通過完全的PHP5支持、編碼分析器、編碼組合功能、語法檢索、
24、項目管理器、編碼編輯器、繪圖調(diào)試器(向?qū)В?。超強智能編碼:具備新的和更優(yōu)秀的分析和優(yōu)化工具像PHP編碼檢測器,。PHP的標(biāo)準(zhǔn)記錄工具-PHP文檔記錄器:非常容易記錄PHP代碼、程序應(yīng)用和方案。FTP和SFTP組合簡化配置,使開發(fā)者安全地從遠程服務(wù)器靈活的上載和下載項目文件。2.2 Yii框架Yii是一個基于組件的高性能PHP框架,用于開發(fā)大型Web應(yīng)用。Yii采用嚴(yán)格的OOP編寫,并有著完善的庫引用以及全面的教程。從 MVC,DAO/ActiveRecord,widgets,caching,等級式RBAC,Web服務(wù),到主題化,I18N和L10N,Yii提供了今日Web 2.0應(yīng)用開發(fā)所需要的
25、幾乎一切功能7。通過一個簡單的命令行工具 yiic 可以快速創(chuàng)建一個web應(yīng)用程序的代碼框架,開發(fā)者可以在生成的代碼框架基礎(chǔ)上添加業(yè)務(wù)邏輯,以快速完成應(yīng)用程序的開發(fā)。 Yii 具有高度的可重用性和可擴展性,是純粹的面向?qū)ο蟮?。Yii中的一切都是獨立的可被配置,可重用,可擴展的組件。更重要的是Yii有著越來越多的擴展庫。這可能有助于大大減少開發(fā)時間。2.3 SphinxSphinx是一個基于SQL的全文檢索引擎,可以結(jié)合MySQL,PostgreSQL做全文搜索,它可以提供比數(shù)據(jù)庫本身更專業(yè)的搜索功能,使得應(yīng)用程序更容易實現(xiàn)專業(yè)化的全文檢索。Sphinx特別為一些腳本語言設(shè)計搜索API接口,如P
26、HP,Python,Perl,Ruby等,同時為MySQL也設(shè)計了一個存儲引擎插件8。Sphinx單一索引最大可包含1億條記錄,在1千萬條記錄情況下的查詢速度為0.x秒(毫秒級)。Sphinx創(chuàng)建索引的速度為:創(chuàng)建100萬條記錄的索引只需 34分鐘,創(chuàng)建1000萬條記錄的索引可以在50分鐘內(nèi)完成,而只包含最新10萬條記錄的增量索引,重建一次只需幾十秒。2.4 UEditorUEditor是一種輕量、可定制開源富文本編輯器,開源基于BSD協(xié)議,所有源代碼在協(xié)議允許范圍內(nèi)可自由修改和使用。百度UEditor可以幫助不少網(wǎng)站開發(fā)者在開發(fā)富文本編輯器所遇到的難題,節(jié)約開發(fā)者因開發(fā)富文本編輯器所需要的大
27、量時間。UEditor中所有的功能型實現(xiàn)都是通過命令插件層中的命令和插件來完成的,并且各個命令和插件之間基本互不耦合使用者需要使用哪個功能就導(dǎo)入哪個功能對應(yīng)的命令或者插件文件,完全不用考慮另外那些雜七雜八的JS文件。理論上來講,所有的命令都是可以用插件來代替的,但是依然將兩者分開的主要原因是命令都是一些靜態(tài)的方法,無需隨editor實例初始化,從而優(yōu)化了編輯器的性能。而插件隨編輯器的初始化而初始化,性能上會有少許的影響,但相比命令而言,插件能夠完成更加復(fù)雜的功能。其中最主要的一個特點是在插件內(nèi)部既可以為編輯器注冊命令,也可以為編輯器綁定監(jiān)聽事件。這個特點使得為編輯器添加任何功能都可以在插件中獨
28、立完成。第 3 章 系統(tǒng)分析與設(shè)計具體而又詳細的系統(tǒng)分析與設(shè)計是很重要的環(huán)節(jié),是詳細設(shè)計成敗的重要基礎(chǔ)和必要條件。一個BBS論壇可以大致分為以下流程:用戶登錄進入論壇(一半為游客,有時候注冊為會員),就某個話題展開討論。通過發(fā)帖功能發(fā)布新的話題,通過回帖功能回復(fù)已有的話題,通過搜索功能查找已有的話題。管理員通過功能創(chuàng)建、編輯、刪除論壇的版塊,管理帖子。這樣的流程決定了BBS論壇系統(tǒng)的需求與設(shè)計。3.1 系統(tǒng)分析論壇管理系統(tǒng)最重要的就是前臺瀏覽論壇和后臺管理論壇數(shù)據(jù)兩部分,本系統(tǒng)對兩部分的架構(gòu)都做了詳細的設(shè)計,前臺主要包括用戶個人管理和論壇內(nèi)容展示兩個部分,而后臺主要包括會員管理,分區(qū)管理,板塊
29、管理,文章管理和回帖管理五個部分。從硬件上講,計算機硬件的速度現(xiàn)在已經(jīng)不是問題,大容量高速度的硬盤十分普遍了,同時網(wǎng)絡(luò)速度的提高,這些為系統(tǒng)的運行打下了堅實的基礎(chǔ)。從軟件的角度上講,數(shù)據(jù)庫技術(shù)也已經(jīng)相當(dāng)成熟,比如本系統(tǒng)所用處理能力很強的Mysql數(shù)據(jù)庫,同時基于Yii框架進行開發(fā),將試圖、模型已經(jīng)進行了分層,減少了耦合,提高了代碼的重用性。3.2 系統(tǒng)運行環(huán)境本系統(tǒng)運行環(huán)境是WAMP,也就是采用B/S 結(jié)構(gòu),即大家熟知的客戶機和服務(wù)器結(jié)構(gòu)。Apache是最通用的網(wǎng)絡(luò)服務(wù)器;Mysql是帶有基于網(wǎng)絡(luò)管理附加工具的關(guān)系數(shù)據(jù)庫;PHP是流行的對象腳本語言,它包含了多數(shù)其它語言的優(yōu)秀特征來使得它的網(wǎng)絡(luò)
30、開發(fā)更加有效9。開發(fā)者在Windows操作系統(tǒng)下使用這些Linux環(huán)境里的工具稱為使用WAMP。B/S一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護和使用。客戶機上只要安裝一個瀏覽器,如Internet Explorer,服務(wù)器安裝SQL Server、Oracle、MYSQL等數(shù)據(jù)庫。瀏覽器通過Web Server 同數(shù)據(jù)庫進行數(shù)據(jù)交互10。3.2.1 系統(tǒng)安全性用戶登錄密碼采用MD5加密算法。保證用戶在登錄時更加的安全。密碼同時也不易遺失。系統(tǒng)所有操作數(shù)據(jù)庫采用PDO,PDO擴展為PHP訪問數(shù)據(jù)庫
31、定義了一個輕量級的、一致性的接口,它提供了一個數(shù)據(jù)訪問抽象層,這樣,無論使用什么數(shù)據(jù)庫,都可以通過一致的函數(shù)執(zhí)行查詢和獲取數(shù)據(jù)。PDO類能防止SQL注入,使網(wǎng)站系統(tǒng)更加健壯11。登錄論壇系統(tǒng)時添加驗證碼功能,驗證碼一般是防止批量注冊的,人眼看起來都費勁,何況是機器。像百度貼吧未登錄發(fā)貼要輸入驗證碼大概是防止大規(guī)模匿名回帖的發(fā)生目前,不少網(wǎng)站為了防止用戶利用機器人自動注冊、登錄、灌水,都采用了驗證碼技術(shù)。3.2.2 系統(tǒng)通用性本系統(tǒng)代碼編寫嚴(yán)格符合在Linux下要求,因此在Linux下也能正常運行,通常系統(tǒng)最后發(fā)布都要發(fā)布在Linux系統(tǒng)下12。3.3 功能設(shè)計結(jié)合目前互聯(lián)網(wǎng)各大論壇核心業(yè)務(wù)的分
32、析,制定BBS論壇管理系統(tǒng)建設(shè)方案。經(jīng)過詳細的分析和研究,確定該系統(tǒng)在結(jié)構(gòu)上基本上分為:論壇前臺和論壇后臺管理兩部分。功能設(shè)計上本系統(tǒng)主要包括七大功能:個人用戶管理功能、論壇內(nèi)容展示功能、會員管理功能、分區(qū)管理功能、版塊管理功能、文章管理功能和回帖管理功能。每個大的功能模塊下又細分出具體的小的功能模塊。個人用戶管理功能:用戶訪問論壇首頁進行登錄,沒有賬號可以進行注冊,然后進入論壇添加用戶的詳細信息,包括頭像,郵箱等等,以及對所有表單數(shù)據(jù)的驗證。論壇內(nèi)容展示功能:(1)發(fā)帖和回帖功能:用戶對自己感興趣的板塊可以發(fā)表文章或者進行回帖。該系統(tǒng)采用UE編輯器,使發(fā)表文章時有更加豐富的內(nèi)容。(2)瀏覽帖
33、子功能:在頂級分區(qū)下模塊區(qū)可以查看對應(yīng)模塊下的文章及回帖總數(shù),及文章和回帖的最后發(fā)表時間。在文章詳細頁面可以查看每個用戶的頭像等詳細信息。會員管理功能:管理員可以添加會員,對會員的個人信息進行管理,刪除會員。會員也可以添加分區(qū)及板塊分區(qū)管理功能:管理員可以添加分區(qū),對分區(qū)進行操作。刪除分區(qū)時,如果該分區(qū)下面有板塊,則要先完成刪除該分區(qū)下的板塊。版塊管理功能:管理員可以添加板塊,對版塊進行操作。刪除板塊時,如果該板塊下有文章,則要先完成刪除該板塊下的文章。文章管理功能:管理員對前臺用戶發(fā)表的文章進行管理,對不符合論壇要求的相關(guān)內(nèi)容進行刪除?;靥芾砉δ埽汗芾韱T對前臺游客以及會員回帖進行管理,對不
34、符合論壇要求的回復(fù)進行刪除。BBS論壇故管理系統(tǒng)個人用戶管理功能分區(qū) 管理功能會員管理功能論壇內(nèi)容展示功能版塊管理功能回帖管理功能文章管理功能圖3-2 概要設(shè)計功能模塊圖3.4 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是項目開發(fā)中的系統(tǒng)設(shè)計中非常重要的一個關(guān)鍵環(huán)節(jié),之所以強調(diào)數(shù)據(jù)庫的重要性,是因為如果設(shè)計不好,在后來的系統(tǒng)維護、變更和功能擴充時,甚至在系統(tǒng)開發(fā)過程中,將會引起比較大的問題,會遇到非常大的困難,大量工作將會重新進行。下面介紹本系統(tǒng)中幾個重要的表。用戶信息表(bbs_user)主要是存儲系統(tǒng)用戶的相關(guān)信息以及使用權(quán)限,只用在這個表中存在的用戶并且有一定權(quán)限才能登錄到系統(tǒng)的后臺業(yè)務(wù)界面,表中沒有權(quán)限的用
35、戶只能查看本論壇系統(tǒng)的前臺展示部分,展示部分也可以登錄的,論壇系統(tǒng)最重要的就是用戶,所以用戶基本信息表的設(shè)計十分重要,用戶基本信息表的設(shè)計如表3-1所示。表3-1 用戶信息表序號數(shù)據(jù)庫字段 類型 存儲內(nèi)容1Id整型用戶ID2Username字符串用戶名3Password字符串 用戶密碼4Rtime整型注冊時間5Rip整型注冊IP6Isadmin枚舉用戶權(quán)限用戶詳細信息表(bbs_profile)存儲每個用戶的詳細信息,包括用戶的昵稱、郵箱、頭像等,用戶詳細信息表結(jié)構(gòu)設(shè)計如表3-2所示。表3-2 用戶詳細信息表序號數(shù)據(jù)庫字段 類型存儲內(nèi)容1Uid整型用戶ID2Age整型年齡3Sex枚舉性別4Tn
36、ame文本用戶昵稱5Email文本郵箱6Edu枚舉學(xué)歷7Signed文本個性簽名8Face文本頭像論壇分區(qū)表(bbs_part)存儲的是論壇所有分區(qū)信息,字段主要包括分區(qū)ID和分區(qū)名稱。用戶詳細信息表結(jié)構(gòu)設(shè)計如表3-3所示。表3-3 論壇分區(qū)表序號數(shù)據(jù)庫字段 類型存儲內(nèi)容1Id整型分區(qū)ID2Name文本分區(qū)名稱論壇版塊表(bbs_category)存儲的是論壇所有分區(qū)下版塊信息,字段主要包括版塊ID和版塊名稱。論壇版塊表結(jié)構(gòu)設(shè)計如表3-4所示。表3-4 論壇版塊表序號數(shù)據(jù)庫字段 類型存儲內(nèi)容1Id整型分區(qū)ID2Name文本分區(qū)名稱3Pid整型所屬分區(qū)ID文章表(bbs_article)存儲論壇
37、所有文章信息,包括文章的標(biāo)題、內(nèi)容、發(fā)布時間等,文章表結(jié)構(gòu)設(shè)計如表3-5所示。表3-5 文章表序號數(shù)據(jù)庫字段 類型存儲內(nèi)容1Id整型文章ID2Title文本文章標(biāo)題3Content文本文章內(nèi)容4Uid整型文章作者ID5Cid整型所屬版塊ID6Pubtime整型發(fā)布時間文章評論表(bbs_comment)存儲論壇所有文章的評論信息,包括評論人、評論內(nèi)容等,評論表結(jié)構(gòu)設(shè)計如表3-6所示。表3-6 評論表序號數(shù)據(jù)庫字段 類型存儲內(nèi)容1Id整型評論ID2Content文本評論內(nèi)容3Uid整型發(fā)布人的ID4Aid整型所屬文章5Pubtime整型 發(fā)布時間3.5關(guān)鍵問題討論3.5.1數(shù)據(jù)庫設(shè)計根據(jù)論壇系統(tǒng)
38、的需求和功能,對數(shù)據(jù)庫的設(shè)計進行了全面分析,數(shù)據(jù)庫選擇用Mysql數(shù)據(jù)庫,Mysql數(shù)據(jù)庫中有Innodb,myisam等幾種引擎,論壇系統(tǒng)多為插入操作,所以選擇Innodb引擎13,在前后臺的操作中,對經(jīng)常操作的字段添加索引,比如在文章表中的作者ID和所屬版塊ID中添加普通索引。一個比較復(fù)雜的應(yīng)用系統(tǒng),其對應(yīng)的數(shù)據(jù)庫表往往以千計。若讓數(shù)據(jù)庫管理員看到對象名就了解這個數(shù)據(jù)庫對象所起的作用,恐怕會比較困難。而且在數(shù)據(jù)庫對象引用的時候,數(shù)據(jù)庫管理員也會為不能迅速找到所需要的數(shù)據(jù)庫對象而頭疼。為此,制定一個數(shù)據(jù)庫對象的前綴BBS。數(shù)據(jù)庫設(shè)計符合范式。為各表之間添加必要的關(guān)聯(lián)外鍵。3.5.2訪問量大時
39、的解決方法當(dāng)系統(tǒng)中用戶特別多的時候,每次都向數(shù)據(jù)庫服務(wù)器中請求數(shù)據(jù),這樣的方案不利于網(wǎng)站以后的發(fā)展,對經(jīng)常訪問的頁面進行文件緩存和內(nèi)存緩存。內(nèi)存緩存采用Memcache。緩存是在磁盤或者內(nèi)存中臨時存儲數(shù)據(jù)的一塊區(qū)域。使用緩存可以提高效率,盡量減少對數(shù)據(jù)庫的壓力,提高頁面相應(yīng)速度14。Memcache是一個高性能的分布式的內(nèi)存對象緩存系統(tǒng),通過在內(nèi)存里維護一個統(tǒng)一的巨大的hash表,它能夠用來存儲各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫檢索的結(jié)果等。簡單的說就是將數(shù)據(jù)調(diào)用到內(nèi)存中,然后從內(nèi)存中讀取,從而大大提高讀取速度。3.5.3搜索功能論壇系統(tǒng)中一定有搜索功能,以前的搜索大多利用Sql語
40、句實現(xiàn),但是當(dāng)系統(tǒng)用戶特別多的時候,頻繁的進行數(shù)據(jù)庫操作,會給數(shù)據(jù)庫服務(wù)器帶來很大的壓力,本系統(tǒng)采用Sphinx全文檢索實現(xiàn)系統(tǒng)的搜索功能15,Sphinx單一索引最大可包含1億條記錄,在1千萬條記錄情況下的查詢速度為0.x秒(毫秒級)。Sphinx創(chuàng)建索引的速度為:創(chuàng)建100萬條記錄的索引只需 34分鐘,創(chuàng)建1000萬條記錄的索引可以在50分鐘內(nèi)完成,而只包含最新10萬條記錄的增量索引,重建一次只需幾十秒。第 4 章 系統(tǒng)功能詳細實現(xiàn)本章詳細介紹了如何開發(fā)BBS論壇管理系統(tǒng),以及七大功能模塊的功能描述和操作方法,并對各大功能模塊的實現(xiàn)過程進行了詳盡的闡述。4.1 個人用戶管理功能本小節(jié)主要介
41、紹的是在開發(fā)個人用戶管理功能模塊過程中所遇到的問題,以及解決問題的方法,即實現(xiàn)方法。(1)問題描述沒有注冊成用戶的可以進行注冊,已經(jīng)注冊成功的管理自己的信息,其中頭像在論壇中要顯示三種大小的,其中小頭像是在瀏覽頁中顯示,中等大小頭像是在文章中顯示,大頭像可以在系統(tǒng)以后的完善中做插件修改頭像使用。(2)實現(xiàn)方法前臺修改用戶個人信息界面如圖4-1所示。圖4-1 個人詳細信息編輯界面不同大小頭像需要編寫產(chǎn)生縮略圖的類,首先打開extension=php_gd2.dll擴展,重啟apache服務(wù)器,其代碼實現(xiàn)如下:class Zoomstatic function savePath($sPath,$t
42、oW,$toH,$savePath,$prefix="s_")$i=imagecreatetruecolor($toW,$toH);$white=imagecolorallocate($i, 255, 255, 255);imagefill($i,0,0,$white);$arr=getimagesize($sPath);$sW=$arr0;$sH=$arr1;$sType=$arr'mime'switch($sType)case 'image/jpeg':case 'image/pjpeg':$funName="j
43、peg"break;case 'image/gif':$funName="gif"break;case 'image/png':$funName="png"break;default:return false;$trueFunName="imagecreatefrom".$funName;$s=$trueFunName($sPath);$biliW=$sW/$toW;$biliH=$sH/$toH;if($biliW>=$biliH)$trueBili=$biliW;else$trueB
44、ili=$biliH;$trueW=$sW/$trueBili;$trueH=$sH/$trueBili;$toX=($toW-$trueW)/2;$toY=($toH-$trueH)/2;imagecopyresized($i,$s,$toX,$toY,0,0,$trueW,$trueH,$sW,$sH);$fileArr=explode("/",$sPath);$oldName=end($fileArr);$newName=$prefix.$oldName;$saveFunName="image".$funName;return $saveFunNa
45、me($i,$savePath."/".$newName);4.2 論壇內(nèi)容展示功能用戶對自己感興趣的板塊可以發(fā)表文章或者進行回帖。該系統(tǒng)采用UE編輯器,使發(fā)表文章時有更加豐富的內(nèi)容。在頂級分區(qū)下模塊區(qū)可以查看對應(yīng)模塊下的文章及回帖總數(shù),及文章和回帖的最后發(fā)表時間。在文章詳細頁面可以查看每個用戶的頭像等詳細信息。其實從系統(tǒng)開始運行開始,系統(tǒng)就會判斷緩存中是否有該首頁信息,如果有直接加載緩存。系統(tǒng)首頁部分截圖如圖4-2所示。在系統(tǒng)首頁中,有六大分區(qū),每個分區(qū)下對應(yīng)不同的版塊,用戶點擊某分區(qū)下的版塊可以查看該版塊下有什么文章,例如點擊后端開發(fā)中的PHP。系統(tǒng)界面如圖4-3所示。
46、用戶點擊該版塊下的某個文章,可以查看文章內(nèi)容及評論,也可以發(fā)表評論,以及在該版塊下發(fā)表文章。例如點擊文章的緩存原理文章,系統(tǒng)界面如圖4-4所示。圖 4-2 系統(tǒng)首頁部分截圖圖4-3 系統(tǒng)登陸界面圖4-4 瀏覽文章界面為提升用戶體驗,發(fā)帖采用了UEditor網(wǎng)絡(luò)文本編輯器,用戶發(fā)帖界面如圖4-5所示。圖4-5 發(fā)表文章界面4.3 會員管理功能管理員可以添加會員,對會員的個人信息進行管理,刪除會員。會員也可以添加分區(qū)及板塊。4.3.1 添加會員功能本小節(jié)主要介紹的是會員管理中的添加會員功能,以及這些功能是調(diào)用的那部分函數(shù)。(1) 功能描述由于論壇管理系統(tǒng)一個管理員對整個系統(tǒng)的管理過于繁忙,所以添加
47、一個會員同樣有管理員的權(quán)限和管理員協(xié)同工作。添加會員界面如圖4-6所示。圖4-6 添加會員界面(2)程序?qū)崿F(xiàn)Yii框架安裝后,是以MVC模式開發(fā)的,下面的代碼是Controller層的加添會員過程。首先實例化用戶對象,指定場景為useradd,以便于編寫規(guī)則,然后驗證,如果是真,則插入數(shù)據(jù)庫,最后恢復(fù)密碼以及重復(fù)密碼為空。public function actionAdd()$usermodel = new User(); $usermodel->scenario = 'useradd' if(!empty($_POST'User')$usermodel-
48、>attributes = $_POST'User'if($usermodel->validate()$usermodel->password =md5($usermodel->password);$usermodel->rtime = time();$usermodel->rip = ip2long($_SERVER'REMOTE_ADDR'); $usermodel->isadmin = '1'if($usermodel->insert()$profilemodel = new Profile(
49、); $profilemodel->uid = $usermodel->getPrimaryKey();$profilemodel->email = $_POST'User''email'if($profilemodel->insert()Yii:app()->user->setFlash('info','用戶名添加成功');elseYii:app()->user->setFlash('info','用戶名添加失敗');elseYii:app()-&g
50、t;user->setFlash('info','用戶名添加失敗');$usermodel->password = ''$usermodel->repass = ''$this->render("useradd",array('model'=>$usermodel);和Controller層對應(yīng)的View層有兩種方式編寫,可以運用常用的html方式編寫,本系統(tǒng)代碼采用Yii框架組件模式編寫。<ul id="tabsmenu" class=&
51、quot;tabsmenu"> <li class="active"><a href="#tab1">會員管理</a></li> </ul> <div id="tab1" class="tabcontent"> <h3 align="center">添加會員</h3> <?php $form = $this->beginWidget('CActiveForm'
52、;) ?> <div class="form"> <div class="form_row"> <?php echo $form->labelEx($model,'username') ?><?php echo form->textField($model,'username',array('class'=>'form_input') ?> </div> <div class="form_ro
53、w"> <?php echo $form->labelEx($model,'password') ?> <?php echo $form->passwordField($model,'password',array('class'=>'form_input') ?> </div> <div class="form_row"> <?php echo $form->labelEx($model,'repass
54、9;) ?> <?php echo $form->passwordField($model,'repass',array('class'=>'form_input') ?> </div> <div class="form_row"> <?php echo $form->labelEx($model,'email') ?> <?php echo $form->emailField($model,'email',ar
55、ray('class'=>'form_input') ?> </div> <div class="form_row"> <input type="submit" class="form_submit" value="添加" /> </div> <?php $form = $this->endWidget('CActiveForm') ?> <div class="clear&
56、quot;></div> <?php echo $form->error($model,'username'); echo $form->error($model,'password'); echo $form->error($model,'repass'); echo $form->error($model,'email'); if(Yii:app()->user->hasFlash('info') echo Yii:app()->user->
57、;getFlash('info'); ?> </div> </div>該過程Validate方法驗證成功,驗證失敗返回假,如果驗證失敗,我們需要將失敗的錯誤信息顯示到模板當(dāng)中4.3.2 會員管理功能 本小節(jié)描述了會員管理功能,主要是編輯會員信息和刪除會員,還有分頁顯示會員列表。主要闡述系統(tǒng)運行流程以及管理的具體代碼實現(xiàn)。(1)功能描述分頁顯示所有會員。會員不僅能夠在前臺發(fā)帖,還能進入后臺進行管理,在后臺能夠編輯會員的詳細信息,和刪除某會員。操作過程如圖4-7,4-8所示。圖4-7 會員編輯界面圖4-8 會員分頁顯示界面(2)程序?qū)崿F(xiàn)我們主要利用Pa
58、ge組件實現(xiàn)分頁,首先實例化User對象和criterria容器,然后統(tǒng)計總條數(shù),實例化分頁類,設(shè)置每頁顯示多少條,進行l(wèi)imit截取其代碼如下。public function actionIndex()$usermodel = User:model();$criteria = new CDbCriteria();$usermodel->count('isadmin=:isadmin',array(':isadmin'=>'1'); $criteria->condition = 'isadmin=:isadmin'$criteria->params = array(':isadmin'=>'1');$total = $usermodel->count($criteria); $page = new CPagination($total); $page->pageSize= 2; $page->applyLimit($criteria);$users = $usermodel->findAll($c
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 門診輸液室護士工作總結(jié)
- 幼教行業(yè)助理工作總結(jié)
- 電影行業(yè)技巧提升總結(jié)
- 國家課程:《機械制造裝備設(shè)計》第一章
- 2025-2030全球管式爐行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球工業(yè)應(yīng)用移動機器人行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國電動低升降托盤車行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國塑料3D打印長絲行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球工業(yè)膠囊填充機行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國微米級氧化鋯行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2024年北京東城社區(qū)工作者招聘筆試真題
- 《敏捷項目管理》課件
- 統(tǒng)編版(2024新版)七年級上學(xué)期道德與法治期末綜合測試卷(含答案)
- 黑龍江省哈爾濱市2024屆中考數(shù)學(xué)試卷(含答案)
- 前程無憂測評題庫及答案
- 高三日語一輪復(fù)習(xí)助詞「と」的用法課件
- 物業(yè)管理服務(wù)房屋及公用設(shè)施維修養(yǎng)護方案
- 五年級上冊小數(shù)遞等式計算200道及答案
- 帶拼音生字本模板(可A4打印)
- 超高大截面框架柱成型質(zhì)量控制
- 森林法講解課件
評論
0/150
提交評論