2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  基于PHP技術(shù)的個(gè)人網(wǎng)站設(shè)計(jì)</p><p>  【摘要】 隨著互聯(lián)網(wǎng)的高速發(fā)展,傳統(tǒng)的WEB應(yīng)用已經(jīng)顯得力不從心,而WEB2.0的出現(xiàn)極大改善了這一局面。所謂WEB2.0其核心就是用戶不再只是被動的網(wǎng)頁瀏覽者,他們既是網(wǎng)站瀏覽者,也是網(wǎng)站內(nèi)容的制造者。未來的互聯(lián)網(wǎng)趨勢必然是WEB2.0。因此,以虛擬社區(qū)為主題,突出WEB2.0思想,構(gòu)建一個(gè)由用戶提供主要的網(wǎng)站內(nèi)容,管理員只負(fù)責(zé)整理,發(fā)布

2、用戶提供的話題,然后供用戶參與討論的網(wǎng)站,比起傳統(tǒng)的由管理員單一提供資源相比,有著提供資源更多,更全,網(wǎng)站與用戶交互性更強(qiáng)等優(yōu)勢。</p><p>  本課題使用PHP技術(shù)設(shè)計(jì)一個(gè)具有WEB2.0特點(diǎn)的個(gè)人網(wǎng)站及其相應(yīng)的功能模塊。 開發(fā)環(huán)境結(jié)合了PHP,Mysql和Apache,利用這三種開源工具,來實(shí)現(xiàn)一個(gè)以虛擬社區(qū)為主的個(gè)人網(wǎng)站。</p><p>  【關(guān)鍵詞】 WEB2.0網(wǎng)站,個(gè)

3、人網(wǎng)站,PHP技術(shù) </p><p>  Personal web site design based on PHP</p><p>  ——php+mysql+apache develop and application</p><p>  【Abstract】 The plan of the thesis is to design a personal we

4、b site and function modules whitch has the characteristic of WEB2.0. The development enveriment combines PHP,Mysql,Apache,using the three open sourse tools to bring about a personal web based on virtual community.</p&

5、gt;<p>  With the Internet developing faster and faster the tradition web site was strength fall short of wishes. And the WEB2.0’s appear changed the situation extraordinary. The nucleus of WEB2.0 is that the user

6、 is no longer just viewing the page passively. The user is both viewer and creater. The future of the Internet is WEB2.0. So using WEB2.0 ideology and based on virtual community to create a web site whitch user create th

7、e contents and the administator just operate the web site and publish the co</p><p>  The purpose of the web site:protrude the WEB2.0 ideology,increase user exchange. For the users they are also viewer and c

8、reater that can increase the visit numbers and ease the work of the administrator.</p><p>  【Key Words】 personal web site,php technology,WEB2.0,user exchange,virtual community</p><p><b>

9、  目錄</b></p><p><b>  第1章 緒論1</b></p><p>  1.1 WEB 2.0時(shí)代的互聯(lián)網(wǎng)1</p><p>  1.1.1 關(guān)于WEB 2.01</p><p>  1.1.2 關(guān)于PHP2</p><p>  1.2 個(gè)人網(wǎng)站和虛擬社區(qū)

10、2</p><p>  第2章 可行性分析3</p><p>  2.1 技術(shù)可行性分析3</p><p>  2.2 網(wǎng)站功能分析3</p><p>  第3章 開發(fā)環(huán)境和開發(fā)方法4</p><p>  3.1 開發(fā)環(huán)境4</p><p>  3.1.1 關(guān)于PHPnow4<

11、/p><p>  3.1.2 其他開發(fā)工具4</p><p>  3.2 開發(fā)方法5</p><p>  第4章 基于PHP的個(gè)人網(wǎng)站設(shè)計(jì)總體設(shè)計(jì)6</p><p><b>  4.1主要頁面6</b></p><p>  4.1.1 主界面6</p><p>  4

12、.1.2 個(gè)人日記6</p><p>  4.1.3 管理員界面6</p><p>  4.1.4 論壇界面6</p><p>  4.2 論壇功能設(shè)計(jì)7</p><p>  4.2.1 論壇運(yùn)行流程圖8</p><p>  4.2.2 用戶級別設(shè)計(jì)9</p><p>  第5章 詳

13、細(xì)設(shè)計(jì)10</p><p>  5.1 數(shù)據(jù)庫設(shè)計(jì)10</p><p>  5.1.1 博客文章表10</p><p>  5.1.2 博客評論表10</p><p>  5.1.3 用戶表11</p><p>  5.1.4 用戶文章表11</p><p>  5.1.5 用戶文章

14、評論表12</p><p>  5.1.6 置頂文章表13</p><p>  5.1.7 短消息表13</p><p>  5.1.8 注冊碼表14</p><p>  5.2 具體功能實(shí)現(xiàn)14</p><p>  5.2.1 用戶注冊登錄14</p><p>  5.2.2 用戶

15、個(gè)人信息管理18</p><p>  5.2.3 管理員登錄21</p><p>  5.2.4 管理員功能21</p><p>  5.2.5 博客22</p><p>  5.2.6 論壇25</p><p>  5.2.7 站內(nèi)短消息28</p><p>  5.2.8系統(tǒng)配置

16、與公共頭文件28</p><p>  5.2.9 javascript和Ajax29</p><p><b>  第6章 測試31</b></p><p>  6.1 測試環(huán)境31</p><p>  6.2 測試內(nèi)容31</p><p><b>  結(jié)論32</b&g

17、t;</p><p><b>  參考文獻(xiàn)33</b></p><p><b>  致謝34</b></p><p><b>  圖目錄</b></p><p>  圖4.1 網(wǎng)站功能流程圖8</p><p>  圖5.1 登陸界面18</

18、p><p>  圖5.2 查看注冊碼20</p><p>  圖5.3 個(gè)人控制面板21</p><p>  圖5.4 管理員論壇用戶管理界面24</p><p>  圖5.5 管理員論壇管理界面24</p><p>  圖5.6 博客文章列表25</p><p>  圖5.7 論壇主界面

