基于php mysql校園論壇設(shè)計(jì)
《基于php mysql校園論壇設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于php mysql校園論壇設(shè)計(jì)(25頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、目目 錄錄摘摘 要要.11. 緒論緒論.21.1 概論.21.2 論壇定義和系統(tǒng)基本功能.22系統(tǒng)開發(fā)的環(huán)境和工具系統(tǒng)開發(fā)的環(huán)境和工具.32.1 系統(tǒng)開發(fā)的環(huán)境.32.2 MYSQL 數(shù)據(jù)庫簡介.32.3 APACHE服務(wù)器簡介.32.4 PHP 語言簡介.43需求分析及詳細(xì)設(shè)計(jì)需求分析及詳細(xì)設(shè)計(jì).53.1 論壇的需求規(guī)劃.53.2 論壇總工作流程圖.63.3 數(shù)據(jù)庫設(shè)計(jì)部分.83.4 程序設(shè)計(jì)部分.113.5 關(guān)鍵技術(shù).163.6 網(wǎng)站文件結(jié)構(gòu).193.7 論壇設(shè)計(jì)存在問題.214總結(jié)總結(jié).22參考文獻(xiàn)參考文獻(xiàn).23致致 謝謝.241摘摘 要要校園論壇是校園網(wǎng)中不可缺少的部分之一。雖然基于
2、ASP+ACCESS 的論壇使用簡潔,安裝方便,但 MySQL 數(shù)據(jù)庫以它短小、方便、速度快、免費(fèi)等優(yōu)點(diǎn)成為很多站點(diǎn)目前首選數(shù)據(jù)庫,加上 PHP 語言也具有可跨平臺(tái)、移植性高,安全可靠,快速高效的優(yōu)點(diǎn),因此目前很多流行論壇程序都采用了 Apache+Php+Mysql 相結(jié)合來開發(fā)論壇,所以我們也使用動(dòng)態(tài)跨平臺(tái)語言 PHP 和現(xiàn)在非常流行的 Web 服務(wù)器 Apache,通過與適合開發(fā)中型網(wǎng)站的 MySQL 數(shù)據(jù)庫進(jìn)行無縫結(jié)合,做一個(gè)計(jì)算機(jī)系的學(xué)校論壇,并為論壇用戶提供了周到和個(gè)性化的服務(wù)。關(guān)鍵詞關(guān)鍵詞:PHP,Apache,MySQL,BBS,論壇,計(jì)算機(jī)系,技術(shù),交流,網(wǎng)站,設(shè)計(jì),規(guī)劃。A
3、BSTRACT: BBS campus network 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 portab
4、ility, high, safe and reliable, 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 o
5、n the MySQL databases, do a 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.11.1 概論概論BBS 起源于 20 世紀(jì) 80 年代初。最初,論壇只是用于發(fā)布公告信息,討論問題的在線交流平
6、臺(tái)。后來,隨著網(wǎng)絡(luò)的普及,論壇的功能越來越豐富,受到廣大網(wǎng)民的歡迎。因此,校園網(wǎng)站對論壇重視起來,紛紛在自己的網(wǎng)站上開辟論壇。作為與師生交流的園地。同時(shí)在線技術(shù)支持和在線服務(wù)也在論壇中開展起來。當(dāng)代的大學(xué)生幾乎都會(huì)接觸甚至經(jīng)常登陸自己感興趣的論壇,在上面可以分享,也可以交流意見,但是,能把他們集中起來的論壇并不是很多。目前,很多人選擇這樣的組合:Apache+Php+MySQL 來建設(shè)自己的論壇,因?yàn)樗鼈兌伎梢悦赓M(fèi)從網(wǎng)上下載,而且很容易在 Linux 平臺(tái)下應(yīng)用,網(wǎng)站安全性、穩(wěn)定性和執(zhí)行效率都非常優(yōu)秀。1.21.2 論壇定義和系統(tǒng)基本功能論壇定義和系統(tǒng)基本功能論壇也稱為 BBS,是 bulle
7、tin Board System 的簡稱,意即電子公告板,是一種在Internet 上常見的用于信息服務(wù)的 Web 系統(tǒng),它主要給瀏覽者提供相互溝通的平臺(tái),以此來吸引用戶,服務(wù)用戶。開發(fā)本系統(tǒng)意在吸納大部分游離在眾多論壇的計(jì)算機(jī)系大學(xué)生和喜歡計(jì)算機(jī)的學(xué)生,能一起共享計(jì)算機(jī)資源,能一起談?wù)剬W(xué)習(xí)計(jì)算機(jī)過程的經(jīng)驗(yàn)。32 2系統(tǒng)開發(fā)的環(huán)境和工具系統(tǒng)開發(fā)的環(huán)境和工具2.12.1 系統(tǒng)開發(fā)的環(huán)境系統(tǒng)開發(fā)的環(huán)境本論壇在 Linux 平臺(tái)下應(yīng)用,采用 Apache+Php+MySQL 建設(shè)。2.22.2 MySQLMySQL 數(shù)據(jù)庫簡介數(shù)據(jù)庫簡介MySQL(發(fā)音為“my ess cue e” ,不是“my s
8、equel” )是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS) ,MySQL 數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。由于 MySQL 是開放源代碼的,因此任何人都可以在 General Public License 的許可下下載并根據(jù)個(gè)性化的需要對其進(jìn)行修改。MySQL 因?yàn)槠渌俣取⒖煽啃院瓦m應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL 是管理內(nèi)容最好的選擇。MySQL 關(guān)系型數(shù)據(jù)庫于 1998 年 1 月發(fā)行第一個(gè)版本。它使用系統(tǒng)核心提供的多線程機(jī)制提供完全的多線程運(yùn)行模式,提供了面向C、C+、Eiffel、Java、Per
9、l、PHP、Python 以及 Tcl 等編程語言的編程接口(APIs) ,支持多種字段類型并且提供了完整的操作符支持查詢中的 SELECT 和 WHERE 操作。MySQL 開發(fā)組計(jì)劃于 2001 年中期公布 MySQL4.0 版本。在這個(gè)版本中將有以下新的特性被提供:新的表定義文件格式、高性能的數(shù)據(jù)復(fù)制功能、更加強(qiáng)大的全文搜索功能。在此之后,MySQL 開發(fā)著希望提供安全的數(shù)據(jù)復(fù)制機(jī)制、在 BeOS 操作系統(tǒng)上的 MySQL 實(shí)現(xiàn)以及對延時(shí)關(guān)鍵字的定期刷新選項(xiàng)。隨著時(shí)間的推進(jìn),MySQL 將對 ANSI 92/ANSI 99 標(biāo)準(zhǔn)完全兼容。2.32.3 ApacheApache 服務(wù)器簡介
10、服務(wù)器簡介apache 是世界排名第一的 web 服務(wù)器, 根據(jù) netcraft 所作的調(diào)查,世界上百分4之五十以上的 web 服務(wù)器在使用 apache. 1995 年 4 月, 最早的 apache(0.6.2 版)由 apache group 公布發(fā)行. Apache group 是一個(gè)完全通過 internet 進(jìn)行運(yùn)作的非盈利機(jī)構(gòu), 由它來決定 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)行測試, 如果認(rèn)為滿
11、意, 該代碼就會(huì)被集成到 apache 的主要發(fā)行版中。2.42.4 PHPPHP 語言簡介語言簡介PHP 最初是 1994 年 Rasmus Lerdorf 創(chuàng)建的,剛剛開始只是一個(gè)簡單的用 Perl語言編寫的程序,用來統(tǒng)計(jì)他自己網(wǎng)站的訪問者。后來又用 C 語言重新編寫,包括可以訪問數(shù)據(jù)庫。在 1995 年以 Personal Home Page Tools (PHP Tools) 開始對外發(fā)表第一個(gè)版本,Lerdorf 寫了一些介紹此程序的文檔,并且發(fā)布了 PHP1.0。在這早期的版本中,提供了訪客留言本、訪客計(jì)數(shù)器等簡單的功能。以后越來越多的網(wǎng)站使用了 PHP,并且強(qiáng)烈要求增加一些特性,
12、比如循環(huán)語句和數(shù)組變量等等,在新的成員加入開發(fā)行列之后,在 1995 年中,PHP2.0 發(fā)布了。第二版定名為PHP/FI(Form Interpreter)。PHP/FI 加入了對 MYSQL 的支持,從此建立了 PHP 在動(dòng)態(tài)網(wǎng)頁開發(fā)上的地位。到了 1996 年底,有 15000 個(gè)網(wǎng)站使用 PHP/FI;時(shí)間到了1997 年中,使用 PHP/FI 的網(wǎng)站數(shù)字超過五萬個(gè)。而在 1997 年中,開始了第三版的開發(fā)計(jì)劃,開發(fā)小組加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名為PHP3。2000 年,PHP4.0 又問世了,其中增加了許多新的特性。 PHP 程序駐
13、留在內(nèi)存中,其他用戶再一次訪問這個(gè)程序時(shí)就不需要重新編譯程序了,只要直接執(zhí)行內(nèi)存中的代碼就可以了,這也是 PHP 高效率的體現(xiàn)之一。PHP 具有非常強(qiáng)大的功能,所有的 CGI 或者 JavaScript 的功能 PHP 都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。PHP(Personai Home Page)是一種易于學(xué)習(xí)和使用的服務(wù)器端腳本語言.只需要很少的編程知識(shí)就能使用 PHP 建立一個(gè)真正交互的 web 站點(diǎn)。53 3需求分析及詳細(xì)設(shè)計(jì)需求分析及詳細(xì)設(shè)計(jì)3.13.1 論壇的需求規(guī)劃論壇的需求規(guī)劃用戶使用論壇,有一定的流程:用戶注冊登錄進(jìn)入論壇,就某個(gè)話題(主題貼)展開討論,通過
14、發(fā)貼功能發(fā)布新的話題,通過回貼的功能回復(fù)已有的話題,通過搜索功能查找已的話題;管理通過管理功能創(chuàng)建、編輯、刪除論壇的板塊,管理注冊的用戶,管理貼子。設(shè)置論壇的基本參數(shù)。這樣的流程就決定了論壇的需求。下面是系統(tǒng)的功能需求和分析:(1 1)用戶類有注冊、登錄和管理 3 個(gè)方法,管理方法又分為修改、刪除和設(shè)置權(quán)限3 個(gè)子方法,如圖 3.1 所示:用戶管理員修改個(gè)人信息注冊登錄設(shè)置權(quán)限添加刪除管理用戶圖 3.1 管理員與用戶關(guān)系(2 2)帖子類有瀏覽、發(fā)帖、回帖、搜索和管理 5 個(gè)方法,管理方法又可以分為編輯、刪除、轉(zhuǎn)移指定精華 5 個(gè)方法.如圖 3.2 所示:用戶管理員瀏覽帖子搜索回帖編輯指定精華轉(zhuǎn)
15、移刪除發(fā)帖管理帖子圖 3.2 管理員、用戶以及帖子之間的關(guān)系(3)用戶功能:)用戶功能:1) 用戶注冊:用戶可以注冊為該系統(tǒng)成員(需超級(jí)管理員審批后方可發(fā)主題貼),注冊信息要求有登陸的用戶名、密碼、電子郵件等,在發(fā)表主題貼和跟貼時(shí),記錄其登陸信息。2) 用戶登陸:對于注冊用戶(已獲審批) ,可以憑其注冊用戶名和密碼進(jìn)入系6統(tǒng)。3) 修改個(gè)人信息:用戶進(jìn)入自己的板塊后可以修改個(gè)人信息。4) 帖子瀏覽:注冊用戶可以任意瀏覽權(quán)限內(nèi)的帖子,未注冊用戶只能瀏覽,不能回復(fù)。5) 帖子檢索:用戶可以提供關(guān)鍵字檢索可見主題帖,注冊用戶可以查看自己發(fā)表的帖子; 帖子回復(fù):注冊用戶可以回復(fù)帖子。6) 發(fā)表主題:用
16、戶發(fā)表一個(gè)討論的主題,包括標(biāo)題和正文等。7) 帖子編輯:管理員可以對所有帖子進(jìn)行轉(zhuǎn)移,刪除,加精等操作,用戶也可以對自己的帖子進(jìn)行修改或者刪除。(4)管理員功能)管理員功能:1) 用戶的審批:注冊用戶成功后,帳號(hào)不能發(fā)主題貼,須管理員審批;審批之后用戶可以進(jìn)行相關(guān)的操作。2) 論壇可以分版塊(添加、刪除):每一版塊可以有若干個(gè)版主,版主負(fù)責(zé)管理本版塊內(nèi)的帖子(刪除) 。3) 刪除主題:超級(jí)管理員可以刪除任何人的主題貼;版主只能刪除本版內(nèi)任何人發(fā)表的主題貼。4) 回復(fù)主題:回復(fù)已經(jīng)發(fā)表的主題(記錄回復(fù)人信息:注冊用戶的用戶名、發(fā)表時(shí)間) 。(5)性能需求:)性能需求:1) 會(huì)員管理員權(quán)限區(qū)分;2
17、) 發(fā)帖延時(shí)保持無滯后;3) 任何地方無編譯錯(cuò)誤;4) 頁面美觀大方,操作方便直觀,有安全保障機(jī)制。3.23.2 論壇總工作流程圖論壇總工作流程圖(1 1)注冊登錄搜索管理板塊瀏覽板塊管理用戶發(fā)帖瀏覽帖子回帖管理帖子管理員用戶瀏覽者圖 3.3 論壇工作流程圖7從流程 3.3 圖上可以看到論壇完成的走向,每一個(gè)流程的節(jié)點(diǎn)處都有許多功能,見下表(論壇功能列表)3.4 所示:表 3.4 論壇功能論壇板塊列表瀏覽帖子發(fā)帖回帖搜索帖子編輯帖子刪除帖子精華帖置頂轉(zhuǎn)移帖子用戶注冊用戶登錄控制用戶權(quán)限修改注冊信息設(shè)置論壇參數(shù)管理板塊管理用戶(2)功能界面框圖:(如圖)功能界面框圖:(如圖 3.5 所示)所示)
18、 BBS 論壇系統(tǒng)系統(tǒng)主要功能模塊會(huì)員注冊會(huì)員管理會(huì)員登錄帖子管理論壇板塊管理帖子發(fā)表帖子回復(fù)帖子瀏覽帖子檢索圖 3.5 功能界面(3)論壇功能和用戶權(quán)限對應(yīng)表)論壇功能和用戶權(quán)限對應(yīng)表:論壇一般存在兩種用戶,分別為注冊用戶和管理員。用戶的權(quán)限是向下覆蓋的,即上級(jí)權(quán)限包含下級(jí)權(quán)限,在這里的論壇中,管理員的權(quán)限是上級(jí)權(quán)限。接下來,需要?dú)w好類的對象及其方法分配給不同的論壇用戶。具體功能的分配結(jié)果見表 3.6所示:表 3.6 用戶權(quán)限對應(yīng)對象實(shí)體功能方法用戶類型論壇設(shè)置參數(shù)管理員瀏覽列表瀏覽者創(chuàng)建板塊管理員修改板塊管理員板塊刪除板塊管理員瀏覽列表瀏覽者查看列表瀏覽者發(fā)帖注冊用戶帖子回帖注冊用戶8搜索
19、瀏覽者編輯(自己所有)注冊用戶編輯(全部)管理員刪除管理員指定精華管理員轉(zhuǎn)移管理員注冊瀏覽者登陸注冊用戶管理員登陸管理員添加管理員刪除管理員用戶設(shè)定權(quán)限管理員3.33.3 數(shù)據(jù)庫設(shè)計(jì)部分?jǐn)?shù)據(jù)庫設(shè)計(jì)部分(1)數(shù)據(jù)庫)數(shù)據(jù)庫: xxu_jsj命令:CREATE DATABASES xxu_js;(2)表的結(jié)構(gòu))表的結(jié)構(gòu) bbs_adminbbs_admin命令:CREATE TABLE IF NOT EXISTS bbs_admin (name varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT 管理員名,pas
20、sword varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT 管理員密碼,PRIMARY KEY (name) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=管理員;-(3 3)表的結(jié)構(gòu))表的結(jié)構(gòu) bbs_noticebbs_notice命令:CREATE TABLE IF NOT EXISTS bbs_notice (ID int(8) unsigned NOT NULL auto_increment,title varchar(32) collate utf8
21、_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 ;- (4 4)表的結(jié)構(gòu))表的結(jié)構(gòu) bbs_platebbs_plate命令:CREATE TABLE IF NOT EX
22、ISTS 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 5)表的結(jié)構(gòu))表的結(jié)構(gòu) bbs_postsbbs_posts命令:CREATE TABLE IF
23、 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 gb2312 collate gb2312_bin NOT NULL
24、 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 6)表的結(jié)構(gòu))表的結(jié)構(gòu) bbs_replybbs_reply命令:CREATE TABLE IF NOT EXISTS bbs_reply (RID int(32) NOT NU
25、LL 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 NULL COMMENT
26、回帖樓層,PRIMARY KEY (RID) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=回復(fù)帖子 AUTO_INCREMENT=74 ;(7 7)表的結(jié)構(gòu))表的結(jié)構(gòu) bbs_resourcesbbs_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(2
27、56) character 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 8)表的結(jié)構(gòu))表的結(jié)構(gòu) bbs_webinfobbs_w
28、ebinfo命令:CREATE TABLE IF 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(6
29、4) collate gb2312_bin NOT NULL COMMENT 注釋信息,PRIMARY KEY (WID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=網(wǎng)站信息表 AUTO_INCREMENT=9 ;(9 9)表的結(jié)構(gòu))表的結(jié)構(gòu) blog_lmblog_lm命令:CREATE TABLE IF NOT EXISTS blog_lm (LID bigint(32) unsigned NOT NULL auto_increment COMMENT 留言 ID,Lauthor varchar(32)
30、collate gb2312_bin NOT NULL COMMENT 留言人,Lcontent text collate gb2312_bin NOT NULL COMMENT 留言內(nèi)容,Ldate datetime NOT NULL COMMENT 留言時(shí)間,LUID bigint(32) NOT NULL COMMENT 留言對象,PRIMARY KEY (LID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=留言表 AUTO_INCREMENT=1 ;(1010)表的結(jié)構(gòu))表的結(jié)構(gòu) blog_logbl
31、og_log命令:CREATE TABLE IF NOT EXISTS blog_log (LID bigint(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 N
32、OT NULL COMMENT 日志發(fā)表時(shí)間,Lcategory varchar(32) collate gb2312_bin default NULL COMMENT 文章分類,PRIMARY KEY (LID) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=用戶日志 AUTO_INCREMENT=2 ;(1111)表的結(jié)構(gòu))表的結(jié)構(gòu) blog_musicblog_music命令:CREATE TABLE IF NOT EXISTS blog_music (MID bigint(32) unsigned NOT
33、 NULL auto_increment COMMENT 音樂 ID,Mname varchar(32) character set gb2312 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 N
34、OT NULL COMMENT 歌曲歌手,Mstowr varchar(32) character set gb2312 collate gb2312_bin NOT NULL COMMENT 上傳人,PRIMARY KEY (MID) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;(1212)表的結(jié)構(gòu))表的結(jié)構(gòu) blog_photoblog_photo命令:CREATE TABLE IF NOT EXISTS blog_photo (PID bigint(32) unsigned NO
35、T NULL auto_increment COMMENT 相冊 ID,Pname varchar(32) collate gb2312_bin NOT NULL COMMENT 相冊圖片名,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 (P
36、address) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=用戶相冊 AUTO_INCREMENT=1 ;(1313)表的結(jié)構(gòu))表的結(jié)構(gòu) usersusers命令: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) coll
37、ate gb2312_bin NOT NULL COMMENT 用戶密碼,Uemail varchar(64) collate gb2312_bin NOT NULL COMMENT 用戶 E-mail,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) col
38、late gb2312_bin default NULL COMMENT 用戶個(gè)性簽名,PRIMARY KEY (UID),UNIQUE KEY Uname (Uname) ENGINE=MyISAM DEFAULT CHARSET=gb2312 COLLATE=gb2312_bin COMMENT=用戶信息表 AUTO_INCREMENT=4 ;3.43.4 程序設(shè)計(jì)部分程序設(shè)計(jì)部分(1 1)系統(tǒng)注冊模塊)系統(tǒng)注冊模塊: ?php$name=trim($_POSTuname);/接收表單中的數(shù)據(jù)$pwd=trim($_POSTpassword);/獲取密碼$pwd0=trim($_POSTp
39、assword0);/獲取重復(fù)的密碼12$email=trim($_POSTemail); /獲取 E-mail 地址if($name= or $pwd= or $pwd0= or $email=)/判斷是否填寫完整echo 請完善您的信息!;else if($pwd!=$pwd0)/判斷兩次密碼的一致性echo 兩次密碼輸入不一致!請重新輸入!;else$query=select * from users where Uname=$name;/判斷用戶名是否已存在$ynname=mysql_query($query,$link);$rows=mysql_num_rows($ynname);i
40、f($rows)echo 此用戶名(.$name.)已存在!;else/用戶名不存在時(shí)插入用戶輸入的信息$Iquery=insert into users(Uname,Upwd,Uemail)values($name,$pwd,$email);$result=mysql_query($Iquery,$link);if($result)$_SESSIONadmin=$name;echo alert(注冊成功!);window.location.href=index.php; /提示注冊成功,確定后跳轉(zhuǎn)到首頁?(2 2)系統(tǒng)登陸模塊:)系統(tǒng)登陸模塊:?php$admin=false;session
41、_start();include back/sqlpwd.php;/調(diào)用全局 MySQL 用戶名和密碼信息$_SESSIONadmin=null;$uname=$_POSTuname;$upwd=$_POSTupwd;$query=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)$_SESSIO
42、Nadmin=$uinfoUname;13mysql_free_result($result);echo window.navigate(index.php);echo 如果沒有自動(dòng)跳轉(zhuǎn),請點(diǎn)擊返回首頁;?(3 3)系統(tǒng)發(fā)表帖子模塊:)系統(tǒng)發(fā)表帖子模塊:?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.
43、$i+;while($i=$Pnum and $Pplates=mysql_fetch_array($plate); if($_SESSIONadmin)echo 會(huì)員發(fā)帖;? 發(fā)表新帖 作者: 標(biāo)題: 選擇板塊: option name=S_plate value= 正文: 注意:在發(fā)表之前請確定選擇所屬板塊! ?php/發(fā)表帖子的提交處理程序$pname=trim($_POSTpost_name);/獲取新發(fā)表的帖子名$S_plate=$_POSTS_plate;/獲取所屬板塊echo $S_plate;for($s=1;$s=$count
44、;$s+)/$S_plate=$count$s;$P_content=trim($_POSTP_content);/獲取帖子內(nèi)容if($pname= or $S_plate= or $P_content=)echo 填寫不完整,請完善!;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(
45、發(fā)表成功!);window.location.href=posts.php?pid=.$S_plate.;?(4)系統(tǒng)回復(fù)帖子模塊:)系統(tǒng)回復(fù)帖子模塊:快速回復(fù): 15 ?php$replytxt=trim($_POSTreplytxt);/獲取回內(nèi)容if($_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);/獲取最
46、高樓層數(shù)$now=$RrnumRfloor;/回復(fù)時(shí)用的樓層數(shù)$nowfloor=(int)$now+1;/INSERT INTO bbs_reply (RID, Rauthor, Rcontent, Rdate, RPID, Rfloor) VALUES (NULL, admin, 測試回復(fù) 0, NOW(), 2, 1);$Rinsert=mysql_query(INSERT INTO bbs_reply (RID, Rauthor, Rcontent, Rdate, RPID, Rfloor) VALUES (NULL, $_SESSIONadmin,$replytxt,NOW(),$p
47、id,$nowfloor); /插入回帖內(nèi)容if($Rinsert)/判斷發(fā)表成功與否$replytxt=;echo 發(fā)表成功!;/Header(location:post.php?pid=.$pid);echo window.location.href=post.php?pid=.$pid.; elseecho 警告:游客不能發(fā)帖、回復(fù)!;?(5)管理員功能模塊:)管理員功能模塊:1)公告管理(增、刪、改)2)用戶管理(刪、改)3)帖子管理(增、刪、改)4)板面管理(增、刪、改)5)修改密碼(修改)6)網(wǎng)站信息(修改)7)下載資源(增、刪、改)8)網(wǎng)站預(yù)覽(查看)169)友情鏈接(增、刪、改
48、)3.53.5 關(guān)鍵技術(shù)關(guān)鍵技術(shù)(1 1)分頁:)分頁:帖子列表、下載資源、回帖等金條信息的分布問題解決辦法:現(xiàn)以帖子列表為例說明,顯示某板塊的帖子先查詢本板塊的帖子總數(shù),使用變量$pcont=mysql_num_rows()獲得查詢總數(shù),設(shè)變量$P 為每頁顯示條數(shù),$page_c 為總頁數(shù)等于$pcont/$p 在$pcont/$p 的余數(shù)大于等于 1 時(shí)$page_c=$pcont/$p 等于 0 時(shí)$page_c=$pcont/$p +1。目前已得到總頁數(shù)和每頁顯示條數(shù),接下來是顯示其中頁數(shù)為$page 的頁面,從何處開始查詢,因?yàn)樵?MySQL 時(shí)可以從倒數(shù)第某條開始查詢幾條,接下來就
49、確定查詢開始的位置$onset,$onset=($page-1)*$p+1,因此查詢語句為:select * from 表名 where 查詢條件 limit $onset,$p。接下來是顯示分頁結(jié)果,要求頁數(shù)為第一頁時(shí)不顯示“前一頁” ,當(dāng)前頁數(shù)沒有超鏈接,頁數(shù)為最后一頁時(shí)不顯示“下一頁” 。實(shí)現(xiàn)方法:判斷當(dāng)前頁是否為第一頁,是,則輸出空內(nèi)容,否,則輸出“前一頁” ,是否顯示“下一頁”同上,在“前一頁”與“下一頁”之間輸出所有頁數(shù),使用 for 循環(huán)輸出,在循環(huán)內(nèi)部做判斷欲輸出的頁數(shù)是否等于當(dāng)前頁數(shù),是,則只輸出頁數(shù),否,則輸出帶超鏈接的頁數(shù),并在頁面文件開始處獲取通過地址欄傳遞過來的頁數(shù),
50、就可以查詢輸出了。示例代碼:0)$c_page=(int)($count/$p)+1;/總頁數(shù)+1else$c_page=(int)($count/$p);/總頁數(shù)+0if($page=1)$onset=0; /查詢起始(倒數(shù))位置17elseif($page!=1) $onset=$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=_b
51、lank href= a target=_blank href= TOP 1) /檢查是否是第一頁 不是則顯示$early=$page-1;echo 前一頁 /鏈接到 re 并傳遞頁數(shù) page/是每一頁則不顯示“第一頁”for($i=1;$i=$c_page;$i+)if($i!=$page)/判斷當(dāng)傳遞的頁數(shù)!=當(dāng)前要顯示數(shù)字時(shí)輸出頁數(shù)鏈接echo .$i. /鏈接到 re 并傳遞頁數(shù) pageelse
52、if($i=$page)echo $page; /判斷當(dāng)傳遞的頁數(shù)=當(dāng)前要顯示數(shù)字時(shí)輸出頁數(shù)(無鏈接)/檢查是否是最后一頁18if ($page$c_page) /不是最后一頁是顯示 “下一頁” 否則不顯示$lastp=$page+1;echo 下一頁; echo 當(dāng)前第.$page.頁 總共.$c_page.頁;?(2 2)連接數(shù)據(jù)庫重復(fù)代碼處理)連接數(shù)據(jù)庫重復(fù)代碼處理: 連接數(shù)據(jù)庫的語句雖然簡單但重復(fù)很多次,一旦修改數(shù)據(jù)庫信息則會(huì)出現(xiàn)修改很麻煩,為此要建立一個(gè)真心誠專門連接數(shù)據(jù)庫的信息,而在其他頁面加上一句引用這個(gè)頁面的語句就行了,一旦數(shù)據(jù)庫連接信息變動(dòng)了,只要修改一下那個(gè)專門的頁面就行了
53、。示例代碼:Sqlpwd.php 文件其他頁面調(diào)用:(3 3)后臺(tái)管理安全)后臺(tái)管理安全: 在后臺(tái)的每個(gè)頁面(除了后臺(tái)登錄頁面)的之外加上些 PHP 語句作判斷管理員是否已登錄,是,則顯示頁面內(nèi)容,否,則返回后臺(tái)登錄頁面。這樣非管理員用戶是無法登錄后臺(tái)(無密碼登錄) ,而在前臺(tái)首頁進(jìn)入后臺(tái)的入口,而只有“admin”用戶登錄時(shí)才會(huì)顯示后臺(tái)登錄鏈接,除了這個(gè)方法進(jìn)入后臺(tái)登錄頁面外,還可以直接輸入網(wǎng)址進(jìn)入后臺(tái)登錄頁面,但必須有管理權(quán)限。示例代碼:19(4 4)(回)帖子顯示格式:)(回)帖子顯示格式:發(fā)帖回帖時(shí)都是用的文本輸入框,然而讀取用文本輸入框?qū)懭氲臄?shù)據(jù)時(shí)直接顯示在網(wǎng)頁上是沒有格式的,沒有換
54、行基本的段落都沒有了,為解決這個(gè)問題,在輸出時(shí)也用文本框但要設(shè)置其屬性為自動(dòng)變長而沒有滾動(dòng)條,這樣就有了輸入時(shí)的段落,也會(huì)看起來就像是直接輸出到網(wǎng)頁中又有段落修飾過的樣子。 (5 5) 網(wǎng)站版權(quán)信息設(shè)置:網(wǎng)站版權(quán)信息設(shè)置:因網(wǎng)站每個(gè)頁面都要顯示同樣的版權(quán)信息,且站主可以在以后能修改看自定義的版權(quán)信息,這樣就要用到重復(fù)代碼的重復(fù)調(diào)用和可修改。解決辦法就是版權(quán)信息的 HTML 代碼是從數(shù)據(jù)庫里讀取的,只用在每個(gè)頁面加上 PHP 代碼連接數(shù)據(jù)庫并輸出版權(quán)信息 HTML 代碼,在后臺(tái)有版權(quán)信息的修改功能,站主可以看以自定義欲顯示的內(nèi)容,但必須用 HTML 代碼才行。3.63.6 網(wǎng)站文件結(jié)構(gòu)網(wǎng)站文件結(jié)
55、構(gòu)images(圖片文件夾)back(后臺(tái)文件夾)| backlogon.php(后臺(tái)登錄頁面)| changepwd.php(修改后臺(tái)管理員密碼)| delnot.php(刪除公告)| delplate.php(刪除板塊)| delpost.php(刪除帖子)| delre.php(刪除下載資源)| delreply.php(刪除回復(fù))| deluse.php(刪除用戶)| edinot.php(編輯公告)| ediplate.php(編輯板塊)20| edipost.php(編輯帖子)| edire.php(編輯下載資源信息)| ediuse.php(編輯用戶信息)| ediwebinfo
56、.php(編輯網(wǎng)站信息)| index.php(后臺(tái)首頁)| left.php(左側(cè)管理面板)| main.php(后臺(tái)管理歡迎頁面)| m_notices.php(管理公告)| m_plate.php(管理板塊)| m_post.php(管理帖子)| m_post_re.php(管理帖子和回復(fù))| m_re.php(管理下載資源)| m_user.php(管理用戶)| m_webinfo.php(管理網(wǎng)站信息)| sqlpwd.php(MySQL 連接信息)Connections()| mysql.php(MySQL 信息)Scripts()| AC_RunActiveContent.js(
57、)SpryAssets()| SpryTabbedPanels.css()| SpryTabbedPanels.js()| SpryValidationTextField.css()| SpryValidationTextField.js()index.php(BBS 首頁)logout.php(退出處理)mm_menu.js()m_term_info.php(網(wǎng)站制作人信息)newpost.php(發(fā)表新帖)newusers.php(新用戶注冊)notice.php(公告)post.php(帖子及回復(fù))posts.php(帖子列表)re.php(下載資源表)selectpost.php(搜索
58、帖子)sqlpwd.xml(MySQL 信息)uselogin.php(用戶登錄處理程序)usrinfo.php(用戶個(gè)人信息)213.73.7 論壇設(shè)計(jì)存在問題論壇設(shè)計(jì)存在問題1)管理員對用戶設(shè)置權(quán)限還未實(shí)現(xiàn)2)管理員對帖子指定精華也沒實(shí)現(xiàn)3)注冊用戶現(xiàn)在不需要經(jīng)過管理員審批4)個(gè)人信息還比較簡單5)注冊擁用戶陸后還無法對自己發(fā)表過的帖子進(jìn)行管理(修改、刪除)6)上傳圖片功能還無法實(shí)現(xiàn),用戶無法上傳頭像、帖圖,管理員無法上傳 LOGO等圖片7)發(fā)帖和加帖內(nèi)容還只能由純文本形式出現(xiàn),還不能加入圖片、音樂、附件之類8)網(wǎng)站總體的界面還沒有進(jìn)一步美化、規(guī)劃,看起來布局不是很合理也不美觀9)論壇的安全性有待測試和完善224 4總結(jié)總結(jié)23參考文獻(xiàn)參考文獻(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: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案