畢業(yè)設計(論文)實驗室綜合門戶網站設計與實現(xiàn)_第1頁
畢業(yè)設計(論文)實驗室綜合門戶網站設計與實現(xiàn)_第2頁
畢業(yè)設計(論文)實驗室綜合門戶網站設計與實現(xiàn)_第3頁
畢業(yè)設計(論文)實驗室綜合門戶網站設計與實現(xiàn)_第4頁
畢業(yè)設計(論文)實驗室綜合門戶網站設計與實現(xiàn)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗室綜合門戶網站設計與實現(xiàn)摘 要實驗室綜合門戶網站是將實驗室通過計算機網絡連起來,采用科學的管理思想和先進的數據庫技術,實現(xiàn)以實驗室為核心的整體環(huán)境的全方位管理。它集資源管理,事務管理,網絡管理,數據管理(發(fā)布、編輯、刪除、查看、輸出),報表管理等諸多模塊為一體,組成一套完整的實驗室綜合管理體系,既能滿足外部的日常管理要求,又能保證實驗室分析數據的嚴格管理和控制。實驗室綜合門戶網站管理系統(tǒng)主要實現(xiàn)以下功能:實驗室介紹管理、實驗室新聞管理、實驗室項目管理、欄目管理、會員管理(包括前臺會員和管理員)、日志管理(登錄日志和操作日志)、網站設置、推薦位等。本系統(tǒng)提供了一個方便快捷的實驗室管理平臺,方

2、便了指導老師和實驗員的交流,提高了工作效率。實驗室綜合門戶網站管理系統(tǒng)基于b/s模式設計,以thinkphp為框架基礎,在wamp提供的apache+mysql+php環(huán)境下采用php語言進行編寫,以sublime text2為開發(fā)工具。關鍵詞:實驗室,網站設計,thinkphp,wamp the design and implementation of laboratory comprehensive portal websiteabstractlaboratory comprehensive portal is connected through the laboratory of com

3、puter network, the use of scientific management ideas and advanced database technology, realize the comprehensive management of the overall environment in the laboratory as the core. it sets the resource management, transaction management, network management, data management (release, delete, view,

4、edit, output) module, many statements of management as a whole, form a complete set of laboratory management system, which can meet the requirements of the daily management of the external, and can assure the strict management and control of laboratory data analysis.this system is mainly to achieve

5、the following functions: the management of laboratory, laboratory information management, laboratory project management, program management, membership management (including the members and administrators), log management (login and operation log), site settings, recommendation etc. provides a conve

6、nient platform for the laboratory management system, to facilitate the guidance of teachers and technicians of communication, improve work efficiency.this system is based on b/s design pattern with thinkphp framework, by using php language in wamp apache+mysql+php environment, using sublime text2 as

7、 a development tool.key words: laboratory ,website design,thinkphp ,wamp目錄前言1第1章 相關技術21.1 開發(fā)技術介紹21.1.1 php技術21.1.2 mysql數據庫21.1.3 apache服務器31.1.4 b/s結構31.2開發(fā)工具和運行環(huán)境4第2章 功能需求分析52.1 網站后臺功能需求52.1.1 實驗室介紹52.1.2 實驗室新聞管理52.1.3 實驗室項目管理52.1.4 欄目管理52.1.5 會員管理52.1.6 其它62.2 網站前臺功能需求62.2.1 基本信息展示62.2.2 會員中心62.2

8、.3 登錄注冊功能62.2.4 收藏和評論功能6第3章 概要設計73.1 數據字典73.2 功能模塊設計73.2.1 后臺流程73.2.2 內容管理83.2.3 欄目管理93.2.4 會員管理11第4章 詳細設計134.1 用戶功能設計與實現(xiàn)134.1.1 用戶注冊功能134.1.2 用戶評論功能164.1.3 會員中心174.2 后臺管理功能204.2.1 欄目管理204.2.2 權限設置224.2.3 日志管理264.2.4 防注入設置27結論28謝 辭29參考文獻30前言隨著社會的發(fā)展、信息技術的不斷更新、計算機應用的迅猛發(fā)展、網絡應用不斷擴大,internet已經得到了前所未有的高速發(fā)