19、28</p><p>  圖5.8 站內(nèi)短消息界面30</p><p><b>  表目錄</b></p><p>  表4.1 用戶權(quán)限表9</p><p>  表5.1 admintextform10</p><p>  表5.2 diaryreplyform11</p>

20、<p>  表5.3 userform11</p><p>  表5.4 usertextform12</p><p>  表5.5 userreplyform13</p><p>  表5.6 hottextform13</p><p>  表5.7 messageform14</p><p>

21、;  表5.8 keyform14</p><p><b>  第1章 緒論</b></p><p>  1.1 WEB 2.0時(shí)代的互聯(lián)網(wǎng)</p><p>  在當(dāng)今IT技術(shù)快速發(fā)展的今天,網(wǎng)頁已經(jīng)從WEB1.0時(shí)代發(fā)展到了WEB2.0,WEB2.0是一種更先進(jìn)的理念,能更大程度的滿足當(dāng)下用戶所謂需求。WEB2.0的大趨勢不可逆轉(zhuǎn),互聯(lián)網(wǎng)

22、正經(jīng)歷一次新秩序的建立[1]。WEB2.0的先進(jìn)理念有:</p><p>  ●更加開放、平等、協(xié)作、共享、精準(zhǔn)。</p><p>  ●能充分展現(xiàn)個(gè)人才華,集結(jié)群眾智慧、廣泛獲取信息、提高辦事效率。</p><p>  ●市場更加細(xì)分、網(wǎng)絡(luò)更加社會化、資源更加優(yōu)化配置,大家都有更多成功的機(jī)會。</p><p>  歸根到底,用戶需求變化推進(jìn)

23、互聯(lián)網(wǎng)的發(fā)展。首先,在WEB2.0時(shí)代信息爆炸的情況下,用戶希望獲得的信息更加精準(zhǔn);其次,希望提高使用互聯(lián)網(wǎng)的效率或者效果;第三,希望能夠按照自己的習(xí)慣和方式來使用互聯(lián)網(wǎng)服務(wù)[2]。綜上所述,學(xué)習(xí)一種適應(yīng)WEB2.0理念的動態(tài)網(wǎng)頁開發(fā)技術(shù)不論是在目前的WEB開發(fā)應(yīng)用領(lǐng)域還是將來互聯(lián)網(wǎng)的發(fā)展中都是十分有幫助的。</p><p>  1.1.1 關(guān)于WEB 2.0</p><p>  所謂WE

24、B 2.0,并沒有什么明確的定義,一般來說WEB2.0是相對WEB1.0的新一類互聯(lián)網(wǎng)應(yīng)用的統(tǒng)稱。Web2.0是一個(gè)新生的術(shù)語,它更注重用戶的交互作用,用戶既是網(wǎng)站內(nèi)容的消費(fèi)者,也是網(wǎng)站內(nèi)容的制造者[3]。也有人生動的將WEB2.0稱作“大眾的新智慧”,即利用網(wǎng)絡(luò)來發(fā)掘大眾的智慧。還有很多這種概念的支持者認(rèn)為WEB2.0服務(wù)將取代傳統(tǒng)桌面計(jì)算機(jī)應(yīng)用[4]。</p><p>  1.1.2 關(guān)于PHP</p&

25、gt;<p>  PHP是目前最流行的網(wǎng)站腳本語言之一,有著簡單,輕便,開源免費(fèi)且功能強(qiáng)大的優(yōu)勢。PHP支持目前主流的各種數(shù)據(jù)庫如MS SQL,MySQL,Orcale等,并具有很好的跨平臺性,除了對Windows有很好支持,還能在Linux以及Unix上使用,且不同平臺間代碼的轉(zhuǎn)移十分簡便,無需大量修改。以上的各種優(yōu)點(diǎn),使PHP同Apache,MySQL,Linux組成的LMAP成為了最具性價(jià)比的WEB系統(tǒng)[5]。同時(shí)P

26、HP有著成熟的面向?qū)ο篌w系,也能適應(yīng)大型項(xiàng)目的開發(fā)。</p><p>  1.2 個(gè)人網(wǎng)站和虛擬社區(qū)</p><p>  在WEB2.0時(shí)代互聯(lián)網(wǎng)快速發(fā)展的背景下,建立網(wǎng)站已經(jīng)不是專業(yè)的學(xué)術(shù)機(jī)構(gòu)、大公司或者資深的計(jì)算機(jī)專家的專利了,網(wǎng)站變得越來越普及,越來越有親和力,而越來越多的人也開始將自己交友,娛樂,獲取信息的平臺選擇在了網(wǎng)絡(luò)上。加上技術(shù)的進(jìn)步,開源軟件的發(fā)展,使得網(wǎng)站的成本逐漸降低,

27、因此,大量由個(gè)人建設(shè)的網(wǎng)站出現(xiàn)在了網(wǎng)絡(luò)世界中,并快速發(fā)展,預(yù)計(jì)2009年中國個(gè)人網(wǎng)站所占總網(wǎng)站數(shù)的比例是25%,個(gè)人網(wǎng)站的繁榮為網(wǎng)絡(luò)世界的發(fā)展提供了動力[6]。而虛擬社區(qū)這一典型的WEB2.0概念技術(shù)在與個(gè)人網(wǎng)站結(jié)合下,使得網(wǎng)站的內(nèi)容和互動性得到了更好的表現(xiàn)。</p><p><b>  第2章 可行性分析</b></p><p>  2.1 技術(shù)可行性分析</

28、p><p>  本課題網(wǎng)站制作的目標(biāo)是建立一個(gè)具有虛擬社區(qū)功能的個(gè)人網(wǎng)站,這是一個(gè)具有典型的WEB 2.0特征的網(wǎng)站。網(wǎng)站的規(guī)模不會很大,網(wǎng)站內(nèi)的內(nèi)容主要通過用戶之間的互動來跟新,而站長則主要負(fù)責(zé)管理。為了實(shí)現(xiàn)這樣的設(shè)計(jì)目標(biāo),網(wǎng)站必須使用支持動態(tài)頁面的開發(fā)語言,而目前流行的動態(tài)網(wǎng)頁語言主要有三種sun的java jsp,微軟的asp.net和zend的php。在分析了網(wǎng)站的規(guī)模需求和開發(fā)效率以及三種語言各自的特點(diǎn)后覺

