畢業(yè)設(shè)計(jì)( 信息)管理系統(tǒng)_第1頁
畢業(yè)設(shè)計(jì)( 信息)管理系統(tǒng)_第2頁
畢業(yè)設(shè)計(jì)( 信息)管理系統(tǒng)_第3頁
畢業(yè)設(shè)計(jì)( 信息)管理系統(tǒng)_第4頁
畢業(yè)設(shè)計(jì)( 信息)管理系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

分類號(hào):TP3學(xué)校代碼:11460學(xué)號(hào):05413206南京曉莊學(xué)院本科生畢業(yè)論文

畢業(yè)設(shè)計(jì)(論文)信息管理系統(tǒng)InformationManagementSystemofGraduationDesign(Thesis)所在院(系):信息技術(shù)學(xué)院學(xué)生: 沙亞金指導(dǎo)教師:謝靜研究起止日期:二○○八年十二月至二○○九年五月二○○九年五月

學(xué)位論文獨(dú)創(chuàng)性聲明本人鄭重聲明:堅(jiān)持以“求實(shí)、創(chuàng)新”的科學(xué)精神從事研究工作。本論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作和取得的研究成果。本論文中除引文外,所有實(shí)驗(yàn)、數(shù)據(jù)和有關(guān)材料均是真實(shí)的。本論文中除引文和致謝的內(nèi)容外,不包含其他人或其它機(jī)構(gòu)已經(jīng)發(fā)表或撰寫過的研究成果。其他同志對(duì)本研究所做的貢獻(xiàn)均已在論文中作了聲明并表示了謝意。作者簽名:日期:年月

摘要21世紀(jì)是信息技術(shù)的社會(huì),特別是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)。多媒體技術(shù)和信息高速公路的空前發(fā)展,已對(duì)社會(huì)的經(jīng)濟(jì)、文化、教育等產(chǎn)生深遠(yuǎn)影響。當(dāng)前,各學(xué)校從提高學(xué)校辦學(xué)效率和增強(qiáng)學(xué)生信息獲取與處理能力的培養(yǎng)方面考慮加大校園網(wǎng)絡(luò)建設(shè),隨后基于校園網(wǎng)的應(yīng)用和管理系統(tǒng)的開發(fā)也開始蓬勃發(fā)展,并發(fā)揮著巨大的作用,校園數(shù)字化的軟件設(shè)施也越來越完善。畢業(yè)設(shè)計(jì)(論文)作為高校教育工作的重要組成部分,在網(wǎng)絡(luò)化、數(shù)字化方面卻進(jìn)展的非常緩慢,甚至有許多院校至今還延用著以班級(jí)為單位來報(bào)送選題信息的選題方式。畢業(yè)設(shè)計(jì)(論文)選題工作的網(wǎng)絡(luò)化有著非常重要的意義,它不僅實(shí)現(xiàn)了時(shí)間和人力上的節(jié)省,同時(shí)也是校園數(shù)字化的重要階段,選題系統(tǒng)網(wǎng)絡(luò)化的意義旨在給老師、學(xué)生提供一個(gè)無時(shí)間、無地域限制的虛擬空間,并且將之前靠手工操作完成的任務(wù)無縫的轉(zhuǎn)移到網(wǎng)絡(luò)平臺(tái)上完成。關(guān)鍵詞:畢業(yè)設(shè)計(jì)(論文)信息管理系統(tǒng);校園數(shù)字化;在線選題系統(tǒng)

AbstractAtpresent,collegesanduniversitiesareconsideringstrengtheningtheconstructionofcampusnetworksoastoimprovetheefficiencyofrunningschoolsandintensifyinformationacquisitionandhandlingability.Withtheapplicationofcampusnetworkandthedevelopmentofmanagementsystem,thesoftwareinfrastructureforcampusdigitalizationwillbeimprovingbetterandbetter.Thecampusnetworkwillplayagreatrolewithboomingdevelopment.GraduationDesign(Thesis),animportantpartofuniversityeducation,isratherunprogressiveinnetworkinganddigitalization.Somecollegesanduniversitiesstillmaintaintheprimarywayoftitleselectionbysubmittingtopicsinclasses.ItisofvitalimportancetoimplementnetworkinthetitleselectionofGraduationDesign(Thesis),aimingtoofferteachersandstudentsavirtualspacewithouttimeanddistrictlimitsothattheycanfulfilltheirtasksonthenetworkeasilyandconveniently.Itwillbeasignificantpartintheprocessofcampusdigitalizationwiththeeffectofsavingtimeandmanpower.Keywords:InformationManagementSystemofGraduationDesign(Thesis);campusdigitalization;Onlineselectionsystem