9、展,網站已經成為了一個單位或者組織宣傳自己、了解別人、相互溝通的重要平臺,人們迫切要求利用計算機網絡技術來進行在線管理。除了可以大幅度提高人工效率和安全性之外,基于web的管理系統(tǒng)還可以自動分配各種設備、信息等資源、同時存檔,有效地避免資源的浪費,有利于環(huán)保,減少人員,減輕負擔,提高效率。計算機技術的進步,促使現(xiàn)代工業(yè)技術在快速發(fā)展,隨著科研和生產技術的不斷發(fā)展,企業(yè)的檢驗技術也從手工分析發(fā)展到儀器分析,檢驗項目大量增加,對數據的準確性和報出時間的要求越來越嚴格,數據處理量急速增加,原來的人工管理模式在這種形式下已顯得不太適應,使用計算機完成數據的收集、分析和處理的管理手段應運而生。在這一背景

10、下,實驗室信息管理系統(tǒng)開始出現(xiàn),并在實際應用中得到了快速發(fā)展,成為一項嶄新的實驗室管理與應用技術。 系統(tǒng)自動進行數據審核和超標數據監(jiān)測、提高分析數據的準確性;工作效率大為提高;降低實驗室成本消耗;通過對大量樣品數據的綜合統(tǒng)計分析,可以清楚地觀察到數據的變化趨勢、有效監(jiān)測產品質量,為解決出現(xiàn)不合格生產產品及生產工藝變化提供科學依據。借助計算機技術,實驗室內部實現(xiàn)網絡化全面管理,實現(xiàn)管理和檢驗工作的有效監(jiān)督管理,提高整體工作水平。高校實驗室的管理已經由過去單一的教學管理,發(fā)展成為集教學、科研、開發(fā)等多功能為一體的綜合體。實驗室也成為規(guī)模大型化、結構綜合化、系統(tǒng)復雜化、設備高檔化的實驗群體,由此帶來