29、得采用PHP來完成本次的設(shè)計(jì),PHP是目前最流行的網(wǎng)站腳本語言之一,有著簡單,輕便,開源免費(fèi)且功能強(qiáng)大的優(yōu)勢。相比于性能較低、跨平臺性差的ASP和繁瑣的JSP,PHP有著輕便、簡單、跨平臺、安全等優(yōu)點(diǎn),十分適合個(gè)人網(wǎng)站這類中小型網(wǎng)站的開發(fā)[7]。數(shù)據(jù)庫方面雖然sql server,oracle等大型商業(yè)化的數(shù)據(jù)庫工具有著優(yōu)異的性能,但對于個(gè)人網(wǎng)站這一類小型的項(xiàng)目,這類產(chǎn)品顯得過于昂貴復(fù)雜。而功能強(qiáng)大體型小巧的MySQL是一種完全開源免費(fèi)

30、的數(shù)據(jù)庫工具,并且在許多開源項(xiàng)目的實(shí)踐應(yīng)用中展現(xiàn)出了不亞于大型商業(yè)化數(shù)據(jù)庫的性能,因此MySQL完全可以滿足要求本次設(shè)計(jì)中對于數(shù)據(jù)庫應(yīng)用的需求。而web服務(wù)</p><p>  2.2 網(wǎng)站功能分析</p><p>  ●主界面(myindex.php)</p><p>  ○提供各個(gè)界面的鏈接和站點(diǎn)綜合信息。</p><p>  ●日記瀏覽

31、界面(view_diray.php)</p><p>  ○普通用戶可瀏覽站長的日記并發(fā)表評論。</p><p>  ○站長可以通過管理員帳號寫新日記或?qū)εf的日記做修改。</p><p>  ●論壇主界面(main_form.php)</p><p>  ○提供論壇資源瀏覽。</p><p>  ○供用戶發(fā)表新話題。&

32、lt;/p><p>  ○普通用戶有登錄,注冊,修改個(gè)人信息的功能。</p><p>  ○提供發(fā)送站內(nèi)短消息功能。</p><p>  ●管理員界面(admin_main_form.php)</p><p>  ○站長可以管理日記,修改日記。</p><p>  ○站長可以在此修改用戶信息,更改用戶狀態(tài),刪除用戶。<

33、;/p><p>  ○站長可以對用戶發(fā)表新話題的進(jìn)行審核,對話題狀態(tài)進(jìn)行修改,刪除話題。</p><p>  第3章 開發(fā)環(huán)境和開發(fā)方法</p><p><b>  3.1 開發(fā)環(huán)境</b></p><p>  開發(fā)環(huán)境選擇在windows環(huán)境下的PHP5.5+Apache2.2+MySQL5,瀏覽器為IE7和Firefox

34、3,開發(fā)工具使用Dreamweaver,圖片處理使用fireworks和photoshop。</p><p>  PHP與Apache,MySQL的組合雖然有著諸多優(yōu)勢,但三種出自不同作者的開源軟件要能很好的配合工作,需要很多手工配置,這往往會為編程人員造成一些不必要的麻煩,因此有PHP的愛好者將這三種開源軟件結(jié)合發(fā)布了名為PHPnow的環(huán)境套件包,只需要簡單的安裝配置后,PHPnow就會為你將PHP的開發(fā)運(yùn)行環(huán)

35、境配置完成,為WEB開發(fā)人員帶來了許多便利。</p><p>  3.1.1 關(guān)于PHPnow</p><p>  PHPnow是由PHP的愛好者制作的集成環(huán)境包(下載地址http://phpnow.org/),目前PHPnow的最新版本號為1.5.1,其中集成了Apache2.0.63/ 2.2.11,PHP5.2.8,MySQL5.0.77/ 5.1.31,Zend Optimizer

36、3.3.3以及phpMyAdmin3.1.2,包含了PHP開發(fā)運(yùn)行所需的各種軟件和工具,安裝配置簡便,是當(dāng)前開發(fā)PHP的首選套件包[8]。</p><p>  3.1.2 其他開發(fā)工具</p><p>  Dreamweaver是一種優(yōu)秀的WEB設(shè)計(jì),腳本編寫工具,支持PHP,ASP,JSP等多種腳本,還有著強(qiáng)大的javascript,css應(yīng)用功能,編程、設(shè)計(jì)界面布局合理,非常適合用來設(shè)

37、計(jì)網(wǎng)站界面、編寫網(wǎng)頁腳本程序。Fireworks是一種功能強(qiáng)大的WEB圖片編輯工具,對PNG,JPEG,GIF等WEB主流應(yīng)用圖片有著很好的支持,更有著諸多WEB圖片應(yīng)用方面的功能,很適合本次設(shè)計(jì)的各種需求。</p><p><b>  3.2 開發(fā)方法</b></p><p>  原型法(Prototyping)是20世紀(jì)80年代隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,特別是在關(guān)

38、系數(shù)據(jù)庫系統(tǒng)(Relational Data Base System,RDBS)、第四代程序生成語言(4th Generation Language,4GL)和各種系統(tǒng)開發(fā)生成環(huán)境產(chǎn)生的基礎(chǔ)上,提出的一種從設(shè)計(jì)思想、工具、手段都全新的系統(tǒng)開發(fā)方法。它揚(yáng)棄了那種一步步周密細(xì)致地調(diào)查分析,然后逐步整理出文字檔案,最后才能讓用戶看到結(jié)果的繁瑣作法。它遵循了人們認(rèn)識事物的客觀規(guī)律,將模擬的手段引入系統(tǒng)分析的初始階段,溝通了人們(用戶和開發(fā)人員)

39、的思想,易于掌握和接受,使系統(tǒng)開發(fā)的時(shí)間、費(fèi)用大大地減少,效率、技術(shù)等方面都大大地提高[9]。</p><p>  使用原型法來開發(fā)本次的設(shè)計(jì)十分適合,因?yàn)楸敬沃谱鞯膫€(gè)人網(wǎng)站規(guī)模較小,如果使用其他復(fù)雜的計(jì)算機(jī)工程方法開發(fā),會帶來許多不必要的步驟,增加了開發(fā)的周期而最后得到的效果卻與原型法所差無幾。</p><p>  但是系統(tǒng)開發(fā)中一些重要的環(huán)節(jié)仍是在設(shè)計(jì)過程中必須注意和努力完善的,如系統(tǒng)

