PHP個(gè)人博客系統(tǒng)--畢業(yè)設(shè)計(jì)
畢 業(yè) 設(shè) 計(jì)基于PHP 的個(gè)人博客系統(tǒng)的實(shí)現(xiàn)學(xué)生承諾書本人鄭重承諾:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集
畢 業(yè) 設(shè) 計(jì)
基于PHP 的個(gè)人博客系統(tǒng)的實(shí)現(xiàn)
學(xué)生承諾書
本人鄭重承諾:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。
作者簽名:
年 月 日
,摘 要
本系統(tǒng)利用PHP 動(dòng)態(tài)網(wǎng)絡(luò)開發(fā)技術(shù),以MySQL 作為后臺數(shù)據(jù)庫,使用Apache 配置Web 服務(wù)器,結(jié)合JavaScript 和HTML 兩種腳本語言,以及配合多種網(wǎng)頁開發(fā)工具,實(shí)現(xiàn)了基于B/S模式的個(gè)人日志發(fā)表和交流的平臺——個(gè)人博客系統(tǒng)。
全文主要分為6個(gè)部分:第1部分主要介紹個(gè)人博客系統(tǒng)的特點(diǎn)、優(yōu)點(diǎn)和本系統(tǒng)所要用到的各種開發(fā)技術(shù);第2部分主要論述了傳統(tǒng)系統(tǒng)和所要開發(fā)系統(tǒng)的處理流程、功能介紹和比較;第3部分主要分析了系統(tǒng)的各項(xiàng)功能和性能需求,給出了系統(tǒng)需求管理規(guī)劃表,展示了各種需求的優(yōu)先級,規(guī)劃和分配了各個(gè)模塊所要完成的系統(tǒng)功能;第4部分系統(tǒng)數(shù)據(jù)庫設(shè)計(jì),主要分析和設(shè)計(jì)了系統(tǒng)的數(shù)據(jù)庫表和項(xiàng),以及數(shù)據(jù)庫各項(xiàng)的標(biāo)識符;第5部分系統(tǒng)詳細(xì)設(shè)計(jì),逐一給出了系統(tǒng)各個(gè)模塊的詳細(xì)設(shè)計(jì)過程;第6部分系統(tǒng)配置和發(fā)布,介紹了系統(tǒng)開發(fā)和運(yùn)行的相關(guān)環(huán)境配置以及運(yùn)行效果展示。
關(guān)鍵詞:博客 PHP MySQL 動(dòng)態(tài)網(wǎng)頁 B/S模式
,目 錄
1 緒論 .....................................................................1
1.1 個(gè)人博客 ...............................................................1
1.1.1 個(gè)人博客的研究意義 ...................................................1
1.1.2個(gè)人博客的簡介 . .......................................................1
1.1.3個(gè)人博客的特點(diǎn) . .......................................................2
1.2 開發(fā)技術(shù) ...............................................................2
1.2.1 PHP技術(shù) . .............................................................2
1.2.2 PHP工作原理 . .........................................................3
1.2.3 B/S結(jié)構(gòu) . .............................................................4
1.2.4 數(shù)據(jù)庫技術(shù) ...........................................................4
1.2.5 Apache技術(shù) . ..........................................................6
1.2.6 JavaScript語言 . ......................................................6
2 系統(tǒng)可行性分析設(shè)計(jì) .......................................................6
2.1 開發(fā)的目的和背景 .......................................................6
2.2 系統(tǒng)目標(biāo)和研究方法 .....................................................7
,2.3 傳統(tǒng)系統(tǒng)的分析 .........................................................8
2.4 所要開發(fā)的系統(tǒng)的分析 ...................................................9
2.5 系統(tǒng)的其它可行性 ......................................................10
2.6 可行性結(jié)論 ............................................................11
3 系統(tǒng)需求分析和概要設(shè)計(jì) ..................................................11
3.1 系統(tǒng)需求分析 ..........................................................11
3.1.1 開發(fā)背景 ............................................................12
3.1.2 系統(tǒng)實(shí)現(xiàn)目標(biāo)概述 ....................................................12
3.1.3 系統(tǒng)功能需求 ........................................................12
3.1.4 系統(tǒng)需求管理規(guī)劃表 ..................................................13
3.1.5 系統(tǒng)性能要求 ........................................................14
3.2 概要設(shè)計(jì) ..............................................................15
3.2.1 系統(tǒng)體系結(jié)構(gòu) ........................................................15
3.2.2 系統(tǒng)模塊劃分 ........................................................16
3.2.3 系統(tǒng)功能劃分組織結(jié)構(gòu)圖 ..............................................17
3.2.3 運(yùn)行環(huán)境 ............................................................17
4 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì) ..........................................................18
4.1 MySQL 數(shù)據(jù)庫簡介 ......................................................18
4.2 數(shù)據(jù)庫表的設(shè)計(jì) ........................................................19
4.2.1 概述 ................................................................19
4.2.2 用戶表 ..............................................................19
4.2.3文章內(nèi)容表 . ..........................................................20
4.2.4 文章評論表 ..........................................................20
4.2.5圖片信息表 . ..........................................................21
4.2.6 朋友圈信息表 ........................................................21
4.2.7 數(shù)據(jù)庫ER 關(guān)系圖 .....................................................22
5 系統(tǒng)的詳細(xì)設(shè)計(jì) ..........................................................22
5.1 首頁面及主要頁面設(shè)計(jì) ..................................................23
5.2 系統(tǒng)主要功能模塊開發(fā) ..................................................24
5.1.1首頁模塊 . ............................................................24
,5.1.2 文章管理模塊 ........................................................27
5.1.3 圖片管理模塊 ........................................................29
5.1.4 朋友圈管理模塊 ......................................................31
5.1.5管理員管理模塊 . ......................................................31
6系統(tǒng)配置和發(fā)布 . ..........................................................32
6.1 開發(fā)和應(yīng)用環(huán)境配置 ....................................................32
6.1.1安裝Apache2.2.6 .....................................................32
6.1.2 安裝PHP5.2.5 . .......................................................33
6.1.3安裝MySQL6.0.3 ......................................................34
6.1.4安裝phpmyadmin2.11.3 ................................................36
6.2 系統(tǒng)的發(fā)布和運(yùn)行效果 ..................................................36
6.2.1 系統(tǒng)的發(fā)布 ..........................................................36
6.2.2 系統(tǒng)運(yùn)行效果 ........................................................37
7 總結(jié) ....................................................................42 致 謝 ................................................. 錯(cuò)誤!未定義書簽。
參 考 文 獻(xiàn) ...............................................................44
Abstract ..................................................................45 仲愷農(nóng)業(yè)工程學(xué)院畢業(yè)論文(設(shè)計(jì)) 成績評定表 ................. 錯(cuò)誤!未定義書簽。
,1 緒論
博客,數(shù)字生活新時(shí)尚,通過文字、圖片、聲音等,盡情展示自我、分享感受、參與交流,美好你我生活。Show you, share me,人人都可以博客,人人都需要博客。
1.1 個(gè)人博客
1.1.1 個(gè)人博客的研究意義
越來越多的網(wǎng)絡(luò)用戶希望能夠在網(wǎng)絡(luò)平臺上更多地展現(xiàn)自己的個(gè)性,更方便地與人互動(dòng)交流,在傳統(tǒng)的WEB1.0時(shí)代,無論是論壇、社區(qū)還是個(gè)人網(wǎng)站,都試圖在這些方面進(jìn)行努力,隨著WEB2.0時(shí)代的到來,一個(gè)新的概念出現(xiàn)了----博客。隨著計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,博客已經(jīng)成為寫網(wǎng)絡(luò)日志必不可少的一種工具,也是一種簡單有效的提供網(wǎng)絡(luò)用戶之間進(jìn)行在線交流的網(wǎng)絡(luò)平臺,通過其可以結(jié)交更多的朋友,表達(dá)更多的想法,它隨時(shí)可以發(fā)布日志,方便快捷。訪客可以直接在個(gè)人Blog 上留言,如提出問題或意見等。個(gè)人博客的發(fā)展,也已經(jīng)成為廣告商業(yè)務(wù)拓展的重要領(lǐng)域??傊?,Blog 是繼Email 、BBS 、ICQ 之后的第四種網(wǎng)絡(luò)交互方式。Blog 是未來信息化教育和個(gè)人知識管理的強(qiáng)大而簡單易用的工具。
1.1.2個(gè)人博客的簡介
“博客”一詞是從英文單詞Blog 翻譯而來。Blog 是Weblog 的簡稱,而Weblog 則是由Web 和Log 兩個(gè)英文單詞組合而成。Weblog 就是在網(wǎng)絡(luò)上發(fā)布和閱讀的流水記錄,通常稱為“網(wǎng)絡(luò)日志”,簡稱為“網(wǎng)志”。它是繼Email 、BBS 、IM 之后出現(xiàn)的第四種全新的網(wǎng)絡(luò)交流方式。它絕不僅僅是一種單向的發(fā)布系統(tǒng),而且有著極其出色的交流功能。另外Blog 也提供了非常方便實(shí)用的個(gè)性化功能。簡言之,Blog 就是以網(wǎng)絡(luò)作為載體,簡易迅速便捷地發(fā)布自己的心得,及時(shí)有效輕松地與他人進(jìn)行交流,再集豐富多彩的個(gè)性化展示于一體的綜合性平臺。
1
,1.1.3個(gè)人博客的特點(diǎn)
1,零機(jī)制:博客屬于個(gè)人所有,是自發(fā)建立和非正式的建設(shè)。BSP (Blog Service Provider ——博客服務(wù)托管商)不能對博客發(fā)號施令。
2,零技術(shù):博客不需要作網(wǎng)站的專業(yè)知識,可以像發(fā)郵件一樣簡單地實(shí)現(xiàn)博客網(wǎng)頁的呈現(xiàn)。技術(shù)的極度簡化,包括架構(gòu)和申請博客網(wǎng)站、編輯、上傳和修改內(nèi)容等。
3,零成本:任何一個(gè)人都可以像申請免費(fèi)郵件般免費(fèi)申請自己的博客網(wǎng)站。不需要注冊域名的成本,不需要租用服務(wù)器空間的成本,不需要許多軟件工具的成本。
4,零編輯:博客用戶就是編輯,即時(shí)寫作、即時(shí)發(fā)布、自我檢查。這形成了與傳統(tǒng)寫作截然不同的“體驗(yàn)”,真正實(shí)現(xiàn)了作者“零磨損”的開放式寫作。
5,零形式:博客頁面的表現(xiàn)形式和文章內(nèi)容的表現(xiàn)方式十分靈活,沒有特定形式。 6,與個(gè)人主頁相比較,博客的使用更方便、交互性更強(qiáng)。與傳統(tǒng)的電子郵件、BBS 和ICQ 這三種互聯(lián)網(wǎng)溝通方式相比,博客是一種較嚴(yán)肅的溝通平臺。BBS 公共匿名性很強(qiáng),而個(gè)人性很弱,因此缺乏約束。電子郵件和ICQ 則是多用于個(gè)人間的通訊,而博客是個(gè)人性和公共性的結(jié)合。博客是個(gè)人在網(wǎng)上展示自己、與別人溝通交流的綜合平臺,它的管理比BBS 簡單的多。
1.2 開發(fā)技術(shù)
本系統(tǒng)在Windows XP 下采用PHP 技術(shù)作為服務(wù)器端腳本解釋器,MySQL 作為后臺數(shù)據(jù)庫平臺以及Apache 作為Web 服務(wù)器,并且使用了一些輔助開發(fā)工具和技術(shù),比如Dreamweaver CS3等。
1.2.1 PHP技術(shù)
PHP (Hypertext Preprocessor——超文本預(yù)處理器)是一種HTML 內(nèi)嵌式的腳本語言(類似ASP )。PHP 的語法大部分兼容了C 、JA V A 、Perl ,并增加了PHP 特有的語法結(jié)構(gòu),可以比CGI 或者Perl 更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁,只需要很少的編程知識就能建立一個(gè)交互的WEB 站點(diǎn)。它可以用于管理動(dòng)態(tài)內(nèi)容、支持?jǐn)?shù)據(jù)庫、處理會話跟蹤,甚至構(gòu)建整個(gè)電子商務(wù)站點(diǎn)。它支持許多流行的數(shù)據(jù)庫,包括 MySQL 、PostgreSQL 、Oracle 、Sybase 、Informix 和 Microsoft SQL Server。
PHP 是完全免費(fèi)的開源產(chǎn)品,不用花錢,你可以從PHP 官方站點(diǎn)(http: //www.php.net) 2
,自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進(jìn)你自己需要的特色。
Apache 和MYSQL 也是同樣免費(fèi)開源,在國外非常流行。PHP 和MYSQL 搭配使用,可以非??焖俚拇罱ㄒ惶撞诲e(cuò)的動(dòng)態(tài)網(wǎng)站系統(tǒng),因此國外大多數(shù)主機(jī)系統(tǒng)都配有免費(fèi)的
APACHE +PHP +MYSQL 。通常認(rèn)為這種搭配的執(zhí)行效率比IIS +ASP +ACCESS 要高,而后者的使用還必須另外交錢給微軟。
PHP 具有如下的優(yōu)點(diǎn):
1.學(xué)習(xí)簡單:只需要了解一些基本的語法和語言特設(shè),就可以開始使用PHP 。
數(shù)據(jù)庫連接方便:PHP 可以編譯成具有與許多數(shù)據(jù)庫相連接的函數(shù)。PHP 與MYSQL
是現(xiàn)在絕佳的組合??梢跃帉懲鈬暮瘮?shù)間接存取數(shù)據(jù)庫。這樣當(dāng)更換使用的數(shù)據(jù)庫時(shí),可以輕松的更改編碼以適應(yīng)這樣的變化。PHPLIB 就是最常用的可以提供一般事務(wù)需要的一系列基庫。
2.?dāng)U展性強(qiáng):PHP 已經(jīng)進(jìn)入了一個(gè)高速發(fā)展的時(shí)期,具有良好的擴(kuò)展附加功能。
可以進(jìn)行面向?qū)ο缶幊蹋篜HP 提供了類和對象,基于WEB 的編程工作非常需要面
向?qū)ο缶幊棠芰?。PHP 支持構(gòu)造器、提取類等。
總之,PHP 技術(shù)具有免費(fèi)、跨平臺、可加密、開發(fā)效率高等優(yōu)點(diǎn),在編寫小型的網(wǎng)
站系統(tǒng)時(shí)較之ASP 、JSP 等技術(shù)有一定優(yōu)勢。
1.2.2 PHP工作原理
PHP 的所有應(yīng)用程序都是通過WEB 服務(wù)器(如apache) 和PHP 引擎程序解釋執(zhí)行完
成的,工作過程:
(1)當(dāng)用戶在瀏覽器地址中輸入要訪問的PHP 頁面文件名,然后回車就會觸發(fā)這個(gè)
PHP 請求,并將請求傳送給支持PHP 的WEB 服務(wù)器。
(2)WEB服務(wù)器接受這個(gè)請求,并根據(jù)其后綴進(jìn)行判斷。如果是一個(gè)PHP 請求,WEB
服務(wù)器從硬盤或內(nèi)存中取出用戶要訪問的PHP 應(yīng)用程序,并將其發(fā)送給PHP 引擎程序。
(3)PHP引擎程序?qū)EB 服務(wù)器傳送過來的文件從頭到尾進(jìn)行掃描并根據(jù)命令
從后臺讀取,處理數(shù)據(jù),并動(dòng)態(tài)地生成相應(yīng)的HTML 頁面。
(4)PHP引擎將生成HTML 頁面返回給WEB 服務(wù)器。WEB 服務(wù)器再將HTML 頁面
返回給客戶端瀏覽器。
3
,1.2.3 B/S結(jié)構(gòu)
在當(dāng)前Internet/Intranet領(lǐng)域,“瀏覽器/服務(wù)器(簡稱B/S)”結(jié)構(gòu)是非常流行的客戶機(jī)/服務(wù)器結(jié)構(gòu)。在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求,服務(wù)器對瀏覽器的請求進(jìn)行處理,將用戶所需信息返回到瀏覽器。B/S結(jié)構(gòu)簡化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。瀏覽器發(fā)出請求,而其余如數(shù)據(jù)請求、加工、結(jié)果返回以及動(dòng)態(tài)網(wǎng)頁生產(chǎn)等工作全部由Web Server 完成。實(shí)際上B/S體系結(jié)構(gòu)是把二層C/S結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來,由Web 服務(wù)器單獨(dú)組成一層來負(fù)擔(dān)其他任務(wù),這樣客戶機(jī)的壓力減輕了,把負(fù)荷分配給了Web 服務(wù)器。這種三次體系結(jié)構(gòu)如圖1所示。
圖1 B/S三層體系結(jié)構(gòu)
這種結(jié)構(gòu)不僅把客戶機(jī)從沉重的負(fù)擔(dān)和不斷對其提高的性能的要求中解放出來,也把技術(shù)維護(hù)人員從繁重的維護(hù)升級工作中解脫出來。由于客戶機(jī)把事務(wù)處理邏輯部分分給了功能服務(wù)器,使客戶機(jī)一下子“苗條”了許多,不再負(fù)責(zé)處理復(fù)雜計(jì)算和數(shù)據(jù)訪問等關(guān)鍵事務(wù),只負(fù)責(zé)顯示部分,所以維護(hù)人員不再為程序的維護(hù)工作奔波于每個(gè)客戶機(jī)之間,而把主要精力放在功能服務(wù)器上程序的更新工作。這種三層結(jié)構(gòu)在層與層之間相互獨(dú)立,任何一層的改變不會影響其它層的功能。
1.2.4 數(shù)據(jù)庫技術(shù)
數(shù)據(jù)庫是數(shù)據(jù)和數(shù)據(jù)庫對象的集合,其中數(shù)據(jù)庫對象指表(Table )、視圖(View )、存儲過程(Stored Procedure )和觸發(fā)器(Trigger )等。數(shù)據(jù)庫通過SQL (Structured Query 4
,Language )來對數(shù)據(jù)進(jìn)行操作和管理,這里包括一些基本的操作如select 、delete 、insert 、update 語句。
ADO(ActiveX Data Objects)是微軟開發(fā)數(shù)據(jù)庫應(yīng)用程序的數(shù)據(jù)庫訪問技術(shù)。它被設(shè)計(jì)用來同新的數(shù)據(jù)庫訪問層OLE DB Provider一起協(xié)同工作,以提供通用數(shù)據(jù)訪問(Universal Data MySQL )。OLE DB 是一個(gè)底層的數(shù)據(jù)庫訪問接口,用它可以訪問各種數(shù)據(jù)源,包括傳統(tǒng)的關(guān)系數(shù)據(jù)庫。ADO 封裝了OLE DB程序中使用的大量COM 接口,所以是一種高層訪問技術(shù)。關(guān)于數(shù)據(jù)庫管理系統(tǒng)和接口的原理如圖2所示。
MySQL 是一個(gè)快速、多線程、多用戶的小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它支持正規(guī)的SQL 查詢語言和采用多種數(shù)據(jù)類型,能對數(shù)據(jù)進(jìn)行各種詳細(xì)的查詢等。MySQL 提供了一全套的數(shù)據(jù)庫創(chuàng)建和訪問機(jī)制,通過很直觀的方式就可以創(chuàng)建、訪問、修改數(shù)據(jù)庫的表和項(xiàng),并且能建立它們之間的各種數(shù)據(jù)關(guān)系。MySQL 系列從90年代就發(fā)展起來,經(jīng)過了多年的反展,它已經(jīng)成為非常成熟的技術(shù),面向中小型企業(yè)級應(yīng)用。
MySQL 數(shù)據(jù)庫的特點(diǎn)是數(shù)據(jù)庫文件小而簡單,不需要運(yùn)行或者啟動(dòng)數(shù)據(jù)庫服務(wù)進(jìn)程就可以使用。通常MySQL 數(shù)據(jù)庫文件可以隨網(wǎng)頁文件一起方便地放在網(wǎng)站的目錄中,正是由于這些特點(diǎn),MySQL 數(shù)據(jù)庫通常被用來作為網(wǎng)站開發(fā)的數(shù)據(jù)庫支持技術(shù)。
對MySQL 數(shù)據(jù)庫的管理采用圖形化管理工具phpMyAdmin 。phpMyAdmin 是一個(gè)用PHP 編寫的、基于Web 的、跨平臺的MySQL 管理程序,支持簡體中文,使用Web 瀏覽器作為管理界面。通過phpMyAdmin 可以進(jìn)行絕大部分的MySQL 操作,包括對數(shù)據(jù)庫級操作,表級操作,以及數(shù)據(jù)管理等。
標(biāo)準(zhǔn)SQL
圖2 數(shù)據(jù)庫管理系統(tǒng)和接口的原理
5