11、的實驗室管理工作也日趨復雜化。第1章 相關技術1.1 開發(fā)技術介紹 1.1.1 php技術php(外文名:php: hypertext preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了c語言、java和perl的特點,利于學習,使用廣泛,主要適用于web開發(fā)領域。php 獨特的語法混合了c、java、perl以及php自創(chuàng)的語法。它可以比cgi或者perl更快速地執(zhí)行動態(tài)網頁。用php做出的動態(tài)頁面與其他的編程語言相比,php是將程序嵌入到html(標準通用標記語言下的一個應用)文檔中去執(zhí)行,執(zhí)行效率比完全生成html標記的cgi要高許多;php還可以執(zhí)

12、行編譯后代碼,編譯可以達到加密和優(yōu)化代碼運行,使代碼運行更快。 1.1.2 mysql數據庫mysql 是一個關系型數據庫管理系統(tǒng),由瑞典 mysql ab 公司開發(fā),目前屬于 oracle 公司。mysql 最流行的關系型數據庫管理系統(tǒng),在 web 應用方面 mysql 是最好的 rdbms (relational database management system,關系數據庫管理系統(tǒng)) 應用軟件之一。mysql 是一種關聯(lián)數據庫管理系統(tǒng),關聯(lián)數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。mysql 所使用的 sql 語言是用于訪問數據庫的

13、最常用標準化語言。mysql 軟件采用了雙授權政策(本詞條“授權政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發(fā)都選擇 mysql 作為網站數據庫。由于其社區(qū)版的性能卓越,搭配 php 和 apache 可組成良好的開發(fā)環(huán)境。與其他的大型數據庫例如 oracle、db2、sql server等相比,mysql 自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,mysql提供的功能已經綽綽有余,而且由于 mysq l是開放源碼軟件,因此可以大大降低總體擁有成本。 1.1.3 apache服

14、務器apache是世界使用排名第一的web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的web服務器端軟件之一。它快速、可靠并且可通過簡單的api擴充,將perl/python等解釋器編譯到服務器中。apache http服務器是一個模塊化的服務器,源于ncsahttpd服務器,經過多次修改,成為世界使用排名第一的web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上。apache源于ncsahttpd服務器,經過多次修改,成為世界上最流行的web服務器軟件之一。apache取自“a patchy server”的讀音,意思是充滿補丁的

15、服務器,因為它是自由軟件,所以不斷有人來為它開發(fā)新的功能、新的特性、修改原來的缺陷。apache的特點是簡單、速度快、性能穩(wěn)定,并可做代理服務器來使用。本來它只用于小型或試驗internet網絡,后來逐步擴充到各種unix系統(tǒng)中,尤其對linux的支持相當完美。apache有多種產品,可以支持ssl技術,支持多個虛擬主機。apache是以進程為基礎的結構,進程要比線程消耗更多的系統(tǒng)開支,不太適合于多處理器環(huán)境,因此,在一個apache web站點擴容時,通常是增加服務器或擴充群集節(jié)點而不是增加處理器。到目前為止apache仍然是世界上用的最多的web服務器,市場占有率達60%左右。世界上很多著

16、名的網站如amazon、yahoo!、w3 consortium、financial times等都是apache的產物,它的成功之處主要在于它的源代碼開放、有一支開放的開發(fā)隊伍、支持跨平臺的應用(可以運行在幾乎所有的unix、windows、linux系統(tǒng)平臺上)以及它的可移植性等方面。1.1.4 b/s結構b/s結構(browser/server結構)結構即瀏覽器和服務器結構。它是隨著internet技術的興起,對c/s結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過www瀏覽器來實現(xiàn),極少部分事務邏輯在前端(browser)實現(xiàn),但是主要事務邏輯在服務器端(server)實

17、現(xiàn),形成所謂三層3-tier結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(tco)。以目前的技術看,局域網建立b/s結構的網絡應用,并通過internet/intranet模式下數據庫應用,相對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如lan, wan, internet/intranet等)訪問和操作共同的數據庫;它能有效地保護數據平臺和管理訪問權限,服務器數據庫也很安全。b/s結構有許多優(yōu)點,例如:可以隨時隨地進行查詢、瀏覽等業(yè)務處理,并具有分布性特點;業(yè)務擴展簡單方便,通過增加網

18、頁即可增加服務器功能;維護簡單方便,只需要改變網頁,即可實現(xiàn)所有用戶的同步更新;開發(fā)簡單,共享性強等。1.2開發(fā)工具和運行環(huán)境操作系統(tǒng):windows 7;服務器環(huán)境:wamp5_1.7.4提供;開源框架:thinkphp;開發(fā)工具:sublime text 2;數據庫鏈接工具:navicat premium。 第2章 功能需求分析2.1 網站后臺功能需求2.1.1 實驗室介紹實驗室介紹是對實驗室的基礎描述,用戶可以通過該欄目了解各實驗室的基礎情況以及實驗的項目。后臺提供實驗室介紹的添加、修改、刪除、查看等功能。2.1.2 實驗室新聞管理實驗室新聞管理是對實驗室新聞的集中處理,在該欄目下用戶可

19、以了解到實驗室的大小事件,以及時間的處理方法。后臺提供實驗室新聞的添加、修改、刪除、下架、等功能。2.1.3 實驗室項目管理實驗室項目管理是實驗室項目的集中處理,實驗室項目包括實驗大綱和實驗講義。實驗大綱體現(xiàn)了實驗的大致情況,同學們在進行實驗之前對要進行的實驗有大致的了解;實驗講義是實驗的詳細講解,讓同學們充分了解實驗的內容和注意事項。后臺提供實驗室項目的添加、修改、刪除、下架、等功能。2.1.4 欄目管理欄目是網站的支架,是網站的主要構成部分,它就像一張無形的網,讓網站的各個環(huán)節(jié)組合成一個主體。欄目保證了網站的層級關系和結構的完整性。 后臺提供欄目的添加、修改、刪除、鎖定等功能。2.1.5

20、會員管理會員管理包括前臺會員管理和后臺會員管理。后臺會員即網站管理員,管理員要有修改網站內容的權利。管理員有不同的權限,鞏固網站的安全性。前臺會員主要進行信息的收藏、評論功能。2.1.6 其它除以上功能外還有網站的基本設置、推薦位管理、操作日志、登錄日志管理等功能,這些功能是對網站的進一步完善,同事也讓網站的管理者跟容易的處理網站相關事務。2.2 網站前臺功能需求2.2.1 基本信息展示網站的前臺信息展示是用戶能直接看到的部分,此部分沒有后臺復雜,但要有良好的交互性。信息展示主要包括信息的分類、信息列表以及詳細信息。因項目與新聞有著本質的區(qū)別,故在設計時對二者采用了不一樣的設計方案。用戶可以對

21、關注的新聞進行收藏、評論、分享等操作。2.2.2 會員中心用戶可以在會員中心修改自己的基本信息、登錄密碼。同時用戶還可以在會員中心查看管理自己收藏和評論的內容,讓用戶在使用中有更好的體驗。2.2.3 登錄注冊功能用戶可以通過注冊成為網站會員,已經個注冊過的會員可以通過登錄網站進入會員中心,進行收藏、評論等操作。2.2.4 收藏和評論功能用戶可以對感興趣的新聞進行收藏和評論操作。收藏功能方便用戶更快的找到收藏過的新聞;評論則滿足用戶對新聞的觀點,方便用戶與用戶之間的交流,評論要記錄評論人id(或昵稱),用戶同時可以回復別人的評論并且要有無限極回復功能。第3章 概要設計3.1 數據字典數據字典通常

22、包括數據項、數據結構、數據流、數據存儲和處理過程5部分。其中數據項是數據的最小組成單位,若干個數據項可以組成一個數據結構,數據字典通過對數據項和數據結構的定義來描述數據流、數據存儲的邏輯內容。數據項是不可再分的數據單位。對數據項的描述通常包括以下內容:數據項描述=數據項名,數據項含義說明,別名,數據類型,長度,取值范圍,取值含義,與其他數據項的邏輯關系,數據項之間的聯(lián)系。通過對本系統(tǒng)的分析,得出本系統(tǒng)的數據字典:用戶信息的描述項如表3-1所示。表3-1 用戶信息名稱:用戶別名:users描述:存儲系統(tǒng)中用戶的基本信息組成:用戶=用戶名+密碼+真實姓名+性別+年齡+會員類型+駕齡+駕駛證號+聯(lián)系

23、方+電子郵箱3.2 功能模塊設計 3.2.1 后臺流程根據后臺功能設計,畫出后臺功能大致流程結構圖如圖3-1所示。圖3-1 后臺流程圖3.2.2 內容管理內容主要包括實驗室項目和實驗室新聞以及實驗室介紹等內容。這部分主要實現(xiàn)的功能為內容的添加、修改、刪除、下架、還原等操作。新聞部分還包括收藏和評論。根據功能分析內容管理大致流程圖3-2所示。圖3-2 內容管理流程圖根據內容管理功能要求設計數據庫關系如圖3-3所示(以新聞管理為例)。圖3-3 新聞表設計3.2.3 欄目管理網站欄目主要實現(xiàn)欄目的添加,修改,刪除,添加子欄目(能夠無限極添加子欄目)等功能。欄目設立欄目模型,不同的模型有不一樣的展示方

24、式。模型同樣有添加、修改、刪除等功能。根據欄目功能設計,欄目流程圖如圖3-4所示。圖3-4 欄目管理流程圖欄目表設計如圖3-5所示。圖3-5 欄目表設計模型表設計如圖3-6所示。圖3-6 模型表設計3.2.4 會員管理會員模塊主要是用于記錄網站用戶信息,登陸網站。管理員還用于網站的管理工作,擁有不同的權限。會員歸屬會員組,組有組權限,凡在此組下的會員都有該組的權限,從而進行管理員的權限控制。會員管理還需會員的登錄及操作日志,方便通過會員的登錄以及操作日志追蹤會員進行的操作。但網站出現(xiàn)錯誤時方便追蹤錯誤。會員表設計如圖3-7所示。圖3-7 會員表設計圖3-8 會員副表設計圖3-9 會員組表設計圖

25、3-10 會員操作日志表設計 第4章 詳細設計4.1 用戶功能設計與實現(xiàn)4.1.1 用戶注冊功能當用戶正確、完整填寫注冊信息之后,檢查用戶名是否重復,如果重復則停止將用戶信息上傳至用戶信息表。如果不重復,則上傳相關數據,將一條新紀錄添加到用戶信息表中。注冊頁面的設計關鍵是運用了大量的驗證控件來控制用戶注冊時填寫的信息。比如用戶名和密碼等不能為空,密碼與確認密碼內容要一致。用戶注冊頁面的流程圖如圖4-1所示。圖4-1 用戶注冊流程圖注冊時驗證用戶名重復代碼如圖4-2所示。圖4-2 驗證用戶名代碼如上圖代碼所示,通過ajax技術在用戶輸入用戶名后觸發(fā)用戶名驗證,驗證通過代碼返回1,不通過則返回0。

26、然后通過js判斷返回值,反饋到前端頁面。用戶名驗證無刷新反饋提醒如圖4-3所示:圖4-3 驗證用戶名重復用戶名重復檢測通過后,檢測密碼是否符合規(guī)則,兩次密碼是否一致,密碼通過后,會執(zhí)行注冊代碼,在數據庫的用戶表中添加一條數據。插入數據庫代碼如下:if(empty($_postagreement) | !isset($_postagreement)$this-error(你沒有同意用戶注冊協(xié)議);exit;$info = $_postinfo;$infousername ? : $this-error(用戶名不能為空); if($infopassword & $infopassword=$inf

27、orep_password)$infomima = $infopassword;$infopassword = passwordmember($infopassword);unset($inforep_password);$infonickname= $infonickname? $infonickname : $infousername;$infogroupid = 2;$inforegtime = time();$infolasttime = time();$infolognum = 1;$infologtime = time();$inforegip = ip();$infolastip

28、 = ip();$infologip = ip();$infolistorder = 10;$m = $this-member_db-data($info)-add(); $this-member_data_db-data(array(userid=$m)-add(); if($m) session(lab_userid,$m); session(lab_username,$infousername); $this-success(注冊成功,_root_); else $this-error(注冊失敗); else$this-error(兩次密碼輸入不一致);4.1.2 用戶評論功能用戶評論是

29、用戶對信息的反饋,用戶與用戶之間也要有良好的交互性,便于用戶之間的交流。用戶評論是基于新聞信息的,呈現(xiàn)在新聞的底部區(qū)域。評論區(qū)域包括評論文本框、驗證碼、提交按鈕。驗證碼為防止用戶惡意發(fā)表評論、刷評論等行為。評論框下是各個用戶對該條信息的評論列表以及用戶與用戶之間的交互。用戶評論模塊設計如圖4-4所示。圖4-4 評論設計用戶在輸入完評論內容之后要輸入驗證碼驗證,驗證碼保證網站不被惡意攻擊。驗證碼的驗證同樣采用ajax異步驗證功能,驗證不通過后即使提醒,方便重新輸入。驗證碼驗證通過后提交評論內容,程序會在數據庫的評論表中插入一條數據,數據記錄評論人、評論時間、被評論文章的相關信息等。提交評論代碼如

30、下:/*發(fā)表評論*/public function comment() $catid = isset($_getcatid) ? intval($_getcatid) : 0; $aid = isset($_getaid) ? intval($_getaid) : 0; if(empty($catid) | empty($aid) $this-error(參數錯誤); if(!$this-userid | !$this-username) $this-error(請先登錄再發(fā)表評論); $comment = $_postcomment;/安全過濾 $commentcontent = htmls

31、pecialchars($commentcontent); $commentuserid = $this-userid; $commentusername = $this-userinfonickname; $commentcatid = $catid; $commentaid = $aid; $commentmodelid = $this-get_modelid($catid); /獲取模型id $commentip = ip(); $commentstatus = 99; $commentinputtime = time(); $comment_db = m(comment); $comm

32、ent_db-add($comment); $this-success(評論成功,$_serverhttp_referer.#comment_link); 4.1.3 會員中心會員中心是前臺會員的管理中心,主要包括會員信息展示、會員信息修改、登錄密碼修改、收藏管理、評論管理。用戶可以在收藏管理中快速找到自己收藏的內容,也可以刪除該收藏。在評論列表中用戶可以看到自己評論的內容,用戶也可以通過該入口查看自己的評論,可以快速找到被評論的文章,也可以刪除評論。用戶個人資料除基本的信息外還包括注冊時間、上次登錄時間、本次登錄時間以及登錄次數,方便用戶更清楚的了解到自己的賬戶信息。用戶在會員中心修改密碼時

33、首先要驗證舊密碼,舊密碼驗證不通過不允許修改密碼,這樣保證用戶賬戶的安全性,防止被惡意修改密碼。如果用戶忘記自己的密碼,需要與管理員聯(lián)系,讓管理員幫其修改密碼。會員中心收藏管理如圖4-5所示。圖4-5 會員中心收藏管理會員中心評論管理如圖4-6所示。圖 4-6 會員中心評論管理會員中心個人資料展示如圖4-7所示。圖4-7 會員中心個人資料會員中心密碼修改代碼如圖4-8所示。圖4-8 密碼修改代碼4.2 后臺管理功能4.2.1 欄目管理欄目的設計與實現(xiàn)中除了欄目最基本的添加、修改等功能外最主要的就是要實現(xiàn)欄目的無限級添加。欄目的無限級添加保證了欄目結構的完整性和嚴謹性,在技術上欄目的無限極添加也

34、是挑戰(zhàn),主要的難點在于欄目與子欄目之間的關聯(lián)。在欄目的列表中上下級的關系顯示也顯得非常重要,同時這也是難點。欄目的數據庫設計如圖4-9所示。圖4-9 欄目數據庫設計欄目列表引入了一個完整的無限級欄目分類的類文件,這讓欄目的呈現(xiàn)變得更簡單,簡潔,調用也很方便。欄目列表調用dptree.class.php 代碼如下:public function page_list() $category_db = m(category);$where = array(modelid=4,status=99);$order = parentid asc,listorder asc; $list = $catego

35、ry_db-where($where)-order($order)-select();$parm = array(catid,parentid,catname,sname); $tree = new thinkdptree($parm ); $page_list = $tree-gettree($list); $this-assign(page_list,$page_list); $this-display(page_list); 欄目列表的最終呈現(xiàn)如圖4-10所示。圖4-10 欄目列表無限級添加欄目代碼如下:$info = $_postinfo;if($infocatname & $info

36、modelid) $infocatname = htmlspecialchars($infocatname); $infoinputtime = time(); $infoshow = 1; $catid = $this-category_db-add($info); if($infoparentid=0) $infosarrparentid = 0; else $parentid = $infoparentid; /獲取該欄目的arrparentid字符串 $parent = $this-category_db-find($parentid); $infosarrparentid = $pa

37、rentarrparentid; $infosarrparentid .= ,.$parentid; /更新該欄目上級欄目的childrenid字符串 $this-catparent($parentid,$catid); /該欄目的子欄目 $infoschildrenid = $catid; $infosupdatetime = time(); $where = array(catid=$catid); $this-category_db-where($where)-save($infos);public function catparent($parentid,$catid) if(empt

38、y($parentid) | empty($catid) return false; $parent = $this-category_db-find($parentid); if(empty($parent) return false; /如果上級欄目為空返回false /修改上級欄目的childrenid字符串 $infochildrenid = $parentchildrenid.,.$catid;$where = array(catid=$parentid); $this-category_db-where($where)-save($info); if($parentparentid

39、) /如果上級欄目還有上級欄目再次調用本方法 $this-catparent($parentparentid,$catid); else return true; 4.2.2 權限設置權限是管理員權利的體現(xiàn),是管理員管理網站必不可少的,不一樣的管理員賦予不一樣的權利也保證了網站的安全性。在網站權限的設計中,我采用了讀取權限文件的方法來管理權限。權限的文件主要有兩個,一個是擁有所有權限即權限名稱的文件privall.php,另一個是管理員對應相應權限的文件priv.php。priv.php的內容為json格式的字符串,在使用時讀取json字符串轉化為數組,在管理員進行操作時判斷是否有操作的權限。

40、管理員權限修改頁面如圖4-11所示。圖4-11 權限修改頁面權限寫入文件代碼如下:function set_config($config,$key,$filename)$path = conf_path.$filename.php;if(!is_writable($path) return -1; /文件不可寫時返回-1if($key)$filecontent = file_get_contents($path); /獲取文件內容 /將json格式轉化為數組$filecontent = json_decode($filecontent,true); $filecontent$key = $co

41、nfig; /替換要修改的內容else$filecontent = $config; $content = json_encode($filecontent); /將數組轉化為jsonfile_put_contents($path,$content); /寫入文件return 1;讀取權限文件代碼如下:function load_configs($filename,$key=,$json=true)$config = array();if(empty($filename) return $config;$path = conf_path.$filename.php;if($json)$conf

42、ig = file_get_contents($path);$config = json_decode($config,true);else$config = include $path;if(empty($key)return $config;elseif(isset($config$key)return $config$key;elsereturn array();權限判斷代碼如下:public function check_priv(&$param) $userid = session(admin_userid); $username = session(admin_username);

43、 if(empty($userid)|empty($username)&action_name!= login) /$this-error(請先登錄,_controller_./login); header(location:._module_./index/login); $public = a(public); $userinfo = $public-userinfo($userid); $privall = load_configs(privall,false); $privlist = load_configs(priv,$userinfogroupid); $module = con

44、troller_name; $action = action_name; if(isset($privall$module)&in_array($action,$privall$module)&$userinfogroupid!=1) if(!isset($privlist$module) | !in_array($action,$privlist$module) $param = -1; 該方法用傳址的方法修改參數值,在公共函數的構造方法中判斷該參數的值,如果值為-1則提醒沒有權限操作。4.2.3 日志管理日志管理是網站的輔助工具,通過日志可以看出哪些管理員和會員登錄了網站,可以看出管理員進

45、行了哪些操作,方便以后追蹤錯誤。因此日志要包含操作者,操作時間,操作的模塊名稱,控制器名稱,方法名稱,以及登錄日志里用戶的操作系統(tǒng),瀏覽器,ip地址等信息。由于日志記錄的全面性(任何操作都會記錄到日志)會生成過多的記錄,這對數據庫很不利,一次日志提供刪除一月前日之后的功能,這樣可以及時對沒用的日志進行清理,節(jié)省數據空間。為排錯時方便日志還有搜索功能,在搜索條件的限定下可以找到某個用戶進行的所有操作,也可以找到進行某個操作的所有用戶,操作日志里的日期篩選可以把日志固定到兩個時間之間,這樣方便了錯誤發(fā)生時的排查。登錄日志效果如圖4-12所示。圖4-12 登錄日志操作日志效果如圖4-13所示。圖4-

46、13 操作日志4.2.4 防注入設置防注入是對用戶及管理員輸入的內容進行安全處理,防止輸入的內容里有摻雜的代碼內容而讓程序終止或者出現(xiàn)錯誤,更嚴重的還會導致數據庫的癱瘓。防注入主要運用php內置函數htmlspecialchars 進行轉化讓需要的內容轉化為html實體。htmlspecialchars函數轉化的對象是字符串,而網站中為方便通常要對數組進行安全過濾,這里用到了回調函數。除編輯器里的文本內容外,管理員輸入信息、修改信息、搜索,會員修改資料時都需要用安全過濾函數過濾。錄入信息是防注入的一種情況,還有一種情況就是地址欄過濾。網絡黑客可以通過瀏覽器的地址輸入某些代碼信息讓程序報錯,然后

47、破解你的數據庫,同樣可以利用地址欄刪除你的數據庫,這是非常危險的。所以在接收地址欄參數的時候要有一些安全措施防止參數中夾雜代碼。比如當接收的參數是整型數據時,可以用intval()函數轉化,這樣即使參數被惡意改為非整型函數也會把參數轉化為整型。安全過濾函數代碼如下:function safe_array(&$info,$pass=array()if(is_array($info)foreach ($info as $_k = $_v) if(is_array($pass) & !in_array($_k,$pass) | empty($_k)$info$_k = safe_array($_v,$pass);else$info = htmlspecialchars($info);return $info; 結論在指導老師李明照的認真指導下,通過這緊張的幾個月努力,畢業(yè)設計課題基本成型。 這幾個月使我學會了很多東西。從對b/s模型的不了解,到掌握這門技術,把以前學的比較零的東西放到了一個完成的系統(tǒng)中,使知識成了體系。比如像數據庫的設計和連接技術,css技術,html技術,php技術應用到了實踐中,自成一體。同時,學會了用嚴謹的軟件工程學來做設計,為我走向社會從事it行業(yè)打下了一個不錯的基礎。同時,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論