40、未來的拓展能力,代碼的重用率,網(wǎng)站的安全程度,不同平臺的兼容性,等等。</p><p>  第4章 基于PHP的個(gè)人網(wǎng)站總體設(shè)計(jì)</p><p><b>  4.1主要頁面</b></p><p>  網(wǎng)站的頁面主要分為:主界面,個(gè)人日記(博客),管理員界面,論壇界面四部分。不同的主界面有不同的功能模塊和功能頁面組成。</p>&

41、lt;p><b>  4.1.1 主界面</b></p><p>  這是用戶登錄后瀏覽的第一個(gè)頁面,主界面的色調(diào),LOGO,各類功能選項(xiàng),布局結(jié)構(gòu)等是整個(gè)站點(diǎn)的基礎(chǔ),讓用戶對于整個(gè)站點(diǎn)的內(nèi)容,結(jié)構(gòu)以及功能有一個(gè)初步的了解。主頁面提供用戶前往其他頁面的超鏈接,登錄注冊的窗口,以及一個(gè)新聞窗口,用來羅列站長選擇的新聞資訊和站內(nèi)熱門話題等。</p><p>  4.

42、1.2 個(gè)人日記</p><p>  這是一個(gè)簡單的博客,站長可以在這里發(fā)表自己的文章或日記,而用戶登錄后可以對文章內(nèi)容發(fā)表評論。</p><p>  4.1.3 管理員界面</p><p>  這是站長獨(dú)有的功能界面,在這里站長可以對整個(gè)站點(diǎn)進(jìn)行管理。用戶的基本信息修改,用戶論壇權(quán)限修改,論壇內(nèi)容以及博客內(nèi)容的修改都可以在這里實(shí)現(xiàn)。</p><

43、p>  4.1.4 論壇界面</p><p>  論壇即是一個(gè)虛擬社區(qū),它提供來到站點(diǎn)的用戶互相交流的平臺,這是整個(gè)網(wǎng)站的核心部分,用戶在注冊后來到這里可以通過發(fā)表話題和回復(fù)話題的方式進(jìn)行交流,不同等級的用戶在這里擁有不同的權(quán)限。管理員管理用戶發(fā)表的話題以及用戶在論壇里的回復(fù)內(nèi)容。</p><p>  4.2 論壇功能設(shè)計(jì)</p><p>  論壇是本站點(diǎn)的主

44、體。用戶在注冊登錄后可以加入這個(gè)虛擬社區(qū)的交流中,但為防止惡意注冊,或使用馬甲進(jìn)行人身攻擊等行為,新用戶注冊必須獲得注冊碼,注冊碼可以由管理員或高級用戶提供,普通注冊用戶在獲得一定積分或管理員給予高級用戶權(quán)限后,可以獲得一部分管理員權(quán)限。任何非禁言狀態(tài)用戶都可以在論壇內(nèi)發(fā)表話題,經(jīng)管理員審核后其他用戶可以發(fā)表評論,若發(fā)現(xiàn)不合理言論,管理員可以屏蔽其評論情況嚴(yán)重的可以對其禁言。</p><p>  論壇還提供短消息

45、功能,這是論壇內(nèi)用戶進(jìn)行小范圍交流的平臺,用戶可以互相發(fā)送只有發(fā)送雙方才能看到的信息,可以作為一個(gè)簡易的郵箱使用,也可以作為站長發(fā)送站內(nèi)通知的工具。</p><p>  4.2.1 論壇運(yùn)行流程圖</p><p>  圖4.1 網(wǎng)站功能流程圖</p><p>  4.2.2 用戶級別設(shè)計(jì)</p><p>  站點(diǎn)內(nèi)的用戶等級分為三類,其中管理

46、員帳號擁有最高權(quán)限,高級用戶其次,擁有部分的管理員權(quán)限,普通用戶的權(quán)限最低。</p><p><b>  表4.1 用戶權(quán)限</b></p><p>  第5章 基于PHP的個(gè)人網(wǎng)站詳細(xì)設(shè)計(jì)</p><p><b>  5.1 數(shù)據(jù)庫設(shè)計(jì)</b></p><p>  整個(gè)站點(diǎn)的數(shù)據(jù)庫使用8張表存放信

47、息,admintextform存放博客文章,diaryreplyform用來存放用戶在博客的留言,userform存放用戶信息,usertextform存放用戶發(fā)表的主題,userreplyform存放用戶在論壇內(nèi)的評論,hottextform記錄用戶對主題所作的置頂操作,messageform存放站內(nèi)短消息,keyform存放注冊碼。</p><p>  5.1.1 博客文章表</p><p

48、>  admintextform表用來存放博客文章,id是文章的編號為主鍵,這個(gè)值由數(shù)據(jù)庫自動生成,title是文章的標(biāo)題,content是文章的內(nèi)容,datetime是文章完成的日期格式為年-月-日,view和reply分別是文章的被瀏覽數(shù)和回復(fù)數(shù)。</p><p>  表5.1 admintextform</p><p>  5.1.2 博客評論表</p><

49、p>  diaryreplyform用來存放用戶在博客的留言,id是留言在表內(nèi)的編號為主鍵,自動生成值,diaryid是用戶回復(fù)文章的編號,username是回復(fù)者的稱呼,content是回復(fù)內(nèi)容,datetime是回復(fù)日期,格式為年-月-日,exacttime是回復(fù)時(shí)間,格式為時(shí)-分-秒。</p><p>  表5.2 diaryreplyform</p><p><b>