目錄第一章緒論 11.1研究背景 11.2論文所做的工作 21.2.1前期工作 21.2.2學(xué)生模塊分析 21.2.3教師模塊分析 21.2.4管理模塊分析 31.3本文的組織結(jié)構(gòu) 3第二章系統(tǒng)開發(fā)環(huán)境介紹 42.1Apache簡(jiǎn)介 42.2MySQL簡(jiǎn)介 42.3PHP簡(jiǎn)介 52.4系統(tǒng)運(yùn)行環(huán)境安裝 72.4.1安裝ApacheHTTPServer服務(wù) 72.4.2安裝MySQL數(shù)據(jù)庫(kù) 72.4.3安裝libxml環(huán)境 82.4.4安裝PHP開發(fā)環(huán)境 92.4.5XDebug環(huán)境安裝 92.5Apache服務(wù)配置 10第三章系統(tǒng)分析與設(shè)計(jì) 123.1需求分析 123.2總體設(shè)計(jì) 123.2.1學(xué)生模塊 133.2.2教師模塊 133.2.3管理員模塊 143.3系統(tǒng)流程圖 153.4數(shù)據(jù)庫(kù)設(shè)計(jì) 163.4.1數(shù)據(jù)安全性說明 163.4.2系統(tǒng)實(shí)體-關(guān)系圖(E-R圖) 173.4.3數(shù)據(jù)庫(kù)及數(shù)據(jù)表設(shè)計(jì) 17第四章系統(tǒng)功能的具體實(shí)現(xiàn) 224.1系統(tǒng)界面設(shè)計(jì) 224.2程序編碼 264.2.1系統(tǒng)的公共文件(global.php) 264.2.2數(shù)據(jù)庫(kù)操作類(class/db.php) 274.2.3分頁顯示類(class/page.php) 274.2.4用戶登錄時(shí)的AJAX技術(shù) 284.2.5輸入提示功能的實(shí)現(xiàn) 294.2.6偽靜態(tài)頁面的實(shí)現(xiàn) 294.2.7管理員數(shù)據(jù)導(dǎo)入的實(shí)現(xiàn) 304.3系統(tǒng)調(diào)試與排錯(cuò) 314.3.1系統(tǒng)顯示亂碼問題 314.3.2并發(fā)訪問控制問題 32第五章總結(jié)與展望 33致謝 34參考文獻(xiàn) 35南京曉莊學(xué)院2009屆本科畢業(yè)論文 -PAGE35- 南京曉莊學(xué)院2009屆本科畢業(yè)論文-PAGE1-第一章緒論1.1研究背景Internet的普及和應(yīng)用使人們的現(xiàn)代生活方式發(fā)生了深刻的變化,學(xué)校總是處于接受新知識(shí)的最前沿地帶。全國(guó)各院校也加快了信息化建設(shè)步伐,并且建立了自己的校園網(wǎng),這為校園數(shù)字化的發(fā)展提供了必要的物質(zhì)基礎(chǔ)。于是針對(duì)校園網(wǎng)的應(yīng)用和管理系統(tǒng)的開發(fā)也開始了蓬勃發(fā)展,并發(fā)揮著巨大的作用,校園數(shù)字化的軟件設(shè)施也在一步步的完善中。在需求和技術(shù)的推動(dòng)下,畢業(yè)生以班級(jí)為單位的原始手工報(bào)送選題的方式,暴露出了很多缺點(diǎn)和不足:出現(xiàn)不公平現(xiàn)象(因?yàn)槊總€(gè)論文題目的人數(shù)都會(huì)有所限制),這樣以班級(jí)為單位的手工選課方式就會(huì)出現(xiàn)一些選題速度快的班級(jí)把某些題目選滿了,導(dǎo)致其它班級(jí)不能對(duì)其進(jìn)行選題;消耗時(shí)間較長(zhǎng),管理者需要等待所有班級(jí)將選題報(bào)送上來后才能進(jìn)行統(tǒng)計(jì);管理工作更復(fù)雜,管理者在收到班級(jí)保送上來的選題報(bào)名后必須逐條的進(jìn)行篩選,然后將不符合選題條件的學(xué)生安排進(jìn)行再第二次選題。近年來出現(xiàn)的網(wǎng)上畢業(yè)設(shè)計(jì)課題系統(tǒng)是以院(系)為單位,在網(wǎng)上進(jìn)行選題,學(xué)生選題主要是以時(shí)間先后為依據(jù),雖然改變了以往以班級(jí)為單位的原始手工選課的方式,采用網(wǎng)上選題方式,便捷了學(xué)生和指導(dǎo)老師,提高了工作效率,但是還是存在如下不足:(1)學(xué)生搶選現(xiàn)象,有些選題比較簡(jiǎn)單,則會(huì)發(fā)生很多人不約而同的選這一個(gè)選題,導(dǎo)致的結(jié)果就是真正想研究該課題的學(xué)生沒選上;(2)指導(dǎo)教師對(duì)選題結(jié)果不滿意,因?yàn)樵谶x題過程中教師無法控制選題結(jié)果,很有可能學(xué)生的專業(yè)特長(zhǎng)與自己的研究方向不一致;(3)突發(fā)數(shù)據(jù)訪問量很大,選題管理者為了能讓學(xué)生同時(shí)選題,可能規(guī)定某一時(shí)間開啟選題系統(tǒng),那么開啟系統(tǒng)的瞬間,會(huì)有大量的數(shù)據(jù)訪問請(qǐng)求涌入服務(wù)器,當(dāng)數(shù)據(jù)量到一定的程度的時(shí)候很有可能成為網(wǎng)絡(luò)中很難防范的分布式拒絕服務(wù)攻擊(DDoS),這樣就必然造成了安全隱患;前兩種選題方式最大的缺點(diǎn)就是存在不公平現(xiàn)象,當(dāng)然這個(gè)不公平不僅是發(fā)生在學(xué)生方面,教師方面也很可能因?yàn)樵撨x題的學(xué)生的專業(yè)特長(zhǎng)與自己的研究方式不一致而造成論文指導(dǎo)方面的困難。所以我們需要一種新的選題方式,解決前兩中選題方式的弊端。教師-學(xué)生雙向選擇型的畢業(yè)設(shè)計(jì)(論文)信息管理系統(tǒng)延續(xù)了第二代選題系統(tǒng)的B/S架構(gòu)。在選題的流程上分成了兩個(gè)階段,第一階段是根據(jù)管理者安排的時(shí)間及選題配額限制來進(jìn)行學(xué)生選擇有意向的課題及指導(dǎo)老師的操作;第二個(gè)階段是教師在學(xué)生選題的基礎(chǔ)上來選擇最符合自己課題要求的學(xué)生來完成該選題。1.2論文所做的工作為了了解畢業(yè)設(shè)計(jì)(論文)信息管理系統(tǒng)的功能需求以及尋找較為完善的系統(tǒng)操作流程,在系統(tǒng)設(shè)計(jì)之前為系統(tǒng)的設(shè)計(jì)做了許多的資料收集和功能需求調(diào)研工作。1.2.1前期工作為了能夠?qū)⑾到y(tǒng)的功能做的更完善,在系統(tǒng)設(shè)計(jì)的前期階段先從一些資深的畢業(yè)設(shè)計(jì)(論文)管理老師那詳細(xì)的了解選題的發(fā)展里程以及畢業(yè)選題的整個(gè)流程,也從參考文獻(xiàn)中收集了一些畢業(yè)設(shè)計(jì)(論文)的發(fā)展趨勢(shì)。從各方面的需求來分析畢業(yè)(設(shè)計(jì))信息管理系統(tǒng)走向網(wǎng)絡(luò)化已經(jīng)是可行的,并且大家更渴望的是一個(gè)簡(jiǎn)單、易管理、易操作的在線選題系統(tǒng)。畢業(yè)設(shè)計(jì)(論文)信息管理系統(tǒng)需要結(jié)合常規(guī)的C/S的功能以及B/S的功能,從技術(shù)角度分析該系統(tǒng)完全具備可行性。從經(jīng)濟(jì)角度分析,該系統(tǒng)的運(yùn)行成本以及維護(hù)成本幾乎為0,而傳統(tǒng)的畢業(yè)(論文)信息管理,不僅在人力資源上造成浪費(fèi),而且很容易發(fā)生不公平選題的情況。而且網(wǎng)絡(luò)化的信息管理系統(tǒng)更加的節(jié)約了大家的時(shí)間。1.2.2學(xué)生模塊分析畢業(yè)設(shè)計(jì)(論文)信息管理系統(tǒng)中的三個(gè)基本實(shí)體之一就是學(xué)生,學(xué)生在本系統(tǒng)中擔(dān)任的角色不單單是進(jìn)行選題,更需要將自己的專業(yè)特長(zhǎng),通過個(gè)人簡(jiǎn)歷的方式展現(xiàn)出來給老師看。所以系統(tǒng)在設(shè)計(jì)的過程中不僅要考慮學(xué)生的選題信息,更重要的是如何做好學(xué)生的個(gè)人簡(jiǎn)歷展示。以及如何給學(xué)生提供一個(gè)想老師展示自己的通道。學(xué)生模塊的設(shè)計(jì)還應(yīng)當(dāng)考慮自己的選題信息無何準(zhǔn)確無誤的提交到讓老師看到,并且如何同老師進(jìn)行在線的交流。1.2.3教師模塊分析教師是本系統(tǒng)的另一個(gè)主要實(shí)體,教師應(yīng)當(dāng)可以在本地提交選題的題目,并在線填寫論文審批表的內(nèi)容然后生成WORD文檔供學(xué)生下載。并且可以隨時(shí)查看選題的進(jìn)展情況,系統(tǒng)能夠根據(jù)選題的狀態(tài)準(zhǔn)確的給出相應(yīng)的導(dǎo)航信息。既然是雙向選擇的畢業(yè)設(shè)計(jì)(論文)信息管理系統(tǒng),那么老師也必然得提供自己的相關(guān)研究方向供學(xué)生做參考。1.2.4管理模塊分析管理員充當(dāng)著整個(gè)系統(tǒng)的調(diào)度員,擁有對(duì)整個(gè)系統(tǒng)的配置,控制,管理的權(quán)限。首先需要掌握系統(tǒng)當(dāng)前的運(yùn)行狀態(tài)以及相關(guān)的設(shè)置信息,并且能夠方便的來控制系統(tǒng)的選題開始時(shí)間和結(jié)束時(shí)間,并且能夠根據(jù)服務(wù)器的配置修改系統(tǒng)的參數(shù)。其次需要及時(shí)的將學(xué)生的基本信息以及教師的基本信息還有論文審批表信息導(dǎo)入數(shù)據(jù)庫(kù),并且能夠進(jìn)行管理操作。在任意時(shí)間,管理員可以將系統(tǒng)中當(dāng)前的學(xué)生信息,教師信息或者選題進(jìn)展信息根據(jù)自己的需要來導(dǎo)出并進(jìn)行審核。為了防范數(shù)據(jù)的丟失或者錯(cuò)誤,管理者應(yīng)該可以對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)或者單個(gè)表的數(shù)據(jù)進(jìn)行備份,恢復(fù)操作。1.3本文的組織結(jié)構(gòu)第一章緒論部分介紹了系統(tǒng)的研究背景,對(duì)高校畢業(yè)設(shè)計(jì)選題操作過程的發(fā)展做了闡述,對(duì)傳統(tǒng)的人工選題,以及第一階段的網(wǎng)上選題系統(tǒng)進(jìn)行了分析,并指出不足。引出開發(fā)雙向選擇型的畢業(yè)論文選題系統(tǒng)的必要性,這也是當(dāng)前我校實(shí)現(xiàn)數(shù)字化校園的一個(gè)部分。第二章介紹系統(tǒng)開發(fā)的環(huán)境介紹,前三節(jié)分別分析了Apache服務(wù)器,

