基于php mysql校園論壇設(shè)計(jì)
《基于php mysql校園論壇設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于php mysql校園論壇設(shè)計(jì)(25頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、目 錄摘 要 .11. 緒論 .21.1 概論 .21.2 論壇定義和系統(tǒng)基本功能 .22系統(tǒng)開發(fā)的環(huán)境和工具 .32.1 系統(tǒng)開發(fā)的環(huán)境 .32.2 MYSQL數(shù)據(jù)庫(kù)簡(jiǎn)介 .32.3 APACHE服務(wù)器簡(jiǎn)介 .32.4 PHP語(yǔ)言簡(jiǎn)介 .43需求分析及詳細(xì)設(shè)計(jì) .53.1 論壇的需求規(guī)劃 .53.2 論壇總工作流程圖 .63.3 數(shù)據(jù)庫(kù)設(shè)計(jì)部分 .83.4 程序設(shè)計(jì)部分 .113.5 關(guān)鍵技術(shù) .163.6 網(wǎng)站文件結(jié)構(gòu) .193.7 論壇設(shè)計(jì)存在問(wèn)題 .214總結(jié) .22參考文獻(xiàn) .23致 謝 .241摘 要校園論壇是校園網(wǎng)中不可缺少的部分之一。雖然基于 ASP+ACCESS的論壇使用簡(jiǎn)潔
2、,安裝方便,但 MySQL數(shù)據(jù)庫(kù)以它短小、方便、速度快、免費(fèi)等優(yōu)點(diǎn)成為很多站點(diǎn)目前首選數(shù)據(jù)庫(kù),加上 PHP語(yǔ)言也具有可跨平臺(tái)、移植性高,安全可靠,快速高效的優(yōu)點(diǎn),因此目前很多流行論壇程序都采用了 Apache+Php+Mysql相結(jié)合來(lái)開發(fā)論壇,所以我們也使用動(dòng)態(tài)跨平臺(tái)語(yǔ)言 PHP和現(xiàn)在非常流行的 Web服務(wù)器 Apache,通過(guò)與適合開發(fā)中型網(wǎng)站的 MySQL數(shù)據(jù)庫(kù)進(jìn)行無(wú)縫結(jié)合,做一個(gè)計(jì)算機(jī)系的學(xué)校論壇,并為論壇用戶提供了周到和個(gè)性化的服務(wù)。關(guān)鍵詞:PHP,Apache,MySQL,BBS,論壇,計(jì)算機(jī)系,技術(shù),交流,網(wǎng)站,設(shè)計(jì),規(guī)劃。ABSTRACT: BBS campus network
3、 is one of the indispensable parts. Although the BBS based on ASP and ACCESS use concise, convenient installation, but in its short MySQL database, convenient, quick and free as many advantages such as database, and at first site with cross-platform PHP language and portability, high, safe and relia
4、ble, efficient, so many of the advantages of using BBS popular program I can with Apache+ PHP+MySQL combination to develop BBS, so we also use dynamic cross-platform language PHP and now very popular Web server for development, and I can with Apache medium-sized websites on the MySQL databases, do a
5、 seamless BBS, computer department of the school and offers considerate BBS for users with personalized service.KEYWORDS:PHP, Apache, MySQL, BS,computer, technology, communication, websit, design, plannin.21. 緒論1.1 概論BBS 起源于 20 世紀(jì) 80 年代初。最初,論壇只是用于發(fā)布公告信息,討論問(wèn)題的在線交流平臺(tái)。后來(lái),隨著網(wǎng)絡(luò)的普及,論壇的功能越來(lái)越豐富,受到廣大網(wǎng)民的歡迎。因此
6、,校園網(wǎng)站對(duì)論壇重視起來(lái),紛紛在自己的網(wǎng)站上開辟論壇。作為與師生交流的園地。同時(shí)在線技術(shù)支持和在線服務(wù)也在論壇中開展起來(lái)。當(dāng)代的大學(xué)生幾乎都會(huì)接觸甚至經(jīng)常登陸自己感興趣的論壇,在上面可以分享,也可以交流意見,但是,能把他們集中起來(lái)的論壇并不是很多。目前,很多人選擇這樣的組合:Apache+Php+MySQL 來(lái)建設(shè)自己的論壇,因?yàn)樗鼈兌伎梢悦赓M(fèi)從網(wǎng)上下載,而且很容易在 Linux 平臺(tái)下應(yīng)用,網(wǎng)站安全性、穩(wěn)定性和執(zhí)行效率都非常優(yōu)秀。1.2 論壇定義和系統(tǒng)基本功能論壇也稱為 BBS,是 bulletin Board System 的簡(jiǎn)稱,意即電子公告板,是一種在Internet 上常見的用于信息
7、服務(wù)的 Web 系統(tǒng),它主要給瀏覽者提供相互溝通的平臺(tái),以此來(lái)吸引用戶,服務(wù)用戶。開發(fā)本系統(tǒng)意在吸納大部分游離在眾多論壇的計(jì)算機(jī)系大學(xué)生和喜歡計(jì)算機(jī)的學(xué)生,能一起共享計(jì)算機(jī)資源,能一起談?wù)剬W(xué)習(xí)計(jì)算機(jī)過(guò)程的經(jīng)驗(yàn)。32系統(tǒng)開發(fā)的環(huán)境和工具2.1 系統(tǒng)開發(fā)的環(huán)境本論壇在 Linux 平臺(tái)下應(yīng)用,采用 Apache+Php+MySQL 建設(shè)。2.2 MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介MySQL(發(fā)音為“my ess cue e”,不是“my sequel”)是一種開放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS) ,MySQL 數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言結(jié)構(gòu)化查詢語(yǔ)言(SQL)進(jìn)行數(shù)據(jù)庫(kù)管理。由于 MySQL
8、 是開放源代碼的,因此任何人都可以在 General Public License 的許可下下載并根據(jù)個(gè)性化的需要對(duì)其進(jìn)行修改。MySQL 因?yàn)槠渌俣?、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL 是管理內(nèi)容最好的選擇。MySQL 關(guān)系型數(shù)據(jù)庫(kù)于 1998 年 1 月發(fā)行第一個(gè)版本。它使用系統(tǒng)核心提供的多線程機(jī)制提供完全的多線程運(yùn)行模式,提供了面向C、C+、Eiffel、Java、Perl、PHP、Python 以及 Tcl 等編程語(yǔ)言的編程接口(APIs ) ,支持多種字段類型并且提供了完整的操作符支持查詢中的 SELECT 和 WHERE 操作。MySQL
9、 開發(fā)組計(jì)劃于 2001 年中期公布 MySQL4.0 版本。在這個(gè)版本中將有以下新的特性被提供:新的表定義文件格式、高性能的數(shù)據(jù)復(fù)制功能、更加強(qiáng)大的全文搜索功能。在此之后,MySQL 開發(fā)著希望提供安全的數(shù)據(jù)復(fù)制機(jī)制、在 BeOS 操作系統(tǒng)上的 MySQL 實(shí)現(xiàn)以及對(duì)延時(shí)關(guān)鍵字的定期刷新選項(xiàng)。隨著時(shí)間的推進(jìn),MySQL 將對(duì) ANSI 92/ANSI 99 標(biāo)準(zhǔn)完全兼容。2.3 Apache服務(wù)器簡(jiǎn)介apache是世界排名第一的 web服務(wù)器, 根據(jù) netcraft所作的調(diào)查,世界上百分4之五十以上的 web服務(wù)器在使用 apache. 1995年 4月, 最早的 apache(0.6.2
10、版)由 apache group公布發(fā)行. Apache group 是一個(gè)完全通過(guò) internet進(jìn)行運(yùn)作的非盈利機(jī)構(gòu), 由它來(lái)決定 apache web服務(wù)器的標(biāo)準(zhǔn)發(fā)行版中應(yīng)該包含哪些內(nèi)容. 準(zhǔn)許任何人修改隱錯(cuò), 提供新的特征和將它移植到新的平臺(tái)上, 以及其它的工作. 當(dāng)新的代碼被提交給 apache group時(shí), 該團(tuán)體審核它的具體內(nèi)容, 進(jìn)行測(cè)試, 如果認(rèn)為滿意, 該代碼就會(huì)被集成到 apache的主要發(fā)行版中。2.4 PHP語(yǔ)言簡(jiǎn)介PHP 最初是 1994年 Rasmus Lerdorf創(chuàng)建的,剛剛開始只是一個(gè)簡(jiǎn)單的用 Perl語(yǔ)言編寫的程序,用來(lái)統(tǒng)計(jì)他自己網(wǎng)站的訪問(wèn)者。后來(lái)又用
11、 C語(yǔ)言重新編寫,包括可以訪問(wèn)數(shù)據(jù)庫(kù)。在 1995年以 Personal Home Page Tools (PHP Tools) 開始對(duì)外發(fā)表第一個(gè)版本,Lerdorf 寫了一些介紹此程序的文檔,并且發(fā)布了 PHP1.0。在這早期的版本中,提供了訪客留言本、訪客計(jì)數(shù)器等簡(jiǎn)單的功能。以后越來(lái)越多的網(wǎng)站使用了 PHP,并且強(qiáng)烈要求增加一些特性,比如循環(huán)語(yǔ)句和數(shù)組變量等等,在新的成員加入開發(fā)行列之后,在 1995年中,PHP2.0 發(fā)布了。第二版定名為PHP/FI(Form Interpreter)。PHP/FI 加入了對(duì) MYSQL的支持,從此建立了 PHP在動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)上的地位。到了 1996年
12、底,有 15000個(gè)網(wǎng)站使用 PHP/FI;時(shí)間到了1997年中,使用 PHP/FI的網(wǎng)站數(shù)字超過(guò)五萬(wàn)個(gè)。而在 1997年中,開始了第三版的開發(fā)計(jì)劃,開發(fā)小組加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名為PHP3。2000 年,PHP4.0 又問(wèn)世了,其中增加了許多新的特性。 PHP程序駐留在內(nèi)存中,其他用戶再一次訪問(wèn)這個(gè)程序時(shí)就不需要重新編譯程序了,只要直接執(zhí)行內(nèi)存中的代碼就可以了,這也是 PHP高效率的體現(xiàn)之一。PHP 具有非常強(qiáng)大的功能,所有的 CGI或者 JavaScript的功能 PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。PHP(Pe
13、rsonai Home Page)是一種易于學(xué)習(xí)和使用的服務(wù)器端腳本語(yǔ)言.只需要很少的編程知識(shí)就能使用 PHP建立一個(gè)真正交互的 web站點(diǎn)。53需求分析及詳細(xì)設(shè)計(jì)3.1 論壇的需求規(guī)劃用戶使用論壇,有一定的流程:用戶注冊(cè)登錄進(jìn)入論壇,就某個(gè)話題(主題貼)展開討論,通過(guò)發(fā)貼功能發(fā)布新的話題,通過(guò)回貼的功能回復(fù)已有的話題,通過(guò)搜索功能查找已的話題;管理通過(guò)管理功能創(chuàng)建、編輯、刪除論壇的板塊,管理注冊(cè)的用戶,管理貼子。設(shè)置論壇的基本參數(shù)。這樣的流程就決定了論壇的需求。下面是系統(tǒng)的功能需求和分析:(1)用戶類有注冊(cè)、登錄和管理 3個(gè)方法,管理方法又分為修改、刪除和設(shè)置權(quán)限3個(gè)子方法,如圖 3.1所示
14、:用戶管理員修改個(gè)人信息注冊(cè)登錄 設(shè)置權(quán)限添加刪除管理用戶圖 3.1管理員與用戶關(guān)系(2)帖子類有瀏覽、發(fā)帖、回帖、搜索和管理 5個(gè)方法,管理方法又可以分為編輯、刪除、轉(zhuǎn)移指定精華 5個(gè)方法.如圖 3.2所示:用戶管理員瀏覽帖子搜索回帖 編輯指定精華轉(zhuǎn)移刪除發(fā)帖管理帖子圖 3.2管理員、用戶以及帖子之間的關(guān)系(3)用戶功能:1) 用戶注冊(cè):用戶可以注冊(cè)為該系統(tǒng)成員(需超級(jí)管理員審批后方可發(fā)主題貼),注冊(cè)信息要求有登陸的用戶名、密碼、電子郵件等,在發(fā)表主題貼和跟貼時(shí),記錄其登陸信息。2) 用戶登陸:對(duì)于注冊(cè)用戶(已獲審批) ,可以憑其注冊(cè)用戶名和密碼進(jìn)入系6統(tǒng)。3) 修改個(gè)人信息:用戶進(jìn)入自己的
15、板塊后可以修改個(gè)人信息。4) 帖子瀏覽:注冊(cè)用戶可以任意瀏覽權(quán)限內(nèi)的帖子,未注冊(cè)用戶只能瀏覽,不能回復(fù)。5) 帖子檢索:用戶可以提供關(guān)鍵字檢索可見主題帖,注冊(cè)用戶可以查看自己發(fā)表的帖子; 帖子回復(fù):注冊(cè)用戶可以回復(fù)帖子。6) 發(fā)表主題:用戶發(fā)表一個(gè)討論的主題,包括標(biāo)題和正文等。7) 帖子編輯:管理員可以對(duì)所有帖子進(jìn)行轉(zhuǎn)移,刪除,加精等操作,用戶也可以對(duì)自己的帖子進(jìn)行修改或者刪除。(4)管理員功能:1) 用戶的審批:注冊(cè)用戶成功后,帳號(hào)不能發(fā)主題貼,須管理員審批;審批之后用戶可以進(jìn)行相關(guān)的操作。2) 論壇可以分版塊(添加、刪除):每一版塊可以有若干個(gè)版主,版主負(fù)責(zé)管理本版塊內(nèi)的帖子(刪除) 。3
16、) 刪除主題:超級(jí)管理員可以刪除任何人的主題貼;版主只能刪除本版內(nèi)任何人發(fā)表的主題貼。4) 回復(fù)主題:回復(fù)已經(jīng)發(fā)表的主題(記錄回復(fù)人信息:注冊(cè)用戶的用戶名、發(fā)表時(shí)間) 。(5)性能需求:1) 會(huì)員管理員權(quán)限區(qū)分;2) 發(fā)帖延時(shí)保持無(wú)滯后;3) 任何地方無(wú)編譯錯(cuò)誤;4) 頁(yè)面美觀大方,操作方便直觀,有安全保障機(jī)制。3.2 論壇總工作流程圖(1)注冊(cè)登錄搜索管理板塊瀏覽板塊管理用戶發(fā)帖瀏覽帖子回帖管理帖子管理員用戶瀏覽者圖 3.3 論壇工作流程圖7從流程 3.3 圖上可以看到論壇完成的走向,每一個(gè)流程的節(jié)點(diǎn)處都有許多功能,見下表(論壇功能列表)3.4 所示:表 3.4 論壇功能論壇板塊列表 瀏覽帖
17、子 發(fā)帖回帖 搜索帖子編輯帖子 刪除帖子 精華帖 置頂轉(zhuǎn)移帖子 用戶注冊(cè) 用戶登錄 控制用戶權(quán)限修改注冊(cè)信息 設(shè)置論壇參數(shù) 管理板塊 管理用戶(2)功能界面框圖:(如圖 3.5 所示) BBS 論壇系統(tǒng)系統(tǒng)主要功能模塊會(huì)員注冊(cè) 會(huì)員管理會(huì)員登錄 帖子管理論壇板塊管理帖子發(fā)表 帖子回復(fù) 帖子瀏覽 帖子檢索圖 3.5 功能界面(3)論壇功能和用戶權(quán)限對(duì)應(yīng)表:論壇一般存在兩種用戶,分別為注冊(cè)用戶和管理員。用戶的權(quán)限是向下覆蓋的,即上級(jí)權(quán)限包含下級(jí)權(quán)限,在這里的論壇中,管理員的權(quán)限是上級(jí)權(quán)限。接下來(lái),需要?dú)w好類的對(duì)象及其方法分配給不同的論壇用戶。具體功能的分配結(jié)果見表 3.6所示:表 3.6用戶權(quán)限對(duì)
18、應(yīng)對(duì)象實(shí)體 功能方法 用戶類型論壇 設(shè)置參數(shù) 管理員瀏覽列表 瀏覽者創(chuàng)建板塊 管理員修改板塊 管理員板塊刪除板塊 管理員瀏覽列表 瀏覽者查看列表 瀏覽者發(fā)帖 注冊(cè)用戶帖子回帖 注冊(cè)用戶8搜索 瀏覽者編輯(自己所有) 注冊(cè)用戶編輯(全部) 管理員刪除 管理員指定精華 管理員轉(zhuǎn)移 管理員注冊(cè) 瀏覽者登陸 注冊(cè)用戶管理員登陸 管理員添加 管理員刪除 管理員用戶設(shè)定權(quán)限 管理員3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)部分(1)數(shù)據(jù)庫(kù): xxu_jsj命令:CREATE DATABASES xxu_js;(2)表的結(jié)構(gòu) bbs_admin命令:CREATE TABLE IF NOT EXISTS bbs_admin (nam
19、e varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT 管理員名,password varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT 管理員密碼,PRIMARY KEY (name) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=管理員;-(3)表的結(jié)構(gòu) bbs_notice命令:CREATE TABLE IF NOT EXISTS bbs_notice (ID int(8) u
20、nsigned NOT NULL auto_increment,title varchar(32) collate utf8_unicode_ci NOT NULL COMMENT 公告標(biāo)題,content text collate utf8_unicode_ci NOT NULL COMMENT 公告內(nèi)容,Ndate datetime NOT NULL COMMENT 公告發(fā)布時(shí)間,PRIMARY KEY (ID) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT=公告信息 AUTO_INCREMENT=10
21、 ;- (4)表的結(jié)構(gòu) bbs_plate命令:CREATE TABLE IF NOT EXISTS bbs_plate (9ID int(8) NOT NULL auto_increment COMMENT 板塊 ID,name varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT 板塊名稱,PRIMARY KEY (ID) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT=板塊 AUTO_INCREMENT=6 ;(5)表的
22、結(jié)構(gòu) bbs_posts命令:CREATE TABLE IF NOT EXISTS bbs_posts (PID bigint(16) NOT NULL auto_increment COMMENT 帖子 ID,Pname varchar(64) character set gb2312 collate gb2312_bin NOT NULL COMMENT 帖子標(biāo)題,Pcontent text character set gb2312 collate gb2312_bin NOT NULL COMMENT 帖子內(nèi)容,Pauthor varchar(32) character set gb23
23、12 collate gb2312_bin NOT NULL default 佚名 COMMENT 帖子作者,Pplate int(8) NOT NULL COMMENT 帖子所屬板塊,Pdate datetime NOT NULL COMMENT 發(fā)帖時(shí)間,PRIMARY KEY (PID) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT=帖子表 AUTO_INCREMENT=47 ;(6)表的結(jié)構(gòu) bbs_reply命令:CREATE TABLE IF NOT EXISTS bbs_reply (RID
24、int(32) NOT NULL auto_increment COMMENT 回帖 ID,Rauthor varchar(32) character set utf8 collate utf8_unicode_ci NOT NULL COMMENT 回帖作者,Rcontent text character set utf8 collate utf8_unicode_ci NOT NULL COMMENT 回帖內(nèi)容,Rdate datetime NOT NULL COMMENT 回帖時(shí)間,RPID int(32) NOT NULL COMMENT 所屬帖子,Rfloor int(16) NOT
25、 NULL COMMENT 回帖樓層,PRIMARY KEY (RID) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=回復(fù)帖子 AUTO_INCREMENT=74 ;(7)表的結(jié)構(gòu) bbs_resources命令:CREATE TABLE IF NOT EXISTS bbs_resources (REID 0r set utf8 collate utf8_unicode_ci NOT NULL COMMENT 資源名稱,RElength varchar(16) NOT NULL COMMENT 資源大小,RElink varchar(256) ch
26、aracter set utf8 collate utf8_unicode_ci NOT NULL COMMENT 鏈接地址,REmarks text character set utf8 collate utf8_unicode_ci COMMENT 資源備注信息,REtime datetime NOT NULL COMMENT 更新時(shí)間,PRIMARY KEY (REID)10) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=資源列表 AUTO_INCREMENT=26 ;(8)表的結(jié)構(gòu) bbs_webinfo命令:CREATE TABLE IF
27、 NOT EXISTS bbs_webinfo (WID int(16) unsigned NOT NULL auto_increment COMMENT 網(wǎng)站信息 ID,Wname varchar(32) collate gb2312_bin NOT NULL COMMENT 信息名,Waddress varchar(64) collate gb2312_bin NOT NULL COMMENT 信息所在處,Wcontent text collate gb2312_bin NOT NULL COMMENT 信息內(nèi)容,Walt varchar(64) collate gb2312_bin NO
28、T NULL COMMENT 注釋信息,PRIMARY KEY (WID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=網(wǎng)站信息表 AUTO_INCREMENT=9 ;(9)表的結(jié)構(gòu) blog_lm命令:CREATE TABLE IF NOT EXISTS blog_lm (LID bigint(32) unsigned NOT NULL auto_increment COMMENT 留言 ID,Lauthor varchar(32) collate gb2312_bin NOT NULL COMMENT 留言
29、人,Lcontent text collate gb2312_bin NOT NULL COMMENT 留言內(nèi)容,Ldate datetime NOT NULL COMMENT 留言時(shí)間,LUID bigint(32) NOT NULL COMMENT 留言對(duì)象,PRIMARY KEY (LID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=留言表 AUTO_INCREMENT=1 ;(10)表的結(jié)構(gòu) blog_log命令:CREATE TABLE IF NOT EXISTS blog_log (LID big
30、int(32) unsigned NOT NULL auto_increment COMMENT 日志 ID,Ltitle varchar(64) collate gb2312_bin NOT NULL COMMENT 日志標(biāo)題,Lauthor varchar(32) collate gb2312_bin NOT NULL COMMENT 日志作者,Lcontent text collate gb2312_bin NOT NULL COMMENT 日志內(nèi)容,Ldate datetime NOT NULL COMMENT 日志發(fā)表時(shí)間,Lcategory varchar(32) collate
31、gb2312_bin default NULL COMMENT 文章分類,PRIMARY KEY (LID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=用戶日志 AUTO_INCREMENT=2 ;(11)表的結(jié)構(gòu) blog_music命令:CREATE TABLE IF NOT EXISTS blog_music (MID bigint(32) unsigned NOT NULL auto_increment COMMENT 音樂 ID,Mname varchar(32) character set gb2
32、312 collate gb2312_bin NOT NULL COMMENT 音樂名,11Maddress varchar(255) character set gb2312 collate gb2312_bin NOT NULL COMMENT 音樂地址,Mdate datetime NOT NULL COMMENT 音樂上傳時(shí)間,Mauthor varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT 歌曲歌手,Mstowr varchar(32) character set gb2312 collate g
33、b2312_bin NOT NULL COMMENT 上傳人,PRIMARY KEY (MID) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;(12)表的結(jié)構(gòu) blog_photo命令:CREATE TABLE IF NOT EXISTS blog_photo (PID bigint(32) unsigned NOT NULL auto_increment COMMENT 相冊(cè) ID,Pname varchar(32) collate gb2312_bin NOT NULL COMME
34、NT 相冊(cè)圖片名,Paddress varchar(254) collate gb2312_bin NOT NULL COMMENT 圖片地址,Pdate datetime NOT NULL COMMENT 圖片上傳時(shí)間,Pauthor varchar(32) collate gb2312_bin NOT NULL COMMENT 圖片上傳人,PRIMARY KEY (PID),UNIQUE KEY Paddress (Paddress) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=用戶相冊(cè) AUTO_INCR
35、EMENT=1 ;(13)表的結(jié)構(gòu) users命令:CREATE TABLE IF NOT EXISTS users (UID bigint(32) unsigned NOT NULL auto_increment COMMENT 用戶 ID,Uname varchar(32) collate gb2312_bin NOT NULL COMMENT 用戶名,Upwd varchar(32) collate gb2312_bin NOT NULL COMMENT 用戶密碼,Uemail varchar(64) collate gb2312_bin NOT NULL COMMENT 用戶 E-ma
36、il,Unickname varchar(32) collate gb2312_bin NOT NULL COMMENT 用戶昵稱,Uportrait varchar(254) collate gb2312_bin NOT NULL COMMENT 用戶頭像,Uage int(8) unsigned default 0 COMMENT 用戶年齡,Uautograph varchar(255) collate gb2312_bin default NULL COMMENT 用戶個(gè)性簽名,PRIMARY KEY (UID),UNIQUE KEY Uname (Uname) ENGINE=MyISA
37、M DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=用戶信息表 AUTO_INCREMENT=4 ;3.4 程序設(shè)計(jì)部分(1)系統(tǒng)注冊(cè)模塊: ?php$name=trim($_POSTuname); / 接收表單中的數(shù)據(jù)$pwd=trim($_POSTpassword); /獲取密碼$pwd0=trim($_POSTpassword0); /獲取重復(fù)的密碼12$email=trim($_POSTemail); /獲取 E-mail地址if($name= or $pwd= or $pwd0= or $email=) / 判斷是否填寫完整echo
38、 請(qǐng)完善您的信息!;else if($pwd!=$pwd0) / 判斷兩次密碼的一致性echo 兩次密碼輸入不一致!請(qǐng)重新輸入!;else$query=select * from users where Uname=$name; / 判斷用戶名是否已存在$ynname=mysql_query($query,$link);$rows=mysql_num_rows($ynname);if($rows)echo 此用戶名(.$name.)已存在!;else / 用戶名不存在時(shí)插入用戶輸入的信息$Iquery=insert into users(Uname,Upwd,Uemail)values($na
39、me,$pwd,$email);$result=mysql_query($Iquery,$link);if($result)$_SESSIONadmin=$name;echo alert(注冊(cè)成功!);window.location.href=index.php; /提示注冊(cè)成功,確定后跳轉(zhuǎn)到首頁(yè)?(2)系統(tǒng)登陸模塊:?php$admin=false;session_start();include back/sqlpwd.php; / 調(diào)用全局 MySQL用戶名和密碼信息$_SESSIONadmin=null;$uname=$_POSTuname;$upwd=$_POSTupwd;$query
40、=select * from users where Uname=$uname and Upwd=$upwd;$result=mysql_query($query,$link); / or die(查詢失??!.mysql_errno().:.mysql_error()$uinfo=mysql_fetch_array($result);if($uinfo)$_SESSIONadmin=$uinfoUname;13mysql_free_result($result);echo window.navigate(index.php);echo 如果沒有自動(dòng)跳轉(zhuǎn),請(qǐng)點(diǎn)擊返回首頁(yè);?(3)系統(tǒng)發(fā)表帖子模塊
41、:?php$plate=mysql_query(select *from bbs_plate); /查詢板塊表$Pplates=mysql_fetch_array($plate);$Pnum=mysql_num_rows($plate); /統(tǒng)計(jì)板塊個(gè)數(shù)$Pnum$i=1;doecho .$Pplatesname. $i+;while($i=$Pnum and $Pplates=mysql_fetch_array($plate); if($_SESSIONadmin)echo 會(huì)員發(fā)帖;? 發(fā)表新帖 作者: 標(biāo)題: 選擇板塊: option name=S_pl
42、ate value= 正文: 注意:在發(fā)表之前請(qǐng)確定選擇所屬板塊! ?php /發(fā)表帖子的提交處理程序$pname=trim($_POSTpost_name); / 獲取新發(fā)表的帖子名$S_plate=$_POSTS_plate; / 獲取所屬板塊echo $S_plate;for($s=1;$s=$count;$s+)/$S_plate=$count$s;$P_content=trim($_POSTP_content); /獲取帖子內(nèi)容if($pname= or $S_plate= or $P_content=)echo 填寫不完整,請(qǐng)完善!
43、;else$newpost=mysql_query(insert into bbs_posts(Pname,Pcontent,Pauthor,Pplate,Pdate)values($pname,$P_content,$_SESSIONadmin,$S_plate,NOW()or die(mysql_error();if($newpost)echo alert(發(fā)表成功!);window.location.href=posts.php?pid=.$S_plate.;?(4)系統(tǒng)回復(fù)帖子模塊:快速回復(fù): 15 ?php$replytxt=trim($_POSTreplytxt); /獲取回內(nèi)容i
44、f($_SESSIONadmin and trim($replytxt)!=)$last=mysql_query(SELECT * FROM bbs_reply where RPID=$pid order by Rfloor desc limit 0,1); /查詢最高樓層數(shù)$Rrnum=mysql_fetch_array($last); /獲取最高樓層數(shù)$now=$RrnumRfloor; /回復(fù)時(shí)用的樓層數(shù)$nowfloor=(int)$now+1;/INSERT INTO bbs_reply (RID, Rauthor, Rcontent, Rdate, RPID, Rfloor) VA
45、LUES (NULL, admin, 測(cè)試回復(fù) 0, NOW(), 2, 1);$Rinsert=mysql_query(INSERT INTO bbs_reply (RID, Rauthor, Rcontent, Rdate, RPID, Rfloor) VALUES (NULL, $_SESSIONadmin,$replytxt,NOW(),$pid,$nowfloor); / 插入回帖內(nèi)容if($Rinsert) /判斷發(fā)表成功與否$replytxt=;echo 發(fā)表成功!;/Header(location:post.php?pid=.$pid);echo window.location
46、.href=post.php?pid=.$pid.; elseecho 警告:游客不能發(fā)帖、回復(fù)!;?(5)管理員功能模塊:1) 公告管理(增、刪、改)2) 用戶管理(刪、改)3) 帖子管理(增、刪、改)4) 板面管理(增、刪、改)5) 修改密碼(修改)6) 網(wǎng)站信息(修改)7) 下載資源(增、刪、改)8) 網(wǎng)站預(yù)覽(查看)169) 友情鏈接(增、刪、改)3.5 關(guān)鍵技術(shù)(1)分頁(yè):帖子列表、下載資源、回帖等金條信息的分布問(wèn)題解決辦法:現(xiàn)以帖子列表為例說(shuō)明,顯示某板塊的帖子先查詢本板塊的帖子總數(shù),使用變量$pcont=mysql_num_rows()獲得查詢總數(shù),設(shè)變量$P 為每頁(yè)顯示條數(shù),$
47、page_c 為總頁(yè)數(shù)等于$pcont/$p 在$pcont/$p 的余數(shù)大于等于 1時(shí)$page_c=$pcont/$p 等于 0時(shí)$page_c=$pcont/$p +1。目前已得到總頁(yè)數(shù)和每頁(yè)顯示條數(shù),接下來(lái)是顯示其中頁(yè)數(shù)為$page 的頁(yè)面,從何處開始查詢,因?yàn)樵?MySQL時(shí)可以從倒數(shù)第某條開始查詢幾條,接下來(lái)就確定查詢開始的位置$onset,$onset=($page-1)*$p+1,因此查詢語(yǔ)句為:select * from 表名 where 查詢條件 limit $onset,$p。接下來(lái)是顯示分頁(yè)結(jié)果,要求頁(yè)數(shù)為第一頁(yè)時(shí)不顯示“前一頁(yè)” ,當(dāng)前頁(yè)數(shù)沒有超鏈接,頁(yè)數(shù)為最后一頁(yè)時(shí)
48、不顯示“下一頁(yè)” 。實(shí)現(xiàn)方法:判斷當(dāng)前頁(yè)是否為第一頁(yè),是,則輸出空內(nèi)容,否,則輸出“前一頁(yè)” ,是否顯示“下一頁(yè)”同上,在“前一頁(yè)”與“下一頁(yè)”之間輸出所有頁(yè)數(shù),使用 for循環(huán)輸出,在循環(huán)內(nèi)部做判斷欲輸出的頁(yè)數(shù)是否等于當(dāng)前頁(yè)數(shù),是,則只輸出頁(yè)數(shù),否,則輸出帶超鏈接的頁(yè)數(shù),并在頁(yè)面文件開始處獲取通過(guò)地址欄傳遞過(guò)來(lái)的頁(yè)數(shù),就可以查詢輸出了。示例代碼:0)$c_page=(int)($count/$p)+1; /總頁(yè)數(shù)+1else$c_page=(int)($count/$p); /總頁(yè)數(shù)+0if($page=1)$onset=0; /查詢起始(倒數(shù))位置17elseif($page!=1) $o
49、nset=$p*($page-1)-1;$result=mysql_query(SELECT * FROM bbs_resources ORDER BY REID desc LIMIT $onset,$p);$res=mysql_fetch_array($result);? ID編號(hào) 名稱 資源介紹 a target=_blank href= a target=_blank href= TOP 1) /檢查是否是第一頁(yè) 不是則顯
50、示$early=$page-1;echo 前一頁(yè) /鏈接到 re并傳遞頁(yè)數(shù) page /是每一頁(yè)則不顯示“第一頁(yè)”for($i=1;$i=$c_page;$i+)if($i!=$page) / 判斷當(dāng)傳遞的頁(yè)數(shù)!=當(dāng)前要顯示數(shù)字時(shí)輸出頁(yè)數(shù)鏈接echo .$i. /鏈接到 re并傳遞頁(yè)數(shù) pageelseif($i=$page)echo $page; / 判斷當(dāng)傳遞的頁(yè)數(shù)=當(dāng)前要顯示數(shù)字時(shí)輸出頁(yè)數(shù)(無(wú)鏈接)/檢查是否是最后一頁(yè)18if ($page$c_page) / 不是最后一頁(yè)是顯示 “下一頁(yè)” 否則不顯示$lastp=$page+1;echo 下一頁(yè); echo 當(dāng)
51、前第.$page.頁(yè) 總共.$c_page.頁(yè);?(2)連接數(shù)據(jù)庫(kù)重復(fù)代碼處理: 連接數(shù)據(jù)庫(kù)的語(yǔ)句雖然簡(jiǎn)單但重復(fù)很多次,一旦修改數(shù)據(jù)庫(kù)信息則會(huì)出現(xiàn)修改很麻煩,為此要建立一個(gè)真心誠(chéng)專門連接數(shù)據(jù)庫(kù)的信息,而在其他頁(yè)面加上一句引用這個(gè)頁(yè)面的語(yǔ)句就行了,一旦數(shù)據(jù)庫(kù)連接信息變動(dòng)了,只要修改一下那個(gè)專門的頁(yè)面就行了。示例代碼:Sqlpwd.php文件其他頁(yè)面調(diào)用:(3)后臺(tái)管理安全: 在后臺(tái)的每個(gè)頁(yè)面(除了后臺(tái)登錄頁(yè)面)的之外加上些 PHP語(yǔ)句作判斷管理員是否已登錄,是,則顯示頁(yè)面內(nèi)容,否,則返回后臺(tái)登錄頁(yè)面。這樣非管理員用戶是無(wú)法登錄后臺(tái)(無(wú)密碼登錄) ,而在前臺(tái)首頁(yè)進(jìn)入后臺(tái)的入口,而只有“admin”
52、用戶登錄時(shí)才會(huì)顯示后臺(tái)登錄鏈接,除了這個(gè)方法進(jìn)入后臺(tái)登錄頁(yè)面外,還可以直接輸入網(wǎng)址進(jìn)入后臺(tái)登錄頁(yè)面,但必須有管理權(quán)限。示例代碼:19(4)(回)帖子顯示格式:發(fā)帖回帖時(shí)都是用的文本輸入框,然而讀取用文本輸入框?qū)懭氲臄?shù)據(jù)時(shí)直接顯示在網(wǎng)頁(yè)上是沒有格式的,沒有換行基本的段落都沒有了,為解決這個(gè)問(wèn)題,在輸出時(shí)也用文本框但要設(shè)置其屬性為自動(dòng)變長(zhǎng)而沒有滾動(dòng)條,這樣就有了輸入時(shí)的段落,也會(huì)看起來(lái)就像是直接輸出到網(wǎng)頁(yè)中又有段落修飾過(guò)的樣子。 (5) 網(wǎng)站版權(quán)信息設(shè)置:因網(wǎng)站每個(gè)頁(yè)面都要顯示同樣的版權(quán)信息,且站主可以在以后能修改看自定義的版權(quán)信息,這樣就要用到重復(fù)代碼的重復(fù)調(diào)用和可修改。解決辦法就是版權(quán)信息的
53、HTML 代碼是從數(shù)據(jù)庫(kù)里讀取的,只用在每個(gè)頁(yè)面加上 PHP 代碼連接數(shù)據(jù)庫(kù)并輸出版權(quán)信息 HTML 代碼,在后臺(tái)有版權(quán)信息的修改功能,站主可以看以自定義欲顯示的內(nèi)容,但必須用 HTML 代碼才行。3.6 網(wǎng)站文件結(jié)構(gòu)images(圖片文件夾)back(后臺(tái)文件夾)| backlogon.php(后臺(tái)登錄頁(yè)面)| changepwd.php(修改后臺(tái)管理員密碼)| delnot.php(刪除公告)| delplate.php(刪除板塊)| delpost.php(刪除帖子)| delre.php(刪除下載資源)| delreply.php(刪除回復(fù))| deluse.php(刪除用戶)| ed
54、inot.php(編輯公告)| ediplate.php(編輯板塊)20| edipost.php(編輯帖子)| edire.php(編輯下載資源信息)| ediuse.php(編輯用戶信息)| ediwebinfo.php(編輯網(wǎng)站信息)| index.php(后臺(tái)首頁(yè))| left.php(左側(cè)管理面板)| main.php(后臺(tái)管理歡迎頁(yè)面)| m_notices.php(管理公告)| m_plate.php(管理板塊)| m_post.php(管理帖子)| m_post_re.php(管理帖子和回復(fù))| m_re.php(管理下載資源)| m_user.php(管理用戶)| m_web
55、info.php(管理網(wǎng)站信息)| sqlpwd.php(MySQL連接信息)Connections()| mysql.php(MySQL信息)Scripts()| AC_RunActiveContent.js()SpryAssets()| SpryTabbedPanels.css()| SpryTabbedPanels.js()| SpryValidationTextField.css()| SpryValidationTextField.js()index.php(BBS首頁(yè))logout.php(退出處理)mm_menu.js()m_term_info.php(網(wǎng)站制作人信息)newpo
56、st.php(發(fā)表新帖)newusers.php(新用戶注冊(cè))notice.php(公告)post.php(帖子及回復(fù))posts.php(帖子列表)re.php(下載資源表)selectpost.php(搜索帖子)sqlpwd.xml(MySQL信息)uselogin.php(用戶登錄處理程序)usrinfo.php(用戶個(gè)人信息)213.7 論壇設(shè)計(jì)存在問(wèn)題1) 管理員對(duì)用戶設(shè)置權(quán)限還未實(shí)現(xiàn)2) 管理員對(duì)帖子指定精華也沒實(shí)現(xiàn)3) 注冊(cè)用戶現(xiàn)在不需要經(jīng)過(guò)管理員審批4) 個(gè)人信息還比較簡(jiǎn)單5) 注冊(cè)擁用戶陸后還無(wú)法對(duì)自己發(fā)表過(guò)的帖子進(jìn)行管理(修改、刪除)6) 上傳圖片功能還無(wú)法實(shí)現(xiàn),用戶無(wú)法上傳頭像、帖圖,管理員無(wú)法上傳 LOGO等圖片7) 發(fā)帖和加帖內(nèi)容還只能由純文本形式出現(xiàn),還不能加入圖片、音樂、附件之類8) 網(wǎng)站總體的界面還沒有進(jìn)一步美化、規(guī)劃,看起來(lái)布局不是很合理也不美觀9) 論壇的安全性有待測(cè)試和完善224總結(jié)23參考文獻(xiàn)1鄒天思,孫鵬等。 PHP 從入門到精通 。清華大學(xué)出版社,2008 年2Luke Welling Laura Thomson PHP 和 MySQL Web開發(fā) 機(jī)械工業(yè)出版社 2005年3(美)Larry Ullman PHP 6 與 MySQL 5基礎(chǔ)教程 人民郵電出版社 2008 年24致 謝
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四年級(jí)《觀潮》課件1 (3)
- 中考數(shù)學(xué)課件浙教版中考數(shù)學(xué)數(shù)與式(1)
- 食品安全及其評(píng)價(jià)體系課件
- 不規(guī)則物體的體積初成-PPT
- 抑郁癥的防治
- 優(yōu)選光輻射測(cè)量系統(tǒng)的性能及其測(cè)量課件
- 14通往廣場(chǎng)的路不止一條課件
- 石油能源行業(yè)2020工作總結(jié)與2020工作計(jì)劃ppt模板
- 微生物鏈霉菌和其在生產(chǎn)中的應(yīng)用
- 優(yōu)質(zhì)護(hù)理服務(wù)措施ppt
- 小小的書櫥課件(北師大版語(yǔ)文三年級(jí)下冊(cè))
- 第6章國(guó)際貨物運(yùn)輸2
- 氣胸的健康指導(dǎo)ppt課件
- 認(rèn)識(shí)計(jì)算機(jī)鍵盤微課
- 先天性髖關(guān)節(jié)脫位X線診斷