50、;  5.1.3 用戶表</b></p><p>  userform存放用戶信息,id是用戶的編號為主鍵,自動生成。username是用戶稱呼,usertype是用戶類型,password是用戶的密碼,這三行的內(nèi)容在注冊時(shí)必須填寫不能為空。email是用戶的電子郵件地址,realname是用戶的真實(shí)姓名,regedate是用戶注冊日期,格式為年-月-日。locked判斷用戶是否被鎖定,0表示正常,1

51、表示用戶被鎖定。img是用戶自定義頭像初始有默認(rèn)值,writes是用戶發(fā)表的主題數(shù),reply是用戶回復(fù)的統(tǒng)計(jì),marks是用戶的積分,sign是用戶的簽名。</p><p>  表5.3 userform</p><p>  5.1.4 用戶文章表</p><p>  usertextform存放用戶發(fā)表的主題,id用戶文章的編號,自動生成為主鍵。title是文章

52、的題目,content是文章的內(nèi)容。username是用戶的稱呼。datetime和exacttime是注冊的日期和時(shí)間,格式分別為年-月-日和時(shí)-分-秒。view和reply是主題的被瀏覽數(shù)和回復(fù)數(shù)。locked判斷主題是否被鎖定,0表示正常,1表示鎖定。sticky判斷主題是否置頂,0表示未置頂,1表示已被置頂。examine判斷主題是否通過審核,0表示還未通過審核,1表示已通過審核。hot用來統(tǒng)計(jì)用戶對主題執(zhí)行的置頂操作數(shù)。edi

53、torname和editdate、edittime是修改主題的用戶稱呼和修改的是日期、時(shí)間,日期和時(shí)間的格式分別為年-月-日和時(shí)-分-秒。</p><p>  表5.4 usertextform</p><p>  5.1.5 用戶文章評論表</p><p>  userreplyform存放用戶在論壇內(nèi)的評論,id是回復(fù)在表內(nèi)的編號,自動生成為主鍵。replyid

54、為回復(fù)的主題編號。content為回復(fù)內(nèi)容,quote為引用的回復(fù)內(nèi)容。username是用戶的稱呼,datetime、exacttime是回復(fù)的日期、時(shí)間。replyno為回復(fù)該主題時(shí)的次序。shut用來判斷回復(fù)是否被屏蔽,0表示正常,1表示被屏蔽。editorname,edittime和edittime為修改回復(fù)的用戶名,修改日期和修改時(shí)間。日期和時(shí)間的格式分別為年-月-日和時(shí)-分-秒。</p><p>  

55、表5.5 userreplyform</p><p>  5.1.6 置頂文章表</p><p>  hottextform記錄用戶對主題所作的置頂操作,id是置頂記錄的編號,支持生成為主鍵。username為執(zhí)行置頂操作的用戶名。title為置頂文章的內(nèi)容。datetime和exacttime是執(zhí)行置頂操作的日期和時(shí)間,日期和時(shí)間的格式分別為年-月-日和時(shí)-分-秒。。textid是被置頂

56、的文章編號。</p><p>  表5.6 hottextform</p><p>  5.1.7 短消息表</p><p>  messageform存放站內(nèi)短消息,id是消息的編號,自動生成為主鍵。poster和receiver是消息的發(fā)送者和接收者。title、content是消息的題目、內(nèi)容。datetime、exacttime是短消息發(fā)送的日期和時(shí)間,日期

57、和時(shí)間的格式分別為年-月-日和時(shí)-分-秒。</p><p>  表5.7 messageform</p><p>  5.1.8 注冊碼表</p><p>  keyform存放注冊碼,id是注冊碼的編號,自動生成為主鍵。owner是注冊碼的所有者,user是注冊碼的使用者,注冊碼未被使用時(shí)該值默認(rèn)為空。keyworks是注冊碼的內(nèi)容。</p><

58、;p>  表5.8 keyform</p><p>  5.2 具體功能實(shí)現(xiàn)</p><p>  為了能更好的說明網(wǎng)站的具體功能和實(shí)現(xiàn)方法,下面從網(wǎng)站的注冊登陸開始,一步步的介紹站內(nèi)的功能并說明功能實(shí)現(xiàn)的方法及其代碼。</p><p>  5.2.1 用戶注冊登錄</p><p>  注冊的鏈接點(diǎn)擊有兩處,分別在主界面my_index.

59、php和論壇主頁main_form.php上,點(diǎn)擊鏈接后進(jìn)入的頁面相同為create_user.php。注冊時(shí)必填的信息為用戶名,密碼,確認(rèn)密碼,電子郵件,真實(shí)姓名和注冊碼,將其中注冊碼的獲得在后面說明。點(diǎn)擊確認(rèn)信息被傳送到add_user.php,首先判斷必要的信息是否正確輸入,之后查詢數(shù)據(jù)庫內(nèi)的用戶名,查看新用戶名是否已經(jīng)存在,如果上述檢查有一步?jīng)]有通過,則終止注冊,顯示錯(cuò)誤信息。</p><p>  在輸入

60、信息檢查完成后,判斷用戶是否提交了自定義頭像,簽名這兩項(xiàng)附加信息,根據(jù)不同輸入情況分別使用四條SQL語句將新用戶的信息加入數(shù)據(jù)庫。其中自定義頭像需要專門的圖像函數(shù)以及文件上傳函數(shù)操作,將在下一節(jié)介紹。</p><p>  用戶注冊關(guān)鍵代碼如下:</p><p>  $username=$_POST['username']; //用戶名</p><p>

61、;  $password=$_POST['password']; //密碼</p><p>  $repassword=$_POST['repassword']; //重復(fù)密碼</p><p>  $realname=$_POST['realname']; //真實(shí)姓名</p><p>  $email=$_POST[

62、'email']; //電子郵件</p><p>  $signs=$_POST['signs']; //簽名</p><p>  $keywords=$_POST['keywords']; //注冊碼</p><p><b>  …………….</b></p><p>&l

63、t;b>  輸入信息判斷</b></p><p><b>  …………….</b></p><p>  四種不同情況的SQL語句</p><p>  if(!$signs&&$img) //有自定義頭像無簽名</p><p><b>  {</b></p>

