




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、分類號:TP315 U D C:D10621-408-(20XX) 5747-0密 級:公 開 編 號:20XX215060成都信息工程學院學位論文論文格式化系統前臺的設計與實現論文作者姓名:肖 磊申請學位專業:網絡工程申請學位類別:工學學士指導教師姓名(職稱):高宏宇(講師)論文提交日期:20XX年06月10日第2頁 共26論文格式化系統前臺的設計與實現摘 要該系統是一個基于web的軟件。該系統的客戶端采用javascript和php作為平臺的開發語言,Mysql作為后臺數據庫,Apache2.0作為web服務器。該系統用javascrit腳本在客戶端封裝表單里面的數據并將這些數據封裝成xm
2、l字符串,然后發送這個字符串給服務器。在接收到送服務器端發送來的xml之后,系統用javascript腳本解析xml然后填寫到表單中去。他們可以按時的發表自己的論文。系統也提供學生和導師的論文交互平臺,論文交互平臺采用了php腳本編寫了數據庫操作類和常用函數類,然后用這些類創建新的對象來使用對象中的方法,比如數據庫連接的方法,數據庫查詢方法,上傳論文的方法等。并用了Apache的rewrite模塊來重定向請求的url。這篇論文還介紹了Smart template系統和它扮演的角色,還用一個例子來描述了怎么使用它來將php腳本和html代碼分離。論文中還解釋了在系統開發期間遇到的一些問題,比如修
3、改mysql數據庫密碼的問題和其他的問題。關鍵詞:javascript;xml;php;mysql;Apache;論文The Essay Formatting SystemFront-side Design and ImplementationAbstractThis system is a software which is based on web. The front-side of this system uses javascript and php to take the onstage development language. Mysql makes the backstage
4、 database.Apache2.0 makes the web server. This system uses javascript script on fornt-side to get the froms datas and encapsulate these datas to a xml string, then send the string to server. After received the xml data from server, system uses javascript script to parse the data then fill it into th
5、e form. This system also provides a essay exchange stage. The essay exchange stage uses php script to write database operation class and common functions class then uses these classes to create new objects to execute the functions of the object, such as database connect function, database query func
6、tion, upload essay function and so on. And uses the rewrite module of Apache to redirect the request url. This essay also introduces the Smart template system, the role played by it and give an example to describe how to use it to separate php script from html code. In this essay also explain some p
7、roblems during development system such as modify the password of mysql database and other problems. Key words: javascript; xml; php; mysql; Apache; essay目 錄論文總頁數:27頁1引言12系統需求12.1系統需求概述12.2系統詳細需求分析12.2.1基于web開發12.2.2格式化文檔22.2.3前臺需求22.2.4性能需求23方案選擇23.1方案比較23.1.1系統模式比較23.1.2程序語言選擇與比較33.1.3數據庫的選擇43.1.4開
8、發工具的選擇53.2環境搭建53.2.1安裝Apache web server53.2.2安裝PHP53.2.3安裝Mysql54總體設計64.1系統架構設計64.1.1網絡架構64.1.2系統邏輯服務器64.2總體結構74.3系統工作流程圖75實現和編碼85.1數據庫設計85.2數據庫表結構設計95.3系統程序實現125.3.1前臺javascript程序工作流程125.3.2首頁的設計與javascript封裝XML135.3.3通過XMLHttpRequest對象發送XML145.3.4Smart template簡介155.3.5Smart template在本系統中的運用155.3.
9、6系統數據庫封裝與操作155.3.7系統常用函數封裝設計175.3.8Apache Rewrite功能在系統中的運用176特殊問題解決辦法196.1mysql數據庫密碼修改問題196.2php自動轉義問題197測試與結果分析197.1運行模塊舉例197.1.1前臺上傳記錄模塊舉例197.1.2系統管理員模塊舉例207.1.3學生功能模塊舉例217.1.4導師功能模塊舉例227.2測試結果與分析23結 論24參考文獻25致 謝26聲 明271 引言在人們繁忙的工作環境中,很多資料文件都要形成規范化的文檔便于分類和存放,信息化的社會已經將以前手工抄寫文檔全部用電腦辦公平臺提供的統一的文檔編輯軟件所
10、取代,當然所編寫的文檔的格式也是統一化的,包括文檔中內容的字體,字號,標記,頁碼等等都是統一的。比如美國微軟公司的Word文檔格式,這種格式已經成為了世界的一種標準,全世界通用,再比如Adobe公司的PDF文檔格式,也是一種世界標準,是人們常用的一種文檔格式。然而在日常的辦公中,人們需要在文檔編輯軟件中編輯文檔,需要花費大量的時間和精力來編輯文檔的格式,比如字體,字號等等,對于同一類的文檔來說,格式都是規范化好了的,但是文檔編輯器不可能提供每一個規范好了的模板,因為各個地區或者企業他都有自己的規范,人們需要自己去編輯,這樣話就降低了辦公的效率,對于個人和企業來說都是在浪費時間,提高了成本。于是
11、聰明的人開始想辦法解決這個問題,新的軟件由此產生了,涌現出了很多的PDF,Word文檔的轉換軟件,他們很強大,不僅可以將PDF轉換為Word,也可以將Word轉換成PDF格式,有的也可以轉換其他格式的文檔,比如將Html文檔轉化成PDF文檔。考慮到高等學府中教師,學生也要寫論文,而且所寫的論文要保存為特定格式的文檔,保證論文的規范化,為此,我們設計了一套系統專門提供給畢業生將論文轉化為規范的格式,省去大量的論文編輯時間,提高論文發表的效率,降低論文修改的頻率,給同學們帶來巨大的方便。我們將系統定位于B/S模式,主要考慮到系統易用性,客戶機只需要安裝了IE瀏覽器就可以通過訪問網站的形式使用論文格
12、式化系統,只是本系統一大優勢。本系統后臺采用JSP開發,前臺采用php和javascript開發,服務器環境采用windowsNT+Apache Tomcat+Mysql。后臺開發工具使用Eclipse,前臺開發工具使用EditPlus和DreamwearMX。2 系統需求2.1 系統需求概述系統用于輔助大學畢業生畢業論文寫作,給學生提供統一的文檔規范格式化平臺,并且需要一個方便學生和老師溝通的信息化平臺。系統運行在網絡環境,需要具有實用性,易用性和高效性。2.2 系統詳細需求分析2.2.1 基于web開發系統在網絡環境下工作,采用B/S模式進行開發,需支持至少一種主流瀏覽器,系統字符集采用U
13、TF8。2.2.2 格式化文檔用戶提交表單后,后臺需要能生成RTF和PDF文檔,并自動提示用戶下載存。2.2.3 前臺需求1前臺用戶操作簡易且人性化,支持用戶填寫信息的格式驗證,不正確將給出提示;2支持學生、導師注冊,填寫信息驗證,不正確將給出提示,填寫信息完整才可進行提交;3支持學生、導師登錄,填寫信息驗證,不正確將給出提示;4支持學生取回記錄,自動還原到用戶論文填寫表單;5支持學生上傳記錄,自動風裝成xml文件格式發送給服務器;6支持學生上傳論文,只有學生有上傳權限操作,上傳選擇文件,支持文件后綴名有pdf、rtf、doc、docx、rar、zip,并且有上傳文件描述;7支持導師下載查看學
14、生上傳論文,只有導師有權限操作,導師只能查看到自己的所帶學生上傳的論文;8支持導師提出修改意見和評定分數,只有導師有權限操作,意見和分數與學生上傳記錄一一對應;9支持后臺管理,包括后臺管理用戶的管理,學生管理,導師管理,院系管理,上傳論文的管理,資源發布的管理,用戶留言的管理,只有后臺管理員有操作權限,并且后臺管理員可以擁有不同的操作權限,例如可以只能有資源發布權限,具有后臺管理用戶管理權限的管理員可以給不同的管理員分配操作權限。2.2.4 性能需求1安全性,后臺管理設置管理者權限,學生、導師各有各的操作權限;2系統需要易用性和實用性,必定實現關鍵的功能;3能承受大的負荷,選用合適的開發環境,
15、包括web服務器,數據庫和開發語言。3 方案選擇3.1 方案比較3.1.1 系統模式比較目前開發模式主要有C/S結構和B/S結構:C/S結構,即Client/Server(客戶機/服務器)結構,是大家熟知的軟件系統體系結構,通過將任務合理分配到Client端和Server端,降低了系統的通訊開銷,可以充分利用兩端硬件環境的優勢。 B/S結構,即Browser/Server(瀏覽器/服務器)結構,是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現。B/S結構利用不斷成熟和
16、普及的瀏覽器技術實現原來需要復雜專用軟件才能實現的強大功能,并節約了開發成本,是一種全新的軟件系統構造技術。3.1.2 程序語言選擇與比較1、PHP語言概述PHP(Hypertext Preprocessor),它是一個遞歸的縮寫名稱,是一種 HTML 內嵌式的語言 (類似 IIS 上的 ASP)。而 PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 式的新語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。PHP 最初是在公元 1994 年 Rasmus Lerdorf 開始計劃發展。在 1995 年以 Personal Home Page Tools (PHP To
17、ols) 開始對外發表第一個版本PHP 的第三代 與Apache 服務器緊密的結合,并且它幾乎支持所有主流與非主流數據庫,執行效率也提高了很多。PHP 的第四代增加了關Zend 核心引擎技術,整個腳本程序的核心大幅改動,讓程序的執行速度,滿足更快的要求。PHP 的第五代,也就是PHP5,它比PHP4更具有了面向對象的特征,目前php第五代也穩定了。2、PHP與JSP的比較PHP與JSP技術非常相似,兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。并且雙方都能夠為程序員提供組件設計的功能,(PHP使用COM組件、JSP使用Java Bean組件)。兩者都是面向Web
18、服務器端的腳本語言,客戶端瀏覽器不需要任何附加的軟件支持。兩者之間主要的區別:平臺和服務器的選擇PHP本是一個開源項目,它支持的主要操作系統是Unix和Linux,當然隨著PHP的成熟,windows平臺下也可以使用PHP,而且PHP的移植性很好。它所支持的數據庫含蓋了世界幾乎所有流行的數據庫,比如:mysql,oricle等,甚至包括Access。 JSP技術主要運行在操作系統上的一個Java Virtual Machine虛擬機器上,因此,它能夠跨越所有的平臺,而且jsp比php跟適合企業級的開發,它的安全行更好,但jsp并不是一個開源的項目, 隨著php的成熟jsp將面臨著php的挑戰。
19、語法結構Jsp是一種完全面向對象的語言,而php混合了 C、Java、Perl 以及 PHP 式的新語法,所以jsp相對php更為嚴緊,而php則更為自由和靈活。當然兩者都是一種可嵌入HTML的語言。語法的延展性PHP和JSP都是使用標簽和Scripting Language來制作動態WEB網頁,PHP的版本不同具有不同特性,比如PHP5比PHP4更好的支持了面向對象的特征,但不能支持多重繼承,而JSP是一個完全面向對象的語言,它的延展性相對PHP更為優秀。執行性能自從PHP4采用了Zend引擎以來,PHP的執行速度是原來10倍之多,大大提高網頁執行的效率,很多商務網站采用PHP制作來提高贏利
20、能力。而JSP除了在一開始加載的時間會比較久之外,之后的表現就遠遠比ASP的表現來得好。原因在于:JSP在一開始接受到請求時,會產生一份Servlet實體(instance),它會先被暫存在內存中,一般稱之為持續(Persistence), 當再有相同的請求時,這實體會產生一個線程來服務它,如果過了一段時間都不再用到此實體時,Container會自動將其釋放,至于時間的長短,通常都可以在 Container上自行設定。所以兩者各有所長。PHP的執行過程如圖3-1所示:Apache2.0 web serverIE瀏覽器(其他Browser)Php解釋器圖3-1 php的執行過程從以上的比較中可以
21、看出,php比jsp更適小中級別的web程序開發,由于我們的系統的需求并不是很復雜和龐大,而且php完全滿足系統的要求,綜合考慮下選擇了的php作為開發語言。3.1.3 數據庫的選擇本系統的數據庫選用的是mysql。首先,它提供了以Web標準為基礎的擴展數據庫編程功能,可支持Web的分析,對數據的Web訪問。其次,它具有良好的移植性,可以移植到幾乎所有平臺。最后,它是免費的,極大的節約了成本。3.1.4 開發工具的選擇EditPlus 是phper的經常用到的工具,它很小巧,速度很快,可以高效率進行程序的編寫,由于其他的更強大的編輯器提供了很多方便的功能不便于對PHP語言的學習,一旦脫離了強大
22、的編輯器就不能編寫PHP程序,所以我選用了EditPlus2.0。前臺頁面設計,使用了 Dreamweaver MX 20XX。3.2 環境搭建3.2.1 安裝Apache web server選擇Apache2.0.55版本,安裝路徑為:E: Apache GroupApache2,安裝完成后進行以下的配置:先打開E: Apache GroupApache2conf httpd.conf文件,找到DocumentRoot,在這里設置web程序所放的地方,我把它設置為E:www,以后我的所有web文件都放在這個目錄下面;然后找到DirectoryIndex項,在后面添加index.php,這是
23、將index,php設置為默認的首頁;添加AddType application/x-httpd-php .php這一項,這是將php與apache進行整合,apache得到請求會通知PHP執行程序;添加PHPIniDir C:/php4/php.ini,這里我用的是php4,php.ini是php的配置文件,等會談php的安裝的時候說明;添加LoadModule php4_module C:/php4/php4apache2.dll,這也是整合php和apache重要的一項配置;找到LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的”
24、#”號,找到AllowOverride None,把None改成All開啟rewrite模塊。3.2.2 安裝PHP將下載的PHP4包解壓到C:php4下面,重命名php.ini_dist為php.ini,打開php.ini進行配置:找到extension_dir,將之改為c:/php4/extensions,這個目錄下是php要使用的dll,找到extension=php_mbstring.dll等,去掉前面的”;”號加載需要的動態鏈接庫。找到shorttarg,設置為ON,防止php中“”這種寫法被阻止。3.2.3 安裝Mysql去 下載windows下的二進制安
25、裝包,下載完成后默認安裝,但需要注意的是在細節配置中將mysql的默認字符集設置為utf8。4 總體設計4.1 系統架構設計4.1.1 網絡架構整個網絡架構體系如下圖:圖4-1 論文格式化系統(前臺)網絡構架圖由圖4-1可以看到,一臺web服務器,一臺mysql數據庫服務器,局域網客戶機和遠程客戶機組成了系統的B/S結構,他們必須在網絡的基礎上進行通信。客戶機通過瀏覽器訪問web服務器,web服務器安裝配置了兩個web服務器,一是個tomcat apache,一個是apache服務器,前者端口為80,后者端口為8080。web服務器端執行瀏覽器發來的請求,然后返回給瀏覽器信息,數據庫的存儲服務
26、器端的腳本會通過請求的不同存如mysql和寫到服務器端的xml文件中。4.1.2 系統邏輯服務器在邏輯上可以將使用的服務器分為兩類,每類服務器均有不同的功能:Web服務器:該服務器進行Web發布,提供用于普通用戶業務工作的操作界面(網頁),亦將用戶的操作參數傳遞回應用服務器,同時亦將結果通過網頁的方式返回到用戶前端。數據庫服務器:該服務器上安裝了mysql數據庫系統,數據庫系統的設計主要針對該服務器。在此存放著所有的原始數據及用于系統的其它結構數據,所有的用戶及管理者對數據的錄入、修改最終都將保存在此。4.2 總體結構論文格式化系統(前臺)主要功能模塊結構示意圖如下:圖4-2 論文格式化系統(
27、前臺)功能模塊結構圖由圖4-2圖可以看到論文格式化系統(前臺)要做的功能模塊。其中在所有的后臺管理子模塊中,都包括添加,編輯,刪除的操作。記錄封裝,記錄發送,記錄還原模塊完全采用前臺javascript程序在客戶端進行處理。4.3 系統工作流程圖系統處理流程圖如下所示:圖4-3 系統工作流程圖以上圖4-3是系統的工作流程圖,通過該圖可以清楚系統的工作流程是怎么進行的。5 實現和編碼5.1 數據庫設計圖5-1 論文交互平臺數據結構圖由圖5-1可以看到有6張表,圖中顯示了6張表的結構關系。在php制作的論文上傳,打分平臺中,有三種不同的用戶存在,一個是系統管理者,一個是學生,一個導師,三種用戶有三
28、種權限,所以需要系統管理者表user,學生表student,導師表 teacher。系統需要上傳論文,所以需要有存放論文信息的論文表tutorials。另外需要pm表作為短消息表。要有院系管理表xicate。要有導師消息發布表teachermsg。這6張表互相關聯,其中一個表的變化將影響其他表的變化。5.2 數據庫表結構設計確定了數據庫的邏輯關系和數據結構之后,進一步將以上所述的八個數據表由概念結構轉化為數據庫系統所支持的實際數據模型,也就是數據庫的邏輯結構。表51所示為系統管理者信息表(user),記錄了用戶的信息。表51 user 表字段類型Null默認描述Id(主鍵)int(3)否管理員
29、編號namevarchar(32)否名稱passwordvarchar(32)否密碼can_settingtinyint(1)否0系統設置權限can_articletinyint(1)否0新聞發布權限can_guesttinyint(1)是0管理留言板權限can_usertinyint(1)否0管理系統管理員權限can_resorcetinyint(1)是0發布資源權限can_xicatetinyint(1)否0管理學院系別權限表52所示為系統設置表(settings),用于系統變量的設置:表52 settings 表字段類型Null默認描述id(主鍵)int(5)否設置項編號varnamev
30、archar(255)否設置項名稱settingvarchar(255)否設置項描述valuetext否設置項值typevarchar(20XX否設置項顯示類型表53所示為學生表(student),用于存放學生的信息:表53 student 表字段類型Null默認描述id(主鍵)int(11)否學生編號tidint(11)否導師編號namevarchar(64)否學生真實姓名lognamevarchar(34)否學生登陸名passwordvarchar(64)否密碼emailvarchar(64)否郵件callvarchar(16)否TELcidint(11)否所屬系編號numbervarch
31、ar(30)否學號titlevarchar(100)否論文題目表54所示為導師表(teacher),用于存放導師的信息:表54 teacher 表字段類型Null默認描述id(主鍵)int(11)否導師編號namevarchar(64)否導師真實姓名lognamevarchar(34)否導師登陸名passwordvarchar(64)否密碼emailvarchar(64)否郵件callvarchar(15)否TELcidint(11)否所屬系編號表55所示為論文表(tutorials),用于存放上傳論文的信息:表55 tutorials 表字段類型Null默認描述id(主鍵)int(11)否論
32、文編號sidint(11)否學生編號tidint(11)否導師編號titlevarchar(64)否論文題目descriptiontext否描述linkvarchar(20XX是文件名commenttext是導師意見markvarchar(6)否未打分本次論文分數timeint(11)否上傳時間表56所示為院系表(xicate),用于設置學院系別信息:表56 xicate 表字段類型Null默認描述id(主鍵)int(11)否系編號namevarchar(64)否系名稱表57所示為統計在線表(session),用于統計在線人數:表57 session 表字段類型Null默認描述ipvarcha
33、r(15)否用戶ipAdressvisittimevarchar(20XX否用戶訪問時間表58所示為導師發布消息表(teachermsg),用于存放導師發布的通知:表58 teachermsg 表字段類型Null默認描述id(主鍵)int(11)否消息編號tidint(11)否導師編號namevarchar(34)否導師名字titlevarchar(64)否標題contenttext否內容timeint(12)否發布時間表59所示為短消息(pm),用于存放學生和導師發送的短消息:表59 pm 表字段類型Null默認描述id(主鍵)int(11)否消息編號sidint(11)否學生編號tidin
34、t(11)否導師編號sendnamevarchar(64)否發送者姓名resvnamevarchar(64)否接收者姓名titlevarchar(43)否標題contenttext否內容sendtinyint(1)否1發送readedtinyint(1)否0閱讀toteachertinyint(1)否1發給導師timeint(11)否0發送時間表510所示為資源表(resorce),用于存放系統管理員發布的論文資源:表510 resorce 表字段類型Null默認描述id(主鍵)int(11)否資源編號titlevarchar(64)否資源標題descriptiontext否資源描述linkv
35、archar(64)否資源文件名timeint(11)否發布時間表511所示為新聞表(article),用于存放系統管理員發布的新聞:表511 article 表字段類型Null默認id(主鍵)int(11)否新聞編號titlevarchar(64)否新聞標題contenttext否新聞內容timeint(11)否發布時間表512所示為留言表(guestbook),用于存放訪客留言信息:表512 guestbook 表字段類型Null默認id(主鍵)int(10)否留言者編號namevarchar(64)否留言者名稱emailtext否留言者郵件contenttext否留言內容timeint(
36、10)否留言時間hiddentinyint(1)否是否隱藏留言5.3 系統程序實現5.3.1 前臺javascript程序工作流程下圖為工作流程圖:圖5-2前臺javascript工作流程5.3.2 首頁的設計與javascript封裝XML圖5-3首頁由圖7可以看到首頁是一張大型的表單,用于用戶填寫論文的相關信息以及內容,然后提交給后臺保存為xml文件。這里就需要編寫javascript腳本程序操作頁面表單,將用戶填寫的信息封裝成xml格式的。通過對表單的分析,找出需要操作的對象,主要是要取出標簽和標簽中內容,一一對應封裝到xml里面。這里主要通過兩個函數給予實現,一個是function X
37、MLWriter(),一個是function xmlEncap(),XMLWriter()為xmlEncap()提供了封裝xml的操作,而xmlEncap()是要取出不同的對象調用XMLWriter()中的方法。5.3.3 通過XMLHttpRequest對象發送XML這是Ajax技術運用的一部分。前臺通過function createXMLHttpRequest創建XMLHttpRequest對象,代碼如下:function createXMLHttpRequest()var XMLHttpReg=false;if(window.XMLHttpRequest)XMLHttpReq=new X
38、MLHttpRequest();else if(window.ActiveXObject)/IEtryXMLHttpReq=new ActiveXObject(Msxm12,XMLHTTP);catch(e)tryXMLHttpReq=new ActiveXObject(Microsoft.XMLHTTP);catch(e)window.alert(e.message);return XMLHttpReq;圖5-4創建XMLHttpRequest對象代碼對于有的瀏覽器不支持XMLHttpRequest對象,但是提供了ActiveX控件,考慮到兼容性程序支持了不同瀏覽器創建XMLHttpRequ
39、est對象。創建好對象后便可在upload方法中使用對象的方法進行與服務器端的通信。主要方法使用情況如下:1設置傳送方式:XMLHttpReq.open(post, action,true); 2. XMLHttpReq.setRequestHeader(Content-Type,text/xml)設置http協議header類型;3發送XML: XMLHttpReq.send(xml);4得到readyState和status屬性的值,當XMLHttpReq.readyState 為4 表示接收服務器響應完成,XMLHttpReq.status為20XX示接收到的信息沒有異常。5.3.4 S
40、mart template簡介Smart template模板引擎是國外一個開源項目,它由php語言編寫,主要用于將php代碼與html網頁代碼進行分離,讓程序員可從煩瑣的程序嵌套工作中解脫出來,并且提高網頁運行的速度,提高開發的效率。5.3.5 Smart template在本系統中的運用首先到系統的配置文件中進行配置,配置如下圖所示:$_CONFIGtemplate_dir=ROOT_PATH.templates/;$_CONFIGsmarttemplate_compiled=ROOT_PATH.templates_c/;$_CONFIGsmarttemplate_cache=ROOT_P
41、ATH.templates_c/;$_CONFIGcache_lifetime=600;圖5-5 smart template在系統中的配置配置說明:1$_CONFIGtemplate_dir是模板文件存放的目錄;2$_CONFIGsmarttemplate_compiled是模板被smart template編譯后存放的目錄;3$_CONFIGsmarttemplate_cache是模板緩存文件存放的目錄;4$_CONFIGcache_lifetime是緩存文件的生存時間具體在程序中的使用方法如下:$page = new SmartTemplate( template.html );$pag
42、e-assign( TITLE, TemplateDemo - Userlist );$page-assign( user, DB_read_all( select * from ris_user ) );$page-output();5.3.6 系統數據庫封裝與操作系統中數據庫封裝與操作共有兩個類,一個是db_driver,一個是db_main,其中db_driver繼承了db_main。他們封裝了數據庫的連接和數據庫查詢,插入,更新記錄的操作,并且提供了通過數組形式編寫sql語句的方法。在使用前應該配置好系統的變量,打開config.php配置如下表:$INFOsql_driver=mys
43、ql;$INFOsql_host=localhost;$INFOsql_database=graduate1;$INFOsql_user=root;$INFOsql_pass=;$INFOsql_tbl_prefix=;圖5-6 配置數據庫操作系統變量配置說明:1$INFOsql_driver說明采用數據庫類型為mysql;2$INFOsql_host是數據庫在網絡中的Adress;3$INFOsql_database是要操作的數據庫名;4$INFOsql_user是數據庫用戶;5$INFOsql_pass是數據庫用戶的密碼;6$INFOsql_tbl_prefix是數據庫中表的前綴。具體在程
44、序中的使用方法如下圖所示:$db = new db_driver();Update: $db-do_update( table, array( field = value, field2 = value2 ), id=1 ); Insert:$db-do_insert( table, array( field = value, field2 = value2 ) ); Delete:$db-build_and_exec_query( array( delete = table, where = id=1 ) ); Select: $db-build_query( array( select =
45、 *, from = table, where = id=2 and mid=1, order = date DESC, limit = array( 0, 30 ) ) ); $db-exec_query();while( $row = $db-fetch_row() ) . 圖5-7 數據庫封裝的常用操作方法5.3.7 系統常用函數封裝設計類名ConvterSystem,里面封裝了分頁方法,生成驗證碼的方法,去掉html代碼的方法,截取字符串函數。管理員登陸頁面admin_login.html中,顯示生成的驗證碼圖片,在admin.php中初始化類ConvterSystem,然后在使用Co
46、nvterSystem的方法:show_gd_img($number),其中$number是用mt_rand函數隨即產生的,這樣就可以生成一張帶有驗證碼的圖片。在分頁的操作中,PageLinkR方法提供了鏈接的生成,需要先對數據庫表進行查詢得到記錄的總數,然后設置好每頁顯示的記錄數,算出一共的頁數,再對表進行limit查詢,其中limit從第幾個記錄開始是從URL傳過來的。5.3.8 Apache Rewrite功能在系統中的運用本系統用到rewrite功能,在環境配置的時候就開啟了apache的rewrite模塊。Rewrite規則的編寫在.htaccess文件中。所有規則編寫如下圖所示:E
47、rrorDocument 404 :8080/biyeRewriteEngine onRewriteRule index.html$ index.phpRewriteRule submit.html$ submit.phpRewriteRule xsignup.html$ xsignup.phpRewriteRule tsignup.html$ tsignup.phpRewriteRule login.html$ login.phpRewriteRule myupload.html$ myupload.php RewriteRule logout.html$ lo
48、gout.phpRewriteRule checkstudent.html$ checkstudent.phpRewriteRule checktutorials.html$ checktutorials.php RewriteRulemark_suggest_(0-9+).html$edit_tutorials.php?tuid=$1&action=markRewriteRule mark_comment.html$ mark_comment.php RewriteRule guestbook.html$ guestbook.php RewriteRule resorce.html$ res
49、orce.php RewriteRule search.html$ search.php RewriteRule news/list/(0-9+).html$ news.php?&st=$1RewriteRule news_(0-9+).html$ news.php?newsid=$1 RewriteRule resorce_(0-9+).html$ resorce.php?st=$1RewriteRule news.html$ news.php RewriteRuledelete_tutorials_(0-9+).html$edit_tutorials.php?tuid=$1&action=
50、delRewriteRule sprofile.html$ sprofile.php RewriteRule tprofile.html$ tprofile.php RewriteRule ssendmsg.html$ ssendmsg.php RewriteRule tsendmsg.html$ tsendmsg.php RewriteRule tbacksend.html$ tsendback.php RewriteRule sbacksend.html$ ssendback.php RewriteRule tcheckmsg.html$ tcheckmsg.php RewriteRule
51、 scheckmsg.html$ scheckmsg.php RewriteRule tsendback_(0-9+).html$ tsendback.php?senderid=$1RewriteRule ssendback_(0-9+).html$ ssendback.php?senderid=$1RewriteRule tdelmsg_(0-9+).html$ tdelmsg.php?mid=$1RewriteRule sdelmsg_(0-9+).html$ sdelmsg.php?mid=$1圖5-8 系統所用到的rewrite規則Rewrite規則就是通過編寫正則表達式,將匹配的ur
52、l重新定向到要執行的php腳本程序,這樣可以讓用戶看不到訪問的是哪個php腳本程序,看到都是.html后綴的url,可以防止惡意用戶盜取鏈接。其中第一行的意思是當遇到404錯誤的時候頁面將自動跳轉到:8080/biye。6 特殊問題解決辦法本系統在設計和開發過程中,也遇到了不少的問題,就其中較特殊問題分析及解決方案描述如下:6.1 mysql數據庫密碼修改問題在開發過程中,有時候會重新安裝mysql數據庫,有時候也會去更改mysql的密碼。這里就存在一個mysql的密碼修改的問題。Mysql的密碼修改有幾種方式,我選用的是在root帳戶下用sql語句進行修改,但是修改后系統無法與數據庫連接,用flu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 轉簽門面合同協議
- 砼原合同補充協議
- 挖機租聘合同協議
- 祛痘包治合同協議
- 項目遷移合同協議
- 武術合同協議模板
- 高級衛生專業技術資格-副高級(兒科護理)真題庫-29
- 河南省登封市外國語中學2025屆高三下學期第二次質量測試物理試題
- 課題申報書:基于數字化的課堂教學減負增效研究與實踐
- 課題申報書:基于鴻蒙系統的車聯網智能化發展研究
- 2025年山東濰坊市再擔保集團股份限公司社會招聘11人高頻重點提升(共500題)附帶答案詳解
- 2025年新勞動合同范本
- 瓶裝液化氣送氣工培訓
- 中醫方劑學測試題(含答案)
- 【課件】中職生職業生涯規劃
- 2023年秋江蘇開放大學公共部門人力資源管理綜合大作業
- 《實驗革蘭氏染色法》課件
- 零星維修工程 投標方案(技術方案)
- 風電制氫制甲醇一體化示范制氫制甲醇項目可行性研究報告寫作模板-申批立項
- 2024年教科版(廣州版)英語五年級上冊期中模擬測試卷(無答案)
- 2024年人力資源行業變革:人工智能在招聘中的應用
評論
0/150
提交評論