MySQL數(shù)據(jù)庫(kù),PHP語言在當(dāng)代B/S系統(tǒng)應(yīng)用中的優(yōu)勢(shì),第四節(jié)詳細(xì)描述了如何在Linux環(huán)境下搭建Apache+MySQL+PHP+XDebug環(huán)境,第五節(jié)分析了Apache服務(wù)器環(huán)境中的一些常用配置,以及系統(tǒng)需要使用的一些環(huán)境配置。第三章系統(tǒng)分析與設(shè)計(jì),首先對(duì)系統(tǒng)進(jìn)行需求分析,將系統(tǒng)前期工作中收集的功能需求進(jìn)行整理,并分析功能的可行行以及可實(shí)現(xiàn)性。然后按教師,學(xué)生,管理員三個(gè)模塊進(jìn)行整合,分離出其中的公用部分,然后進(jìn)行模塊的設(shè)計(jì)。確定系統(tǒng)使用的字符編碼,并進(jìn)行數(shù)據(jù)庫(kù)構(gòu)架,第四章系統(tǒng)具體功能的實(shí)現(xiàn),在第三章的基礎(chǔ)上進(jìn)行頁面布局以及程序編寫,先將系統(tǒng)的完整性檢查文件,以及公用的文件完成,然后再將數(shù)據(jù)庫(kù)操作和分頁操作進(jìn)行抽象化,進(jìn)行類的編寫。最后再進(jìn)行各個(gè)模塊進(jìn)行程序設(shè)計(jì)。第五章總結(jié)與展望,闡述了系統(tǒng)開發(fā)過程中自身的收獲,不僅是在專業(yè)技能方面的收獲,也包在對(duì)開發(fā)思想上的提高,然后描述了該系統(tǒng)可以改進(jìn)以及完善的地方。

第二章系統(tǒng)開發(fā)環(huán)境介紹2.1Apache簡(jiǎn)介Apache是世界排名第一的web服務(wù)器,根據(jù)netcraft(sraft.co.uk)所作的調(diào)查,截止到08年6月全球使用Apache服務(wù)器已經(jīng)達(dá)到172338726個(gè).1995年4月,最早的Apache(0.6.2版)由Apachegroup公布發(fā)行.Apachegroup是一個(gè)完全通過Internet進(jìn)行運(yùn)作的非盈利機(jī)構(gòu),由該機(jī)構(gòu)來決定Apacheweb服務(wù)器的標(biāo)準(zhǔn)發(fā)行版中應(yīng)該包含哪些內(nèi)容.準(zhǔn)許任何人修改隱錯(cuò),提供新的特征和將它移植到新的平臺(tái)上,以及其它的工作.當(dāng)新的代碼被提交給Apachegroup時(shí),該團(tuán)體審核它的具體內(nèi)容,進(jìn)行測(cè)試,如果認(rèn)為滿意,該代碼就會(huì)被集成到Apache的主要發(fā)行版中.Apache的特性:1)幾乎可以運(yùn)行在所有的計(jì)算機(jī)平臺(tái)上.2)支持最新的http/1.1協(xié)議3)簡(jiǎn)單而且強(qiáng)有力的基于文件的配置(httpd.conf).4)支持通用網(wǎng)關(guān)接口(CGI)5)支持虛擬主機(jī).6)支持http認(rèn)證.7)集成perl.8)集成的代理服務(wù)器9)可以通過web瀏覽器監(jiān)視服務(wù)器的狀態(tài),可以自定義日志.10)支持服務(wù)器端包含命令(ssi).11)支持安全socket層(ssl).12)具有用戶會(huì)話過程的跟蹤能力.13)支持fastcgi14)支持javaservlets.2.2MySQL簡(jiǎn)介數(shù)據(jù)庫(kù)在信息在信息系統(tǒng)的一直起著非常重要的作用,也是一個(gè)非常重要的研究對(duì)象。然而,隨著WorldWideWeb(WWW)及Internet技術(shù)的迅速發(fā)展,數(shù)據(jù)庫(kù)技術(shù)成為最熱門技術(shù)之一。Internet技術(shù)提供了一種向用戶發(fā)布數(shù)據(jù)庫(kù)內(nèi)容的標(biāo)準(zhǔn)化的訪問方法。這些技術(shù)沒有脫離經(jīng)典數(shù)據(jù)庫(kù)技術(shù)的要求,它們只是加重了數(shù)據(jù)庫(kù)技術(shù)的重要性。MySQL是一個(gè)備受歡迎的高性能、多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器,它是一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),由一個(gè)服務(wù)器守護(hù)程序MySQL和多種不同的客戶程序及庫(kù)組成。它由MySQLAB開發(fā)、發(fā)布和支持。MySQLAB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式結(jié)合開源價(jià)值和方法論的第二代開源公司,MySQL是MySQLAB的注冊(cè)商標(biāo)。MySQL服務(wù)器支持關(guān)鍵任務(wù)、重負(fù)載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個(gè)大配置(mass-deployed)的軟件中去。MySQL網(wǎng)站()提供了關(guān)于MySQL和MySQLAB的最新的消息。MySQL主要特征:(1)多線程,MySQL的核心程序采用完全的多線程編程。線程是輕量級(jí)的進(jìn)程,它可以靈活地為用戶提供服務(wù),而不過多的消耗系統(tǒng)資源。用多線程和C語言實(shí)現(xiàn)的MySQL能很容易充分利用CPU,可以采用多CPU體系結(jié)構(gòu)。(2)開放源代碼,MySQL是自由的開放源代碼產(chǎn)品,可以在GPL下暢通使用。(3)多操作系統(tǒng)支持,MySQL可以支持WindowsNT/200/XP及UNIX、Linux和SUNOS等多種操作系統(tǒng)平臺(tái)。這意味著在一個(gè)操作系統(tǒng)中實(shí)現(xiàn)的應(yīng)用可以很方便地移植到其他的操作系統(tǒng)下。(4)性能高效穩(wěn)定,MySQL擁有一個(gè)非??焖俣曳€(wěn)定的基于線程的內(nèi)存分配系統(tǒng),可以持續(xù)使用而不必?fù)?dān)心其穩(wěn)定性。(5)多用戶支持,MySQL可有效地滿足50~1000個(gè)并發(fā)用戶的訪問,并且在超過600個(gè)用戶限度的情況下,MySQL的性能沒有明顯的下降。(6)應(yīng)用程序支持,有C、C++,JAVA、Perl、PHP和Python等多種客戶工具和API的支持。(7)支持事務(wù)處理、行鎖定、子查詢、外鍵和全文檢索等功能。(8)MySQL支持大型的數(shù)據(jù)庫(kù)處理,可以方便地支持上萬條記錄的數(shù)據(jù)庫(kù)。作為一個(gè)開放源代碼的數(shù)據(jù)庫(kù),MySQL可以針對(duì)不同的應(yīng)用進(jìn)行相應(yīng)的修改。(9)MySQL有一個(gè)非常靈活而且安全的權(quán)限和口令系統(tǒng)。當(dāng)客戶與MySQL服務(wù)器連接時(shí),他們之間所有的口令傳送被加密,而且MySQL支持主機(jī)認(rèn)證。2.3PHP簡(jiǎn)介PHP是一種可以運(yùn)行在多種硬件和操作系統(tǒng)環(huán)境下的動(dòng)態(tài)網(wǎng)頁設(shè)計(jì)語言,它與Linux、Apache服務(wù)器以及MySQL的組合是目前最流行的Web應(yīng)用平臺(tái)。PHP源于名為PHP/FI的工程。PHP/FI是由RasmusLerdorf在1995年創(chuàng)建的,最初只是一套簡(jiǎn)單的Perl腳本,取名為“PersonalHomePageTools”,用來跟蹤訪問其主頁的用戶信息。隨著功能需求的增加,Rasmus用C語言實(shí)現(xiàn)了新版本。它可以訪問數(shù)據(jù)庫(kù),可以讓用戶開發(fā)簡(jiǎn)單的動(dòng)態(tài)Web程序。Rasmus公開了PHP/FI的源代碼,同時(shí)允許其他人修正bug并改進(jìn)源代碼。1997年,C語言實(shí)現(xiàn)的第2版PHP/FI2.0在全世界已經(jīng)有幾千個(gè)用戶和大約50000個(gè)域名安裝,大約是因特網(wǎng)所有域名的1%。在經(jīng)歷了數(shù)個(gè)beta版本之后,1997年11月發(fā)布了PHP/FI2.0官方正式版本。AndiGutmans和ZeevSuraski在開發(fā)電子商務(wù)程序時(shí)發(fā)現(xiàn)PHP/FI2.0功能明顯不足,于是他們重寫了代碼,這就是PHP3.0。經(jīng)過Andi、Rasmus和Zeev的努力,考慮到PHP/FI已存在的用戶群,他們決定聯(lián)合發(fā)布PHP3.0作為PHP/FI2.0的官方后繼版本。PHP3.0是類似于當(dāng)今PHP語法結(jié)構(gòu)的第一個(gè)版本。它的最大特點(diǎn)是可擴(kuò)展性——除了給最終用戶提供數(shù)據(jù)庫(kù)、協(xié)議和API的基礎(chǔ)結(jié)構(gòu)之外,還吸引了大量的開發(fā)人員提供新模塊。1998年底,PHP的用戶接近10000,有大約100000個(gè)網(wǎng)站使用了PHP。在PHP3.0最流行的時(shí)候,因特網(wǎng)上有10%的Web服務(wù)器上都安裝了PHP。約9個(gè)月的公開測(cè)試后,于1998年6月正式發(fā)布了PHP3.0。2000年5月22日,PHP4.0發(fā)布。該版本對(duì)PHP的體系結(jié)構(gòu)做了一些基本修改,包括將語言和Web服務(wù)器之間的層次抽象化、加入了線程安全機(jī)制、加入了更先進(jìn)的兩階段解析與執(zhí)行標(biāo)簽解析系統(tǒng)。這個(gè)新的解析程序是由ZeevSuraski和AndiGutmans編寫的,命名為Zend引擎。2004年7月13日,PHP5.0發(fā)布。該版本使用Zend引擎Ⅱ,并且加入了一些新功能,如PHPDataObjects(PDO)。PHP最強(qiáng)大最顯著的特性是支持多種數(shù)據(jù)庫(kù)。目前,PHP支持的數(shù)據(jù)庫(kù)如表2-1所示。表2-1