64、;<p>  $sql="insert </p><p><b>  into</b></p><p>  userform (username,password,email,realname,regdate,img)values('$username','$password','$email',

65、'$realname',NOW(),'$img')";</p><p><b>  }</b></p><p>  else if(!$img&&$signs) //有簽名沒有自定義頭像</p><p><b>  {</b></p><p>

66、;  $sql="insert </p><p><b>  into </b></p><p>  userform (username,password,email,realname,regdate,signs)values('$username','$password','$email','$re

67、alname',NOW(),'$signs')"; </p><p><b>  }</b></p><p>  else if($img&&$signs) //有簽名且有頭像</p><p><b>  {</b></p><p>  $sql=&

68、quot;insert </p><p><b>  into </b></p><p>  userform (username,password,email,realname,regdate,img,signs)values('$username','$password','$email','$realnam

69、e',NOW(),'$img','$signs')";</p><p><b>  }</b></p><p>  Else //既沒有簽名也沒有頭像</p><p><b>  {</b></p><p>  $sql="insert

70、</p><p><b>  into </b></p><p>  userform (username,password,email,realname,regdate)values('$username','$password','$email','$realname',NOW())";&l

71、t;/p><p><b>  }</b></p><p>  $result=mysql_query($sql); //執(zhí)行SQL語句</p><p>  注冊后在主頁面的登錄框內(nèi)輸入用戶名密碼或點(diǎn)擊論壇主頁上的鏈接便可以登錄網(wǎng)站了。其中主頁面在每次加載時(shí)檢查是否有登錄數(shù)據(jù)傳送,如果有則查詢數(shù)據(jù)庫判斷用戶的類型,并將用戶名存入不同的全局變量中,&l

72、t;/p><p>  管理員:$_SESSION['adminname'];</p><p>  高級用戶:$_SESSION['adminusername'];</p><p>  普通用戶:$_SESSION['username'];</p><p>  普通用戶還要將用戶是否被禁言的狀態(tài)保存在

73、全局變量$_SESSION['state']中[10]。之后刷新主頁面。此時(shí)登錄框內(nèi)顯示歡迎用戶登錄的信息。若未發(fā)現(xiàn)登錄數(shù)據(jù),則在登錄框內(nèi)顯示輸入欄由用戶輸入用戶名密碼后執(zhí)行上述步驟登錄。而論壇上的登錄鏈接打開login_user.php頁面,用戶在輸入用戶名密碼后,代碼執(zhí)行和主頁面相同的判斷,全局變量處理步驟后將頁面轉(zhuǎn)回到論壇主界面。</p><p>  圖 5.1 登陸界面</p>

74、<p>  關(guān)鍵判斷部分的代碼:</p><p>  if($_POST['submit'])</p><p><b>  {</b></p><p><b>  ………………</b></p><p>  //SQL查詢userform表并將結(jié)果復(fù)制到變量$rows[]

75、</p><p><b>  ……………….</b></p><p>  if($rows[usertype]=='admin') //管理員</p><p><b>  {</b></p><p>  $_SESSION['adminname']=$rows[use

76、rname]; //管理員SESSION變量</p><p><b>  }</b></p><p>  if($rows[usertype]=='adminuser') //高級用戶</p><p><b>  {</b></p><p>  $_SESSION['admi

77、nusername']=$rows[username]; //高級用戶SESSION變量</p><p><b>  }</b></p><p>  $_SESSION['username']=$rows[username]; //普通用戶</p><p>  $_SESSION['state']=$ro

78、ws[locked]; //用戶狀態(tài)變量</p><p><b>  ………………..</b></p><p>  用戶注冊時(shí)所需的注冊碼可以由管理員、高級用戶和積分達(dá)到一定程度的用戶申請獲得。點(diǎn)擊edit_user.php頁面上的申請注冊碼鏈接進(jìn)入ask_key.php頁面,在確認(rèn)用戶權(quán)限無誤后檢查用戶已有未使用的注冊碼數(shù)量,目前用戶可以擁有的未使用注冊碼上限暫定為

79、10個(gè)。全部檢查完成之后使用隨機(jī)字符串substr()函數(shù)和隨機(jī)數(shù)rank()函數(shù)生成注冊碼[11],以擁有一定積分的用戶為例的代碼:</p><p>  $username=$_SESSION['username']; //獲得用戶名</p><p>  $sql="select * from userform where username='$user

80、name'"; //查詢用戶積分</p><p>  $result=mysql_query($sql); //執(zhí)行查詢</p><p>  $rows=mysql_fetch_assoc($result); //獲得查詢結(jié)果</p><p>  if($rows[marks]>=5)//普通用戶需要積分達(dá)到5分以上</p>&

81、lt;p><b>  {</b></p><p>  $sql="select count(*) from keyform where owner='$username' and user is null";</p><p>  //用戶可以擁有的未使用注冊碼數(shù)量最多為10個(gè)</p><p>  $re

82、sult=mysql_query($sql);</p><p>  $rows=mysql_fetch_row($result);</p><p>  if($rows[0]>=10) //超過10個(gè)報(bào)錯(cuò)</p><p><b>  {</b></p><p>  Exitmessage("&nb

83、sp;&nbsp;&nbsp;&nbsp;你只能擁有10個(gè)可用的注冊碼");</p><p><b>  }</b></p><p>  while($true==0){ //true變量用來識別新申請的注冊碼是否存在,如果新注冊碼也存在則true為1,使用while循環(huán)重新生成新的注冊碼</p><p>  

84、$keywords=substr("ABCDEFG",rand(0,6),"1").substr("ABCDEFG",rand(0,6),"1").rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);</p><p>  //使

85、用隨機(jī)字符函數(shù)substr()和隨機(jī)數(shù)函數(shù)rand()生成注冊碼</p><p>  $sql="select * from keyform where keywords='$keywords'"; //查看新生成的注冊碼是否已存在</p><p>  $result=mysql_query($sql);</p><p>  $r

86、ows=mysql_fetch_assoc($result);</p><p>  if(!$rows) //新的注冊碼已存在true=1</p><p><b>  {</b></p><p><b>  $true=1;</b></p><p><b>  }</b><

87、;/p><p><b>  }</b></p><p>  $sql="insert into keyform(owner,keywords)values('$username','$keywords')";</p><p>  //將新注冊碼添加到keyform表中</p><

88、;p>  $result=mysql_query($sql);</p><p>  echo "你申請的注冊碼為:".$keywords."<br>";</p><p>  之后用戶可以點(diǎn)擊edit_user.php頁面上的查看注冊碼查看自己擁有注冊碼的情況。</p><p>  圖5.2 查看注冊碼<

89、/p><p>  5.2.2 用戶個(gè)人信息管理</p><p>  用戶在注冊登錄后便可以點(diǎn)擊主界面和論壇主頁上的鏈接進(jìn)入個(gè)人管理中心edit_user.php查看管理自己的信息。修改后數(shù)據(jù)將被送到edit_user_data.php處理。其中大部分的代碼和工作過程基本和注冊時(shí)相同,只是將原來注冊時(shí)的SQL語句插入insert改為修改update。接下來介紹網(wǎng)站內(nèi)自定義圖片的操作及其代碼。&l

90、t;/p><p>  自定義圖片設(shè)計(jì)到PHP文件上傳函數(shù)和PHP圖片操作函數(shù)。首先為了能實(shí)現(xiàn)文件的上傳,需要在HTML表單的代碼做修改如下:</p><p>  <form method="post" action="edit_user_data.php" enctype="multipart/form-data">必須設(shè)

91、置enctype屬性為multipart/form-data,意思為設(shè)置表單的MIME編碼,這樣才能完整的傳送信息[12]。之后使用PHP提供的$_FILE[]處理上傳的圖片文件,在上傳文件時(shí)還要注意文件的類型,本次設(shè)計(jì)的網(wǎng)站上傳圖片支持jpeg,gif,png,而IE瀏覽器和firefox瀏覽器對圖片類型的表示方法有些不一樣,如IE表示jpeg圖片為pjpeg而firefox則是jpeg,這些細(xì)節(jié)在編程是容易導(dǎo)致錯(cuò)誤,必須仔細(xì)處理[1

92、3]。上傳后圖片的大小必須有一定的限制,若超出了網(wǎng)站規(guī)定則需要使用PHP的圖形函數(shù)對其做修改。以下這段代碼是以IE7環(huán)境下jpeg圖片為例的一段上傳代碼和修改圖片大小的代碼。</p><p><b>  圖片裁剪代碼:</b></p><p>  function makethumb($imgsrc,$imgdst,$dstW,$dstH)//原圖片數(shù)據(jù),新圖片名,新

93、圖片寬,新圖片高</p><p><b>  {</b></p><p>  $srcW=imagesx($imgsrc);//原圖片寬</p><p>  $srcH=imagesy($imgsrc);//原圖片高</p><p>  $newimg=imagecreatetruecolor($dstW,$dstH);

94、//生成一張寬,高為$dstW,$dstH的新圖片</p><p>  imagecopyresized($newimg,$imgsrc,0,0,0,0,$dstW,$dstH,$srcW,$srcH); //將原圖片$imgsrc拷貝到$newimg,并調(diào)整大小</p><p>  imagejpeg($newimg,"D:/PHPnow/htdocs/uploads/&quo

95、t;.$imgdst);//將生產(chǎn)的新圖片$newimg存放到指定目錄下,此處路徑參數(shù)根據(jù)PHP不同安裝路徑要做相應(yīng)的修改</p><p><b>  }</b></p><p><b>  圖片上傳代碼:</b></p><p>  if($_FILES['img']['name'])&l