PHP支持的數(shù)據(jù)庫(kù)AdabasDIngresOracledBaseInterBaseOvrimosEmpressFrontBasePostgreSQLFilePro(只讀)mSQLSolidHyperwaveDirectMS-SQLSybaseIBMDB2MySQLVelocisInformixODBCUNIXdbmPHP與ASP,JSP的比較

1)運(yùn)行環(huán)境:ASP只能在Windows環(huán)境和IIS服務(wù)器中使用,而PHP和JSP都支持多種操作系統(tǒng)和Web服務(wù)器。

2)執(zhí)行效率:JSP優(yōu)于PHP和ASP。

3)穩(wěn)定性:PHP和JSP比ASP更穩(wěn)定。

4)函數(shù)支持:PHP提供了更多的函數(shù)。

5)系統(tǒng)安全:PHP和JSP的安全性比ASP高。

6)使用的廣泛度:使用PHP的站點(diǎn)多于使用ASP和JSP的站點(diǎn)。

7)學(xué)習(xí)的難易度:PHP和ASP比JSP更容易學(xué)習(xí)。2.4系統(tǒng)運(yùn)行環(huán)境安裝2.4.1安裝ApacheHTTPServer服務(wù)Apache的作用基本等同于Windows下的IIS,相對(duì)較容易安裝。首先在Apache的官方網(wǎng)站上下載一個(gè)版本。下載地址:/同時(shí)官方網(wǎng)站上也提供了在線文檔,一般情況下這樣的在線問檔可以為解決安裝配置過程中遇到的問題,并且有利于優(yōu)化系統(tǒng)的配置。在線文檔地址:/docs/2.0/(1)解壓縮#gunziphttpd-2.2.4.tar.gz#tar-xvfhttpd-2.2.4.tar(2)配置、安裝進(jìn)入httpd-2.2.4文件夾下,輸入#./configure--prefix=/usr/local/apache2--enable-module=so//配置Apache的安裝路徑(3)等配置結(jié)束后,進(jìn)行編譯,安裝。#make;makeinstall(4)啟動(dòng)安裝完成后就可以嘗試啟動(dòng)Apache。/usr/local/apache2/bin/apachectlstart//Apache啟動(dòng)/usr/local/apache2/bin/apachectlrestart //Apache重啟/usr/local/apache2/bin/apachectlstop //Apache停止2.4.2安裝MySQL數(shù)據(jù)庫(kù)安裝MySQL時(shí),如果用已經(jīng)編譯過的安裝包,在安裝后會(huì)出現(xiàn)不能連接數(shù)據(jù)庫(kù)的情況,所以在安裝時(shí)應(yīng)當(dāng)選擇未編譯過的安裝包。地址:/LAMP/(1)解壓縮#gunzipmysql.tar.gz#tar-xvfmysql.tar(2)配置、安裝進(jìn)入mysql文件夾下,輸入#./configure--prefix=/usr/local/mysql //配置MySQL的安裝路徑等配置結(jié)束后,進(jìn)行編譯,安裝。#make;makeinstall(3)啟動(dòng)先把基本數(shù)據(jù)庫(kù)裝好,進(jìn)入/usr/local/mysql,輸入#./bin/mysql_install_db#groupaddmysql#useradd-gmysqlmysql#chown-Rroot/usr/local/mysql#chgrp-Rmysql/usr/local/mysql#chown-Rmysql/usr/local/mysql#chown-Rmysql/usr/local/mysql/var#chown-Rmysql/usr/local/mysql/var/mysql/.然后啟動(dòng)MySQL服務(wù)/etc/init.d/mysqldstart2.4.3安裝libxml環(huán)境因?yàn)榘惭b的是Apache2,所以要安裝libxml環(huán)境一、安裝libxml(1)解壓縮#gunziplibxml2-2.6.26.tar.gz#tar-xvflibxml2-2.6.26.tar(2)配置、安裝進(jìn)入libxml2-2.6.26文件夾下,輸入#./configure--prefix=/usr/local/libxml2等配置結(jié)束后,進(jìn)行編譯,安裝。#make;makeinstall2.4.4安裝PHP開發(fā)環(huán)境PHP源代碼包下載地址:/downloads.php(1)解壓縮#gunzipphp-5.2.1.tar.gz#tar-xvfphp-5.2.1.tar(2)配置、安裝進(jìn)入php-5.2.1文件夾下,輸入#./configure--prefix=/usr/local/php\--with-apxs2=/usr/local/apache2/bin/apxs\--with-mysql=/usr/local/mysql\--with-libxml-dir=/usr/local/libxml2配置結(jié)束后,進(jìn)行編譯,安裝。#make;makeinstall2.4.5XDebug環(huán)境安裝PHP的Xdebug擴(kuò)展可以幫助在程序出錯(cuò)或失敗時(shí)剖析應(yīng)用程序以查找原因。我們可以使用Xdebug跟蹤調(diào)用堆棧、分析內(nèi)存使用情況并查看參數(shù)和變量。安裝xdebug的過程相對(duì)簡(jiǎn)單,具體過程如下:wget/link.php?url=xdebug203tar-xvzfxdebug-2.0.3.tgzcdxdebug-2.0.3/usr/local/php/bin/phpize./configure--with-php-config=/usr/local/php/bin/php-configmakemakeinstallvi/usr/local/php/lib/php.ini其中在php.ini中添加:extension="xdebug.so"xdebug.default_enable=Onxdebug.show_exception_trace=Onxdebug.show_local_vars=1xdebug.max_nesting_level=50xdebug.var_display_max_depth=6xdebug.dump_once=Onxdebug.dump_globals=Onxdebug.dump_undefined=Onxdebug.dump.REQUEST=*xdebug.dump.SERVER=REQUEST_METHOD,REQUEST_URI,HTTP_USER_AGENT然后查看phpinfo.php如果看到圖2-2則表示XDebug安裝成功。圖2-2XDebug信息2.5Apache服務(wù)配置在前面四步的操作基礎(chǔ)上來配置Apache的文件。#vi/usr/local/apache2/conf/httpd.confServerRoot“/usr/local/apache2/”服務(wù)文件所在目錄Timeout300連接超時(shí)時(shí)間Listen80服務(wù)器監(jiān)聽端口DocumentRoot“/var/www/html”設(shè)置網(wǎng)頁根文檔路徑DirectoryIndexindex.htmlindex.php默認(rèn)首頁文件配置并且加載本系統(tǒng)中需要使用的重寫模塊,并在系統(tǒng)的目錄權(quán)限中加入文件信息。重新啟動(dòng)Apache。在它默認(rèn)的放置網(wǎng)頁文件的文件夾/var/www/html下建立一個(gè)php文件起名info.php編輯一下【viinfo.php】,輸入:<?phpphpinfo();?>然后在瀏覽器中輸入http://localhost/phpinfo.php。phpinfo信息如圖2-3圖2-3phpinfo從phpinfo的信息中我們可以了解到該服務(wù)器配置的具體信息,也是管理員判斷服務(wù)器運(yùn)行狀態(tài)的主要依據(jù)。