96、t;/p><p><b>  {</b></p><p>  if($_FILES['img']['size']>0&&$_FILES['img']['size']<1048576)</p><p><b>  {</b></p&

97、gt;<p>  if($_FILES['img']['type']=='image/pjpeg')//IE瀏覽器</p><p><b>  {</b></p><p>  $uniqid=uniqid();</p><p>  $uploads="D:/PHPnow/

98、htdocs/uploads/";//圖片上傳后存放的路徑,此處參數(shù)根據(jù)PHP不同安裝路徑要做相應(yīng)的修改</p><p>  $imgdir=$uploads.$username.$uniqid."."."jpg";//圖片存放完整路徑和圖片存放名稱</p><p>  $img="uploads/".$username

99、.$uniqid."."."jpg";//網(wǎng)站使用圖片是的路徑</p><p>  $imgname=$username.$uniqid."."."jpg";//圖片名</p><p>  $sql="select * from userform where username='$userna

100、me'";</p><p>  $result=mysql_query($sql);</p><p>  $rows=mysql_fetch_assoc($result);</p><p>  if($rows['img']!='none.png')//該用戶已上傳過圖片</p><p>&l

101、t;b>  {</b></p><p>  unlink("D:/PHPnow/htdocs"."/".$rows['img']); //刪除原文件</p><p><b>  }</b></p><p>  move_uploaded_file($_FILES[&#

102、39;img']['tmp_name'],$imgdir);//存放新文件</p><p>  $size=GetImageSize($img);//分析文件大小,產(chǎn)生一個(gè)數(shù)組,第一個(gè)是長,第二個(gè)是寬,第三個(gè)是類型。</p><p>  if($size[0]>150)</p><p><b>  {</b><

103、;/p><p>  $imgsrc=imagecreatefromjpeg($img);//將圖片轉(zhuǎn)為數(shù)據(jù)流</p><p>  makethumb($imgsrc,$imgname,150,150);//調(diào)用makethumb函數(shù)對超過限制長寬的圖片做修改</p><p><b>  }</b></p><p>  $sq

104、l="update userform set img='$img' where username='$username'";</p><p>  $result=mysql_query($sql);</p><p><b>  }</b></p><p><b>  ………………….

105、</b></p><p>  圖5.3 個(gè)人控制面板</p><p>  5.2.3 管理員登錄</p><p>  本次設(shè)計(jì)的網(wǎng)站管理員帳號默認(rèn)只有一個(gè),管理員帳號無法申請注冊,只有通過直接數(shù)據(jù)庫操作才可以添加。管理員登錄可以在主頁面登錄框輸入管理員帳號密碼或點(diǎn)擊主頁上的管理員按鈕鏈接到專門的登錄頁面。在登錄框內(nèi)輸入登錄信息這種方式的后臺代碼和用戶登錄

106、時(shí)完全一樣,區(qū)別在于SESSION變量的賦值不同上,而點(diǎn)擊管理員按鈕后頁面將被轉(zhuǎn)到login_admin.php,在這里輸入正確的登錄信息后將進(jìn)入管理員功能界面admin_main_form.php。</p><p>  5.2.4 管理員功能</p><p>  進(jìn)入管理與功能界面后,可以看到四個(gè)管理員操作的選項(xiàng):寫新文章,察看文章,論壇用戶管理,論壇管理。</p><

107、;p>  寫新文章時(shí)站長在write_diary.php頁面輸入文章標(biāo)題和正文內(nèi)容后信息將被發(fā)送到add_diary.php頁面。在信息傳送到add_diary.php之后首先對標(biāo)題和內(nèi)容進(jìn)行檢查,若發(fā)現(xiàn)有一項(xiàng)為空則停止報(bào)錯(cuò),檢查完后便將文章添加到數(shù)據(jù)庫admintextform中。</p><p>  論壇用戶管理界面提供管理員查看用戶信息和刪除,禁言,解禁,加分,扣分,提升等級,降低等級七項(xiàng)操作。刪除用

108、戶時(shí)首先轉(zhuǎn)入ask_delete_user.php頁面,詢問是否確認(rèn)刪除,確認(rèn)后轉(zhuǎn)入delete_user.php頁面,在刪除用戶信息的同時(shí)刪除該用戶發(fā)表的主題、回復(fù)以及上傳的自定義頭像。代碼:</p><p>  $id=$_GET['id']; //得到用戶的編號</p><p>  $sql="select * from userform where id=

109、'$id'"; //查詢用戶名</p><p>  $result=mysql_query($sql); //執(zhí)行查詢</p><p>  $rows=mysql_fetch_assoc($result); //得到查詢結(jié)果</p><p>  $username=$rows[username]; </p><p>

110、  $sql="delete from userform where id='$id'"; //刪除用戶信息</p><p>  $result=mysql_query($sql);</p><p>  $sql="delete from usertextform where username='$username'"

111、; //刪除該用戶的主題</p><p>  $result=mysql_query($sql);</p><p>  $sql="delete from userreplyform where username='$username'"; //刪除該用戶的回復(fù)</p><p>  $result=mysql_query($sql

112、);</p><p>  if($rows['img']!='none.png') //刪除該用戶上傳的頭像圖片</p><p><b>  {</b></p><p>  unlink("D:/PHPnow/htdocs"."/".$rows['img']

113、); </p><p><b>  }</b></p><p>  圖5.4 管理員論壇用戶管理界面</p><p>  禁言、解禁用戶的代碼基本一致,頁面分別為lock_user.php和free_user.php,使用SQL UPDATE語句對userform中的locked字段進(jìn)行操作來修改用戶的狀態(tài)。加分、扣分的代碼和禁言、解禁類似,p

114、lus.php和subtract.php兩個(gè)頁面分別執(zhí)行加分和扣分,數(shù)據(jù)庫同樣使用SQL UPDATE語句,對userform中的marks進(jìn)行操作。提升、降低等級的代碼同樣和前兩類操作十分相似,區(qū)別在于使用SQL UPDATE語句對userform的usertype值進(jìn)行修改。下面是鎖定用戶的關(guān)鍵代碼。</p><p>  ………………....</p><p>  $sql="

115、update userform set locked='1' where id='$id'"; //修改用戶狀態(tài)的SQL代碼</p><p>  $result=mysql_query($sql); //執(zhí)行SQL語句</p><p>  $sql="select * from userform where id='$id'

116、;"; </p><p>  $result=mysql_query($sql);</p><p>  $rows=mysql_fetch_assoc($result);</p><p>  header("Location:select_user.php?name=$rows[username]");</p><p

117、>  ………………....</p><p>  論壇管理用來管理論壇內(nèi)的主題,管理員可以審核新發(fā)表的主題,以及對主題進(jìn)行置頂,鎖定,刪除,解除置頂,解除刪除的操作,六項(xiàng)操作頁面分別為examin_text.php,sticky_text.php,locked_text.php,delete_text.php,unsticky_text.php,unlocked_tsxt.php。這六項(xiàng)操作后臺代碼同樣是以S

118、QL UPDATE為核心,因?yàn)榇a工作方式與論壇用戶功能中的操作類似,因此在這里不作詳細(xì)說明。</p><p>  圖5.5 管理員論壇管理界面</p><p><b>  5.2.5 博客</b></p><p>  站長在點(diǎn)擊管理員界面中的寫新文章鏈接后就可以進(jìn)入發(fā)表博客的界面write_diary.php,在這里輸入標(biāo)題和正文后信息被發(fā)送

119、到add_diary.php頁面,在這里首先檢查標(biāo)題或內(nèi)容是否為空,如有問題則報(bào)錯(cuò)進(jìn)行提示;檢查無誤之后使用SQL ADD語句將文章信息插入到admintextform表中。</p><p>  點(diǎn)擊主頁面上的文章瀏覽按鈕后,就可以進(jìn)入查看博客的頁面list_diary.php,這個(gè)頁面列出了站長發(fā)表的文章的鏈接并提供以標(biāo)題為關(guān)鍵字的搜索功能,搜索功能由select_diary.php,在信息被傳送到select

120、_diary.php頁面后根據(jù)關(guān)鍵字查詢admintextform表,并將查詢內(nèi)容顯示在select_diary.php頁面上。</p><p>  因?yàn)槲恼碌臄?shù)量可能較多,如果在一個(gè)頁面全部列出可能會影響外觀,因此每個(gè)頁面的鏈接數(shù)要做一定限制,如10到15個(gè),之后使用循環(huán)語句將admintextform中的文章信息動態(tài)的顯示在頁面上。</p><p>  圖5.6 博客文章列表</

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論