第三章系統(tǒng)分析與設(shè)計(jì)3.1需求分析 畢業(yè)設(shè)計(jì)(論文)信息管理系統(tǒng)是校園數(shù)字化的重要部分,但是至今都沒有一套功能成熟、可移植性強(qiáng)的系統(tǒng)能夠滿足我們的需求。本系統(tǒng)完成后主要有如下功能: 后臺(tái)管理功能:選題時(shí)間預(yù)設(shè)定:系統(tǒng)可以定時(shí)開啟和關(guān)閉。系統(tǒng)狀態(tài)設(shè)定:可以修改系統(tǒng)的運(yùn)行狀態(tài)。教師、學(xué)生信息的導(dǎo)入,生成。選題公告、新聞的添加、刪除修改。數(shù)據(jù)庫(kù)的備份恢復(fù)。論文審批表的審核管理。教師模塊的功能: 1、教師在線添加選題信息,并通過表單提交要求然后在線生成WORD文檔。 2、教師可以查看每個(gè)選題的進(jìn)度信息。 3、教師個(gè)人資料的修改。 4、教師與自己指導(dǎo)的學(xué)生的消息溝通。學(xué)生模塊的功能: 1、學(xué)生可以查看選題信息,并下載論文審批表,任務(wù)書等文檔。 2、學(xué)生個(gè)人資料的修改。 3、在選題時(shí)間內(nèi)進(jìn)行先選擇老師,并有數(shù)量限制。 4、學(xué)生與指導(dǎo)老師的消息溝通。3.2總體設(shè)計(jì)本系統(tǒng)實(shí)際是學(xué)生和教師相互選擇的平臺(tái),為了使學(xué)生和教師能夠更簡(jiǎn)單,更方便的來使用系統(tǒng),本系統(tǒng)在功能設(shè)計(jì)以及界面設(shè)計(jì)上更多的考慮的用戶使用體驗(yàn)度。并且為了方便管理員管理,以及其他開發(fā)人員在本系統(tǒng)的基礎(chǔ)上做二次開發(fā),一方面在后臺(tái)管理功能上建立了更多的便于操作的功能,以及防錯(cuò)設(shè)置。另一方面在系統(tǒng)開發(fā)的時(shí)候使用的結(jié)構(gòu)化以及面向?qū)ο蟮木幊谭绞剑軌蜃屍渌_發(fā)人員很快的了解系統(tǒng)的程序設(shè)計(jì)思想。3.2.1學(xué)生模塊學(xué)生作為系統(tǒng)的重要實(shí)體之一,其主要功能有:1、選題:在學(xué)生沒有完成選題的情況下,登錄后進(jìn)入該頁面,顯示已經(jīng)選擇的題目,以及剩余可選題數(shù)目。2、我的選題:這個(gè)是學(xué)生版塊最主要的功能,顯示了該選題的進(jìn)度,以及各階段需要的操作比如說填寫開題報(bào)告,生成開題報(bào)告等。3、我的信息:本次選題是雙向選擇的,學(xué)生需要填寫自己的信息供出題老師來參考,可將自己的專業(yè)特長(zhǎng),個(gè)人特長(zhǎng),聯(lián)系方式等寫入“我的信息”欄木中,這將會(huì)是讓出題教師選擇你的一個(gè)主要依據(jù)(雙方不太了解的情況下)。4、站內(nèi)消息:可以發(fā)送信息給你的指導(dǎo)教師,以及閱讀指導(dǎo)師發(fā)送給你的消息。在完成選題的過程中如果遇到困難可以在此發(fā)送信息。學(xué)生模塊的結(jié)構(gòu)圖如圖3-1圖3-1學(xué)生模塊的結(jié)構(gòu)圖3.2.2教師模塊教師模塊主要功能說明:1、我的選題:顯示所有已經(jīng)添加的選題(未通過審核,已通過審核),以及對(duì)選題的論文審批表,任務(wù)書的填寫,生成,下載預(yù)覽連接,還有已選題人數(shù)等。如圖12、進(jìn)度管理:管理所有已經(jīng)完成的選題的進(jìn)度,保持與學(xué)生端的進(jìn)度一致。顯示一些主要的信息,目前包括論文審批表,任務(wù)書,開題報(bào)告等。如圖23、我的信息:本次選題是雙向選擇的,老師需要填寫自己的信息供選題學(xué)生來參考,可將自己的研究方向,聯(lián)系方式等寫入“我的信息”欄木中,學(xué)生到時(shí)可以根據(jù)你提供的信息來決定是否選擇改題(當(dāng)學(xué)生不了解您的研究方向的時(shí)候)。如圖24、站內(nèi)消息:可以發(fā)送信息給你的指導(dǎo)教師,以及閱讀系統(tǒng),教師發(fā)送給你的消息。在完成選題的過程中如果遇到困難可以在此發(fā)送信息。教師模塊的結(jié)構(gòu)如圖3-2圖3-2教師模塊結(jié)構(gòu)圖3.2.3管理員模塊管理員的主要功能有:1、學(xué)生信息,教師信息管理:可以添加、刪除、修改學(xué)生的個(gè)人信息,可以導(dǎo)入這些用戶信息。2、論文審批表導(dǎo)入:可以從后臺(tái)直接將論文審批表按給定的格式從XLS中導(dǎo)人。3、公告、新聞的管理:可以管理選題公告以及新聞4、系統(tǒng)狀態(tài)管理:可以管理系統(tǒng)的開啟,停止,以及選題開放時(shí)間和關(guān)閉時(shí)間,并根據(jù)服務(wù)器的設(shè)置來決定是否開啟登錄時(shí)使用驗(yàn)證碼功能。5、數(shù)據(jù)的備份和恢復(fù):用于備份數(shù)據(jù)(可以整個(gè)數(shù)據(jù)庫(kù)備份或者單個(gè)表備份)6、信息導(dǎo)出:將選題的結(jié)果信息以及選題的進(jìn)度信息按篩選條件進(jìn)行導(dǎo)出管理模塊結(jié)構(gòu)如圖3-3圖3-3管理模塊結(jié)構(gòu)圖3.3系統(tǒng)流程圖在結(jié)構(gòu)上已經(jīng)將教師,學(xué)生,管理員等用戶信息分的比較清晰,所以用戶操作流程比較方便。具體系統(tǒng)流程如圖3-4圖3-4系統(tǒng)操作流程3.4數(shù)據(jù)庫(kù)設(shè)計(jì)3.4.1數(shù)據(jù)安全性說明由于系統(tǒng)涉及到多用戶同時(shí)操作,所以系統(tǒng)在安全性上面必須遵守嚴(yán)格的要求。1、系統(tǒng)不存在注入漏洞。2、系統(tǒng)不存在并發(fā)訪問時(shí)數(shù)據(jù)庫(kù)訪問漏洞,避免造成數(shù)據(jù)錯(cuò)亂。3、系統(tǒng)中各級(jí)權(quán)限分明包括:(1)學(xué)生權(quán)限,可以修改學(xué)生對(duì)應(yīng)的資料,在選題開始后選擇課題,并提交相應(yīng)資料,查看教師的簡(jiǎn)歷等信息。(2)教師權(quán)限,可以修改教師對(duì)應(yīng)的資料供學(xué)生參考;添加選題并生成相應(yīng)表格,下載學(xué)生提交的開題報(bào)告。(3)數(shù)據(jù)查看權(quán)限,這部分權(quán)限主要提供給院系相關(guān)負(fù)責(zé)老師,在選題過程中擁有這些權(quán)限的老師可以查看選題的進(jìn)度,以及相應(yīng)的數(shù)據(jù)。(4)管理員權(quán)限,管理員有權(quán)利設(shè)置網(wǎng)站的運(yùn)行狀態(tài),并可以設(shè)置選題的開始和結(jié)束時(shí)間,可以發(fā)布選題相關(guān)公告,并且隨時(shí)可以將進(jìn)度信息按要求生成為EXCEL格式,便于數(shù)據(jù)統(tǒng)計(jì)及分析。管理員還可以直接導(dǎo)入學(xué)生及教師信息。3.4.2 系統(tǒng)中的實(shí)體和關(guān)系如圖3-5圖3-5實(shí)體-關(guān)系圖在本系統(tǒng)中的實(shí)體與實(shí)體的關(guān)系并不能做單一的劃分。在選題結(jié)過程中,學(xué)生和選題的關(guān)系應(yīng)當(dāng)是多對(duì)多的關(guān)系,在選題結(jié)束后學(xué)生和選題的關(guān)系則對(duì)應(yīng)為一對(duì)一。3.4.3數(shù)據(jù)庫(kù)及數(shù)據(jù)表設(shè)計(jì)數(shù)據(jù)庫(kù)的作用在整個(gè)系統(tǒng)中占的位置已經(jīng)不言而喻,一個(gè)符合規(guī)范的數(shù)據(jù)庫(kù)設(shè)計(jì)不僅可以在設(shè)計(jì)的時(shí)候讓程序設(shè)計(jì)員的邏輯更為清晰,也可以讓后來分析程序的人更容易理清數(shù)據(jù)間的關(guān)系,本系統(tǒng)中工使用到13張數(shù)據(jù)表,具體表結(jié)構(gòu)如下:表3-1管理員表字段屬性長(zhǎng)度注釋說明IDINT、11ID號(hào)UsernameVarchar16用戶名PasswordVarchar16密碼作用:存放管理員的用戶名及密碼表3-2公告表字段屬性長(zhǎng)度注釋說明IDINT11ID號(hào)IDTextText公告內(nèi)容HTML代碼作用:存放公告信息。表3-3常用資料下載字段屬性長(zhǎng)度注釋說明IDInt11ID號(hào)TitleVarchar200名稱PathVarchar200下載路徑passedChar1是否通過1:通過0:待審核作用:存放常用的以下文檔下載信息,以及文件在服務(wù)器的存儲(chǔ)位置。表3-4開題報(bào)告表字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)SnoChar8學(xué)號(hào)KtyjxzText課題研究現(xiàn)狀KtyjmdText課題研究目的KtyjnrText課題研究?jī)?nèi)容KtyjjhText課題研究計(jì)劃ZyckwxText主要參考文獻(xiàn)TimeDatetime填寫時(shí)間作用:存儲(chǔ)課題的開題信息,只有在教師選擇了學(xué)生,然后學(xué)生才能填寫開題報(bào)告信息,改表中,SNO是唯一的。表3-5新聞表字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)TitleVarchar200新聞標(biāo)題Title_colorVarchar7標(biāo)題顏色News_picvarchar100新聞圖片Keywordstext關(guān)鍵詞PassedChar1是否通過1:通過0:待審核CommendChar1是否推薦TextText新聞內(nèi)容Timedatetime發(fā)表時(shí)間作用:存儲(chǔ)選題新聞內(nèi)容,并且根據(jù)情況設(shè)置新聞是否顯示。表3-6任務(wù)書表字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)Xt_idInt11選題ID號(hào)SnoChar8學(xué)號(hào)CommentText內(nèi)容ReqText要求Production_requireText成果要求Doc_requireText文檔要求RefeText參考文獻(xiàn)progressText工作進(jìn)度timeDatetime時(shí)間作用:存放選題的任務(wù)書信息表3-7站內(nèi)信息表字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)SenderVarchar16發(fā)送者ReceiverReceiver11接收者TitleText標(biāo)題TimeDatetime時(shí)間TextText內(nèi)容BackChar1是否回復(fù)Is_readchar1閱讀標(biāo)記作用:存儲(chǔ)學(xué)生及老師之間相互發(fā)送的站內(nèi)消息表3-8學(xué)生信息表字段屬性長(zhǎng)度注釋說明Idint11ID號(hào)SnoChar8學(xué)號(hào)NameVarchar16姓名ClassVarchar48班級(jí)PhoneChar11手機(jī)TelvarChar13電話MailVarchar100郵箱otherText其他信息XthInt11選題號(hào)PasswordVarchar16密碼SkillText專業(yè)技能及其他說明Limit_3Int11剩余可選題數(shù)目FlagChar1完成選題標(biāo)記specifyvarchar100專業(yè)作用:存儲(chǔ)學(xué)生的個(gè)人資料信息,教師在選擇學(xué)生的時(shí)候,可以查看該學(xué)生的個(gè)人簡(jiǎn)歷,并以及平時(shí)的了解以及個(gè)人簡(jiǎn)歷資料作出抉擇。表3-9系統(tǒng)設(shè)置表格字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)Sys_onChar1系統(tǒng)是否開啟Sys_off_contentText系統(tǒng)關(guān)閉原因描述Time_onDatetime選題開始時(shí)間Time_offDatatime選題關(guān)閉時(shí)間Login_gdchar1登錄是否顯示驗(yàn)證碼作用:存儲(chǔ)系統(tǒng)的一些配置信息。表3-10選題表字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)Titlevarchar200選題標(biāo)題TidInt11表示編號(hào)TimeDatetime時(shí)間SpecifyVarchar40專業(yè)PassedChar1是否審核通過lwspbVarchar100論文審批表地址RwsVarchar200任務(wù)書地址ExplText選題說明YxrsInt11已選人數(shù)Flagchar1完成標(biāo)志1:結(jié)束0:未結(jié)束作用:存儲(chǔ)教師添加的課題信息,以及是否通過后臺(tái)管理員審核等信息,該表在選題結(jié)束前起非常重要的作用,選題過程中可以通過驗(yàn)證該表和臨時(shí)選題表以及最終選題表的數(shù)據(jù)來判斷系統(tǒng)是否在運(yùn)行過程中出現(xiàn)并發(fā)錯(cuò)誤,所以對(duì)這三張表的操作尤其重要。表3-11教師信息表字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)NameVarchar16姓名PasswordVarchar16密碼ZcZc16職稱LoginipInt11登錄IPLoginnumInt4登錄次數(shù)LogintimeDatetime登錄時(shí)間PhoneChar11手機(jī)號(hào)碼TelVarchar14電話MailVarchar100郵箱OtherText其他SkillText研究方向xlvarchar20學(xué)歷作用:同學(xué)生表一樣,存儲(chǔ)了教師的個(gè)人資料,可用于顯示教師的個(gè)人簡(jiǎn)歷,用于作為學(xué)生在選擇課題時(shí)對(duì)教師的研究方向有一個(gè)了解。表3-12選題最終結(jié)果表字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)TitleVarchar200標(biāo)題TidInt11教師編號(hào)SnoChar8學(xué)號(hào)TimeDatetimeLwspbVarchar200論文審批表位置RwsVarchar200任務(wù)書位置Ktbgvarchar200開題報(bào)告位置作用:存放了最終的選題信息,并且在選題結(jié)束后該表同學(xué)生信息表,教師表信息表,學(xué)生信息表,構(gòu)成系統(tǒng)的最基本表。表3-13臨時(shí)選題結(jié)果存儲(chǔ)表字段屬性長(zhǎng)度注釋說明IdInt11ID號(hào)Snochar8學(xué)號(hào)參照學(xué)生表Xt_idInt11選題IDTidInt11教師編號(hào)timedatetime選題時(shí)間選題時(shí)間作用:存儲(chǔ)雙向選擇的過程信息。

第四章系統(tǒng)功能的具體實(shí)現(xiàn)4.1系統(tǒng)界面設(shè)計(jì)系統(tǒng)在界面設(shè)計(jì)時(shí)力求簡(jiǎn)潔美觀,由于是BS系統(tǒng),要求系統(tǒng)能夠做到最大程度的瀏覽器兼容性。這就要求在設(shè)計(jì)制作的時(shí)候了解包括FireFox,IE,Maxton,Safari等瀏覽器內(nèi)核對(duì)各種屬性的兼容性。本系統(tǒng)界面在設(shè)計(jì)完成后已經(jīng)通過各種瀏覽器的兼容性測(cè)試。(1)系統(tǒng)首頁,具體效果如圖4-1所示圖4-1首頁效果圖頁面功能說明:該頁面使用的SmartTemplate類,支持模板替換,作為教師,學(xué)生,管理員的跳轉(zhuǎn)頁面,該頁會(huì)顯示常用下載,以及系統(tǒng)新聞。天氣欄目的內(nèi)容是通過JS獲取。(2)教師,學(xué)生登錄頁,效果如圖4-2所示圖4-2用戶登錄頁面頁面功能說明:用戶根據(jù)管理員提供的用戶名以及密碼登錄系統(tǒng),登錄時(shí)使用了AJAX技術(shù),能夠很人性化的提示輸入的用戶名是否正確。底部顯示了服務(wù)器響應(yīng)頁面請(qǐng)求所花費(fèi)的執(zhí)行時(shí)間。本系統(tǒng)為了防止學(xué)生注冊(cè)中會(huì)發(fā)生的一些問題,直接有后臺(tái)管理員將學(xué)生的基本信息,以及教師基本信息導(dǎo)入數(shù)據(jù)庫(kù),用戶登錄后進(jìn)入我的信息欄目來修改,完善自己的個(gè)人信息。(3)教師操作頁面,具體效果如圖4-3所示導(dǎo)航欄修改,刪除,詳細(xì)信息添加一個(gè)選題任務(wù)書填寫導(dǎo)航欄修改,刪除,詳細(xì)信息添加一個(gè)選題任務(wù)書填寫圖4-3教師選題管理頁面頁面功能說明:教師登錄后直接進(jìn)入該頁面,該頁顯示了該教師的所有選題信息。主要功能如下1、添加選題2、查看選題的狀態(tài)3、填寫審批表,任務(wù)書等4、生成論文審批表,任務(wù)書等(4)教師選題進(jìn)度管理,如圖4-4圖4-4進(jìn)度管理頁面頁面功能說明:該頁面是顯示每個(gè)選題的進(jìn)度,在選題結(jié)束前是顯示的選題的具體信息,包括選了該題的學(xué)生的具體信息,并且可以做出選擇學(xué)生的操作。當(dāng)確定了學(xué)生后即顯示該選題的進(jìn)度信息,是否已經(jīng)完成了任務(wù)書的填寫及生成,學(xué)生是否已經(jīng)提交了開題報(bào)告等。(5)學(xué)生選題頁面具體效果如圖4-5所示圖4-5學(xué)生選題頁面頁面功能說明:學(xué)生登錄系統(tǒng)后可以根據(jù)自己當(dāng)前的狀態(tài)進(jìn)入選題頁面,該頁顯示所有通過了后臺(tái)審核通過的選題以及對(duì)應(yīng)的指導(dǎo)教師等,選題按鈕根據(jù)選題是否可選變化。學(xué)生可以按教師姓名來篩選選題信息。(6)個(gè)人信息頁面如圖4-6所示圖4-6個(gè)人信息頁面頁面功能說明:教師或者學(xué)生在登錄系統(tǒng)后可以首先完善自己的個(gè)人簡(jiǎn)歷內(nèi)容,供選題的雙方作為參考。專業(yè)技能為多媒體格式編輯筐,可以個(gè)性化的展示自己的專業(yè)技能或者研究方向。(7)后臺(tái)管理頁面如圖4-7圖4-7后臺(tái)管理界面頁面功能說明:后臺(tái)管理使用的框架結(jié)構(gòu),管理員登錄后臺(tái)管理界面后,左邊為導(dǎo)航功能欄,右側(cè)為對(duì)應(yīng)的功能界面。進(jìn)入后臺(tái)首先顯示的系統(tǒng)的運(yùn)行狀態(tài)信息,包括服務(wù)器系統(tǒng)以及各組件的版本信息,管理員可以依照這個(gè)來對(duì)系統(tǒng)或者服務(wù)器做出對(duì)應(yīng)的修改。4.2程序編碼4.2.1系統(tǒng)的公共文件(global.php)為了提高系統(tǒng)的執(zhí)行效率以及系統(tǒng)的安全性,系統(tǒng)的每個(gè)頁面引用了一個(gè)公共文件,該文件的作用就是判斷系統(tǒng)是否完整,以及數(shù)據(jù)庫(kù)是否可以正常連接,當(dāng)發(fā)生錯(cuò)誤的時(shí)候立即停止執(zhí)行,并給出錯(cuò)誤提示。 session_start(); ob_start(); error_reporting(0); include_once"files/function.php";//引用功能函數(shù) if(!file_exists('files/config.php'))//判斷是否存在配置文件,該文件會(huì)在安裝后生成。 { bad('未找到系統(tǒng)的配置文件files/config.php'); exit(); } include_once"files/config.php";//引用配置文件 include_once"class/db.php";//引用數(shù)據(jù)庫(kù)類 $page_start_time=microtime(); $db=newdb;//定義對(duì)象 $db->mysql($dbhost,$dbuser,$password,$dbname); $db->createcon();//創(chuàng)建連接 if(!mysql_connect($db->dbhost,$db->dbuser,$db->password))//判斷數(shù)據(jù)庫(kù)是否可以正常連接 { bad('數(shù)據(jù)庫(kù)連接失敗'); exit(); } $sys_on=getdbvalue('sys_on','sys'); if(empty($sys_on)) { $sys_off_content=getdbvalue('sys_off_content','sys'); echo'<divstyle="BORDER:#9db3c51pxsolid;width:98%;FLOAT:left;line-height:186px;text-align:center">'.$sys_off_content.'</div>'; exit(); }4.2.2數(shù)據(jù)庫(kù)操作類(class/db.php)為了提高系統(tǒng)的執(zhí)行效率,程序引入了面向?qū)ο缶幊蹋到y(tǒng)中的數(shù)據(jù)庫(kù)操作都通過定義一個(gè)數(shù)據(jù)庫(kù)對(duì)象來完成,在公共文件中定義該對(duì)象,并建立鏈接include_once"class/db.php";//引用數(shù)據(jù)庫(kù)類 $db=newdb;//定義對(duì)象$db->mysql($dbhost,$dbuser,$password,$dbname);$db->createcon();//創(chuàng)建連接當(dāng)有需要將MySQL數(shù)據(jù)庫(kù)轉(zhuǎn)化為MSSQL數(shù)據(jù)庫(kù)的時(shí)候,只需要修改DB類即可完成數(shù)據(jù)庫(kù)類型的轉(zhuǎn)換。4.2.3分頁顯示類(class/page.php)系統(tǒng)中很多地方都需要使用分頁顯示,而常規(guī)的分頁方法不僅會(huì)造成代碼冗余,而且當(dāng)數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生變動(dòng)的時(shí)候修改起來非常的繁瑣。在嘗試了多種方法后,根據(jù)MySQL以及PHP的特性,將分頁顯示寫成了一個(gè)類,在需要使用分頁的地方只需要調(diào)用這個(gè)分頁類,然后定義一個(gè)對(duì)象,設(shè)置簡(jiǎn)單的調(diào)用參數(shù),即可完成以前復(fù)雜的分頁顯示操作。include'class/page.php';$sql="select*fromtab_xtwherepassed='1'";$page=newPage($sql);//定義分頁顯示對(duì)象$sql=$>StartPage("tid",false,true,"down");$result=$db->query($sql);然后只需要將$result內(nèi)的內(nèi)容按條顯示。在需要分頁導(dǎo)航的地方加入如下代碼:$ButtonArray=array("首頁","上一頁","下一頁","末頁");echo"<divclass=exp>".$>EndPage($ButtonArray,'text',true)."</div>";即可實(shí)現(xiàn)分頁顯示的功能。4.2.4用戶登錄時(shí)的AJAX技術(shù)在用戶登錄時(shí)使用AJAX判斷用戶名是否正確,這樣對(duì)用戶體驗(yàn)來說更為友好,用戶能夠在不刷新頁面的同時(shí)驗(yàn)證輸入數(shù)據(jù)的正確性。AJAX主要使用xmlHTTP對(duì)象,并且通過open(),onreadystatechange(),send()等方法實(shí)現(xiàn)同服務(wù)器之間的異步傳輸。<scriptlanguage="javascript"type="text/javascript">varxmlHttp=false;try{xmlHttp=newActiveXObject("Msxml2.XMLHTTP");}catch(e){try{xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}catch(e2){xmlHttp=false;}}if(!xmlHttp&&typeofXMLHttpRequest!='undefined'){xmlHttp=newXMLHttpRequest();}functioncallServer(){varsno=document.getElementById("sno").value;if((sno==null)||(sno==""))return;varurl="check_sno.php?sno="+escape(sno);xmlHttp.open("GET",url,true);xmlHttp.onreadystatechange=updatePage;xmlHttp.send(null);}functionupdatePage(){if(xmlHttp.readyState<4){ textout.innerHTML="驗(yàn)證學(xué)號(hào)……";}if(xmlHttp.readyState==4){varresponse=xmlHttp.responseText; textout.innerHTML=response;}}</script>通過xmlHTTP.open(“GET”,url,true)來打開一個(gè)異步通信,并且通過JS將輸入表單的數(shù)據(jù)以GET方式提交到服務(wù)器處理,然后xmlhttp對(duì)象等待并判斷狀態(tài),當(dāng)xmlHttp.readyState==4時(shí)即為服務(wù)器處理完頁面并且有返回,然后通過innerHTML方法將返回的數(shù)據(jù)輸出到預(yù)先設(shè)置的地方。4.2.5輸入提示功能的實(shí)現(xiàn)教師在輸入課題的同時(shí)會(huì)出現(xiàn)下拉列表,并且詳細(xì)的列出了課題名稱,命題教師等信息,可防止老師在命題時(shí)出現(xiàn)重復(fù),雖然該功能同AJAX的用戶信息嚴(yán)整類似,但是該方式實(shí)現(xiàn)卻比AJAX用戶信息驗(yàn)證復(fù)雜很多。該方法需要在輸入框字符發(fā)生變化的時(shí)候即刻將數(shù)據(jù)提交到服務(wù)器處理,并響應(yīng)。<inputtype="text"name="title"onMouseOver="returnname1()"onMouseOut="returnname2()"style="border:#2F589C4.2.6偽靜態(tài)頁面的實(shí)現(xiàn)通常情況下頁面之間傳遞參數(shù)的方法不外乎GET方式和POST方式,在傳遞少量信息的時(shí)候常用的是GET方式,但是GET方式一個(gè)很大的缺點(diǎn)就是很容易暴露程序調(diào)用的參數(shù)信息,當(dāng)程序安全性不夠高時(shí),某些人能夠利用該參數(shù)進(jìn)行注入攻擊。所以為了避免這種情況,使用了偽靜態(tài)來隱藏傳遞的參數(shù),這樣一方面滿足了安全性,另一方面也提高了用戶對(duì)URL地址的體驗(yàn)度。偽靜態(tài)的實(shí)現(xiàn)需要服務(wù)器支持重寫,并且Apache需要加載了重寫模塊:mod_rewrite.so然后在虛擬主機(jī)的配置文件中加入一行:AllowOverrideOptionsFileInfo然后在網(wǎng)站根目錄放一個(gè).htaccess文件,文件內(nèi)的內(nèi)容為:#將RewriteEngine模式打開RewriteEngineOn#Rewrite系統(tǒng)規(guī)則請(qǐng)勿修改RewriteRule^list-([a-z]+)-([0-9]+)\.html$list.php?act=$1&xt_id=$2RewriteRule^case-([a-z]+)-([0-9]+)\.html$case.php?act=$1&xt_id=$2 RewriteRule^select-([a-z]+)-([0-9]+)\.html$select.php?act=$1&xt_id=$2 RewriteRule^news-([a-z]+)-([0-9]+)\.html$news.php?act=$1&id=$2.htaccess內(nèi)的內(nèi)容實(shí)際為一批正則表達(dá)式,APACHE通過正則匹配,將提交的URL同重寫規(guī)則進(jìn)行逐條匹配,當(dāng)找到匹配項(xiàng)時(shí)就將對(duì)應(yīng)參數(shù)還原成本來的URL格式,然后再進(jìn)行處理。比如:URL=/jsjxt/news-news-9.html實(shí)際匹配了最后一條規(guī)則,服務(wù)器正式處理的URL則為news.php?act=news&id=94.2.7管理員數(shù)據(jù)導(dǎo)入的實(shí)現(xiàn)為了簡(jiǎn)化管理員的操作,后臺(tái)管理中加入了很多的數(shù)據(jù)導(dǎo)入功能,比如學(xué)生信息導(dǎo)入,教師信息導(dǎo)入,論文審批表信息導(dǎo)入。導(dǎo)入的數(shù)據(jù)格式根據(jù)隨原代碼中的數(shù)據(jù)樣式文件填寫。導(dǎo)入文件的格式為XLS,數(shù)據(jù)量沒有限制,在數(shù)據(jù)導(dǎo)入的時(shí)候會(huì)進(jìn)行數(shù)據(jù)的準(zhǔn)確性驗(yàn)證。include_once"../class/Excel/excel.php";//包含XLS類$data=newSpreadsheet_Excel_Reader();//定義對(duì)象$data->setOutputEncoding('utf-8');//格式化輸出的字符編碼$data->read("./upload_files/$filename");//設(shè)置讀曲的XLS文件位置error_reporting(E_ALL^E_NOTICE);$j=0;for($i=1;$i<=$data->sheets[0]['numRows'];$i++)//遍歷XLS中的所有記錄{ $sno=$data->sheets[0]['cells'][$i][1]; $name=$data->sheets[0]['cells'][$i][2]; $class=$data->sheets[0]['cells'][$i][3]; $phone=$data->sheets[0]['cells'][$i][4]; $tel=$data->sheets[0]['cells'][$i][5]; $email=$data->sheets[0]['cells'][$i][6]; $other=$data->sheets[0]['cells'][$i][7]; $xth=$data->sheets[0]['cells'][$i][8]; $password=$data->sheets[0]['cells'][$i][9]; $skill=$data->sheets[0]['cells'][$i][10]; $limit_3=$data->sheets[0]['cells'][$i][11]; $flag=$data->sheets[0]['cells'][$i][12]; $specify=$data->sheets[0]['cells'][$i][13]; if(eregi($ereg_sno,$sno)anderegi($ereg_pwd,$password)) { $row=$db->num_rows($db->query("selectidfromstudentwheresno='$sno'"));//判斷數(shù)據(jù)是否已經(jīng)存在 if($row) { echo'<tr><td>學(xué)號(hào)為'.$sno.'這條記錄已經(jīng)存在,沒有插入,請(qǐng)你核對(duì)。<br></td></tr>'; } else { $j++; $db->query("insertintostudentvalues('','$sno','$name','$class','$phone','$tel','$email','$other','','$password','$skill','$limit_3','$flag','$specify')"); } } else echo'<tr><td>學(xué)號(hào)為'.$sno.'這條記錄不合法,沒有插入<br></td></tr>';//提示信息}$i=$i-1;echo"<tr><td><fontcolor=red>共".$i."條記錄,其中插入成功$j條</td></tr>";unlink('upload_files/'.$filename);4.2.8按教師篩選顯示:1、先判斷頁面是否需要進(jìn)行篩選,如果有篩選需求則將教師ID用SESSION保存在服務(wù)器端,if($_GET['act']=='fiter'){ if(is_numeric($_POST['tid'])) $_SESSION['fiterid']=$_POST['tid']; else unset($_SESSION['fiterid']);}2、在數(shù)據(jù)顯示部分,判斷是否存在$_SESSION[‘fiter’]變量,如果有則表示顯示時(shí)需要進(jìn)行篩選,沒有則顯示全部數(shù)據(jù):$sql=isset($_SESSION['fiterid'])?"select*fromtab_xtwherepassed='1'andtid=$_SESSION[fiterid]":"select*fromtab_xtwherepassed='1'";4.3系統(tǒng)調(diào)試與排錯(cuò)由于系統(tǒng)的運(yùn)行環(huán)境已經(jīng)配置了X-Debug,該模塊會(huì)給出運(yùn)行過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論