版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE畢業(yè)設(shè)計(jì)(論文)題目:基于PHP的網(wǎng)上書(shū)店學(xué)生姓名學(xué)號(hào)201022040135班級(jí)信息管理102201H所屬院(系)計(jì)算機(jī)科學(xué)與技術(shù)系指導(dǎo)教師2014年5月20日35-基于PHP的網(wǎng)上書(shū)店摘要隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和通訊技術(shù)的飛速發(fā)展,淘寶等一系列的電子商務(wù)網(wǎng)站的成功并迅速的發(fā)展,給許多的企業(yè)創(chuàng)造了許多的網(wǎng)絡(luò)商機(jī)。企業(yè)已不再拘泥于傳統(tǒng)的銷(xiāo)售模式,各個(gè)領(lǐng)域也紛紛加入到了電子商務(wù)中。網(wǎng)上書(shū)店的產(chǎn)生即是一種新型圖書(shū)銷(xiāo)售渠道。網(wǎng)上書(shū)店系統(tǒng)是一個(gè)可以無(wú)限伸展的電子系統(tǒng)書(shū)庫(kù).它可以容納無(wú)限的圖書(shū)或圖樣乃至于內(nèi)容;檢索查詢(xún)可以不受時(shí)間空間的限制,圖書(shū)不受上架周期的限制,可以提高書(shū)籍的銷(xiāo)量,為出版社尤其是專(zhuān)業(yè),學(xué)術(shù)出版社提供窗口支持,該系統(tǒng)的運(yùn)用也可以推動(dòng)網(wǎng)上支付,郵政,速遞等服務(wù)行業(yè)的迅速發(fā)展。通過(guò)網(wǎng)上書(shū)店,人們可以足不出戶(hù)就選購(gòu)自己所需的圖書(shū)。網(wǎng)上書(shū)店系統(tǒng)主要由前臺(tái)圖書(shū)銷(xiāo)售和后臺(tái)管理維護(hù)系統(tǒng)兩部分構(gòu)成;在支持整個(gè)網(wǎng)站的運(yùn)作功能的基礎(chǔ)上,能幫助用戶(hù)方便快速的選購(gòu)圖書(shū),同時(shí)也能幫助后臺(tái)管理員管理相關(guān)業(yè)務(wù);并具有占用系統(tǒng)資源少、信息量大、站點(diǎn)維護(hù)方便、便于擴(kuò)充和更新、易于繼承和保護(hù)歷史數(shù)據(jù)等優(yōu)點(diǎn)。該系統(tǒng)可以克服傳統(tǒng)圖書(shū)銷(xiāo)售中地域、廣告宣傳、人力資源不足等限制,能很好地適應(yīng)網(wǎng)上銷(xiāo)售需求。該網(wǎng)站的代碼編寫(xiě)使用的是PHP語(yǔ)言,利用MySQL數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)信息,網(wǎng)站設(shè)計(jì)使用HTML+CSS+JavaScript。關(guān)鍵詞:網(wǎng)上書(shū)店,PHP,MySQL,購(gòu)書(shū),電子商務(wù)TheonlinebookstorebasedonPHPAbstractWiththerapiddevelopmentofcomputernetworktechnologyandcommunicationtechnology,thedevelopmentofTaobaoandaseriesofelectroniccommercewebsitesuccessfullyandquickly,createmanyoftheInternetbusinessopportunitiesformanyenterprises.Enterprisesarenolongerconfinedtothetraditionalsalesmode,fieldshavealsojoinedtotheelectroniccommerce.Onlinebookstoreisanewgenerationofbooksaleschannels.Onlinebookstoresystemisanunlimitedextensionoftheelectronicsystemoflibrary.Itcanaccommodateinfinitebookorpatternandcontent;thequerymaynotbesubjecttotherestrictionsoftimeandspacesearch,bookshelfperiodwithoutrestrictions,canincreasethesalesofbooksforthepress,especiallyprofessional,AcademicPressprovidesawindowsupport,applicationthesystemcanalsopromotetherapiddevelopmentofInternetpayment,postal,courierservices.Throughtheonlinebookstore,peoplecanremainwithindoorswillbuythebookstheyneed.Onlinebookstoresystemmainlysalesbythebookandthebackstagemanagementmaintenancesystembasedonthetwopart;supporttheoperationoftheentiresitefunction,canhelptheusertoconvenientlyandquicklytobuybooks,butalsocanhelptheadministratormanagementrelatedbusiness;andhastheadvantagesofoccupyinglesssystemresources,alargeamountofinformation,convenient,sitemaintenanceconvenientexpandandupdate,easytoinheritandprotectthehistoricaldata.Thesystemcanovercomethetraditionalbooksalesintheregion,advertising,humanresourcessuchaslackofrestrictions,canbewelladaptedtotheneedsofonlinesales.ThesiteofthecodeiswrittenusingPHPlanguage,usingMySQLdatabasetostoredatainformation,websitedesignusingHTML+CSS+JavaScript.KeyWords:Onlinebookstore,PHP,MySQL,books,ElectronicCommerce目錄第1章緒論 -1-1.1項(xiàng)目背景 -1-1.2目的與意義 -1-1.3開(kāi)發(fā)環(huán)境 -1-1.4系統(tǒng)概論 -2-第2章相關(guān)技術(shù)及開(kāi)發(fā)工具簡(jiǎn)介 -3-2.1相關(guān)技術(shù)介紹 -3-2.2開(kāi)發(fā)工具及環(huán)境簡(jiǎn)介 -4-第3章系統(tǒng)需求分析 -5-3.1可行性分析 -5-3.2系統(tǒng)用戶(hù) -5-3.3功能需求 -5-3.4業(yè)務(wù)邏輯描述 -7-3.5性能需求 -8-第4章系統(tǒng)概要設(shè)計(jì) -9-4.1概念模型設(shè)計(jì) -9-4.2邏輯模型設(shè)計(jì) -10-4.3功能結(jié)構(gòu)設(shè)計(jì) -10-4.3.1前臺(tái)功能結(jié)構(gòu)分析與設(shè)計(jì) -11-4.3.2后臺(tái)功能結(jié)構(gòu)分析與設(shè)計(jì) -12-4.4數(shù)據(jù)庫(kù)設(shè)計(jì) -12-4.4.1數(shù)據(jù)庫(kù)需求分析 -12-4.4.2系統(tǒng)數(shù)據(jù)流程圖 -13-4.4.3數(shù)據(jù)字典 -13-第5章系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) -18-5.1前臺(tái)功能模塊設(shè)計(jì)與實(shí)現(xiàn) -18-5.2后臺(tái)管理模塊設(shè)計(jì)與實(shí)現(xiàn) -22-第6章系統(tǒng)測(cè)試 -24-總結(jié) -25-參考文獻(xiàn) -26-致謝 -27-附錄 -28-太原科技大學(xué)華科學(xué)院畢業(yè)設(shè)計(jì)(論文)第1章緒論1.1項(xiàng)目背景當(dāng)今世界正處于科技高速發(fā)展,信息量劇增的時(shí)代,伴隨科學(xué)技術(shù)的不斷發(fā)展進(jìn)步,人們對(duì)于知識(shí)的需求與日俱增。淘寶等一系列電商的成功更是推動(dòng)了電子商務(wù)的發(fā)展,各個(gè)領(lǐng)域都加入到了電子商務(wù)中。傳統(tǒng)意義的書(shū)店仍然存在,但仍是有它的局限性,有些書(shū)不能夠及時(shí)的進(jìn)行更新、補(bǔ)充,地域條件等一系列因素的限制,盡管圖書(shū)館的藏書(shū)有許多,仍是不能滿(mǎn)足廣大讀者的需要。網(wǎng)上書(shū)店的形成,不僅可以規(guī)避掉傳統(tǒng)圖書(shū)館的漏洞,還搭乘著時(shí)尚列車(chē),為圖書(shū)事業(yè)的發(fā)展開(kāi)啟了新的方向??傊?,網(wǎng)上書(shū)籍的銷(xiāo)售不僅是傳統(tǒng)銷(xiāo)售渠道的補(bǔ)充和發(fā)展,也是未來(lái)書(shū)籍銷(xiāo)售的發(fā)展方向。發(fā)達(dá)的網(wǎng)絡(luò)可以直接疏通書(shū)籍的發(fā)行渠道,縮短了網(wǎng)上購(gòu)書(shū)者與出版社的距離,使購(gòu)書(shū)不受時(shí)間、地域限制;網(wǎng)上書(shū)店的信息量豐富讓用戶(hù)了解書(shū)市的最新情況,如基本書(shū)目信息、封面、目次、內(nèi)容提要、書(shū)評(píng)等,這些信息都有助于用戶(hù)準(zhǔn)確地選到自己想要的書(shū)籍。1.2目的與意義網(wǎng)上書(shū)店,是一種常用的電子商務(wù)性質(zhì)的網(wǎng)站系統(tǒng)。當(dāng)今比較流行的網(wǎng)上書(shū)店系統(tǒng)國(guó)外有“卓越”,國(guó)內(nèi)有“當(dāng)當(dāng)”。它們都是相當(dāng)優(yōu)秀的電子商務(wù)網(wǎng)站,對(duì)其他的網(wǎng)站提供了良好的典范。通過(guò)自己動(dòng)手制作網(wǎng)站,將所學(xué)的知識(shí)運(yùn)用到設(shè)計(jì)中去,在實(shí)踐中不僅加深了自己對(duì)專(zhuān)業(yè)技術(shù)的理解程度,同時(shí)也鞏固了技術(shù)水平。通過(guò)這次設(shè)計(jì),也可以學(xué)到很多新的技術(shù)知識(shí),了解編程行業(yè)的常用技術(shù)手段。通過(guò)代碼編寫(xiě),領(lǐng)悟代碼如何編寫(xiě)才可以使網(wǎng)站效果可以呈現(xiàn)的更好。通過(guò)自己來(lái)編寫(xiě)整個(gè)系統(tǒng)的代碼,學(xué)會(huì)了如何掌握整體的方向,前后代碼的編寫(xiě),息息相關(guān)。在編程中,借鑒優(yōu)秀的已有的書(shū)店網(wǎng)站動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)的代碼,吸取他們編程過(guò)程中的優(yōu)點(diǎn)為自己所用,在這個(gè)過(guò)程中也學(xué)到了許多的編程經(jīng)驗(yàn)。在了解書(shū)籍行業(yè)的總體方向后,通過(guò)自己設(shè)計(jì)和管理后臺(tái)數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)的認(rèn)識(shí)也有加深??傊?,這次的獨(dú)立系統(tǒng)設(shè)計(jì),學(xué)到了很多的專(zhuān)業(yè)技術(shù)技能。1.3開(kāi)發(fā)環(huán)境硬件環(huán)境:PC機(jī)軟件環(huán)境:(1)操作環(huán)境:Linux操作系統(tǒng)XAMPP集成環(huán)境(2)開(kāi)發(fā)工具:Eclipse(3)數(shù)據(jù)庫(kù):MySQL數(shù)據(jù)庫(kù)1.4系統(tǒng)概論本次畢業(yè)設(shè)計(jì)的任務(wù)是構(gòu)建一個(gè)基于PHP的網(wǎng)上書(shū)店,網(wǎng)站的開(kāi)發(fā)是基于XAMPP集成環(huán)境。利用Smarty模板實(shí)現(xiàn)前后臺(tái)代碼的分離,大大得提高了代碼的編寫(xiě)效率,代碼修改也更加方便。系統(tǒng)的邏輯代碼使用的是PHP語(yǔ)言,系統(tǒng)網(wǎng)頁(yè)的制作用到了HTML語(yǔ)言和CSS樣式,為了使網(wǎng)頁(yè)效果更加美觀,還使用了JavaScript腳本語(yǔ)言,給網(wǎng)頁(yè)制作了一些動(dòng)態(tài)的表達(dá)效果。數(shù)據(jù)的存儲(chǔ)使用的是MySQL數(shù)據(jù)庫(kù),增刪改查信息非常的方便?;赑HP的網(wǎng)上書(shū)店分為前臺(tái)管理和后臺(tái)管理兩部分。前臺(tái)管理幫助用戶(hù)實(shí)現(xiàn)網(wǎng)站注冊(cè)賬號(hào)、登錄以及注銷(xiāo),用戶(hù)可以瀏覽書(shū)籍目錄內(nèi)的圖書(shū),還可查看某本書(shū)籍的基本信息,將需要的書(shū)籍可以加入到購(gòu)物車(chē),并可以實(shí)現(xiàn)訂單的提交。后臺(tái)管理幫助管理員處理訂單信息,修改圖書(shū)信息和查看已注冊(cè)的用戶(hù)信息,完成前臺(tái)管理提交的業(yè)務(wù),使整個(gè)網(wǎng)站可以正常有序的進(jìn)行工作。第2章相關(guān)技術(shù)及開(kāi)發(fā)工具簡(jiǎn)介本設(shè)計(jì)是基于PHP的網(wǎng)上書(shū)店,要運(yùn)用到的技術(shù)有Smarty模板、PHP編程語(yǔ)言、HTML語(yǔ)言、CSS樣式和JavaScript腳本語(yǔ)言。系統(tǒng)運(yùn)行的環(huán)境是XAMPP集成環(huán)境,內(nèi)置有MySQL數(shù)據(jù)庫(kù)。使用的開(kāi)發(fā)工具是Eclipse。2.1相關(guān)技術(shù)介紹Smarty是一個(gè)使用PHP寫(xiě)出來(lái)的模板PHP模板引擎,它提供了邏輯與外在內(nèi)容的分離,提供了一種易于管理和使用的方法,將原本與HTML代碼混雜在一起的PHP代碼邏輯分離。簡(jiǎn)單說(shuō),目的就是要使PHP程序員同美工分離開(kāi),使得程序員改變程序的邏輯內(nèi)容不會(huì)影響到美工的頁(yè)面設(shè)計(jì),美工重新修改頁(yè)面不會(huì)影響到程序邏輯。PHP,HypertextPreprocessor的縮寫(xiě),中文名叫做“超文本預(yù)處理器”,是一種被廣泛應(yīng)用的開(kāi)放源代碼的多用途的腳本語(yǔ)言,它可嵌入到HTML中,尤其適合Web開(kāi)發(fā)。其語(yǔ)法利用了C,Java和Perl,非常容易學(xué)習(xí)。該語(yǔ)言的主要目標(biāo)是讓W(xué)eb開(kāi)發(fā)人員可以很快寫(xiě)出動(dòng)態(tài)生成的網(wǎng)頁(yè),但PHP的功能遠(yuǎn)不止如此[1]。HTML(HypeTextMarkupLanguage,超文本標(biāo)記語(yǔ)言)是編寫(xiě)Web頁(yè)的語(yǔ)言?!俺谋尽本褪侵疙?yè)面內(nèi)可以包含圖片、鏈接、音樂(lè)、程序等非文字元素。HTML語(yǔ)言使用帶有尖括號(hào)的“標(biāo)記”將網(wǎng)頁(yè)中的內(nèi)容逐一標(biāo)識(shí)處理(被標(biāo)識(shí)的部分叫做“元素”),這樣做可以讓網(wǎng)頁(yè)以字符流的方式在網(wǎng)絡(luò)中流動(dòng),在用戶(hù)端使用瀏覽器對(duì)這些字符流進(jìn)行翻譯并按照標(biāo)識(shí)的要求顯示出來(lái)[2]。HTML是一個(gè)擴(kuò)展性很強(qiáng)的語(yǔ)言,可以嵌套用腳本語(yǔ)言編寫(xiě)的程序段,如JavaScript等[3]。CSS(層疊樣式表)即級(jí)聯(lián)樣式表,它是一種用來(lái)表現(xiàn)HTML或XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的一個(gè)子集)等文件樣式的計(jì)算機(jī)語(yǔ)言。使用CSS能夠真正做到網(wǎng)頁(yè)表現(xiàn)與內(nèi)容分離的一種樣式設(shè)計(jì)語(yǔ)言。相對(duì)于傳統(tǒng)HTML的表現(xiàn)而言,CSS能夠?qū)W(wǎng)頁(yè)中的對(duì)象的位置排版進(jìn)行像素級(jí)的精確控制,支持幾乎所有的字體字號(hào)樣式,擁有對(duì)網(wǎng)頁(yè)對(duì)象和模板樣式編輯的能力,并能夠進(jìn)行初步交互設(shè)計(jì),是目前基于文本展示最優(yōu)秀的表現(xiàn)設(shè)計(jì)語(yǔ)言。CSS能夠根據(jù)不同使用者的理解能力,簡(jiǎn)化或優(yōu)化寫(xiě)法,針對(duì)各類(lèi)人群,有較強(qiáng)的易讀性。JavaScript是基于對(duì)象和事件驅(qū)動(dòng)的區(qū)分大小寫(xiě)的客戶(hù)端的解釋性腳本語(yǔ)言,具有與Java和C語(yǔ)言類(lèi)似的語(yǔ)法,主要目的是為了解決服務(wù)器端語(yǔ)言。它是一種網(wǎng)頁(yè)編程技術(shù),大部分使用者將它用于創(chuàng)建動(dòng)態(tài)交互網(wǎng)頁(yè)。JavaScript是一種使用簡(jiǎn)單,功能強(qiáng)大的編程語(yǔ)言。jQuery是一個(gè)兼容多瀏覽器的javaScript框架,即JS的通用類(lèi)庫(kù)。jQuery是免費(fèi)的、開(kāi)源的,使用MIT許可協(xié)議。jQuery的語(yǔ)法可以使開(kāi)發(fā)者更加便捷,例如操作文檔對(duì)象、選擇DOM元素、制作動(dòng)畫(huà)效果、事件處理、使用Ajax以及其他功能。除此以外,jQuery提高API讓開(kāi)發(fā)者編寫(xiě)插件。其模塊化的使用方法使開(kāi)發(fā)者可以很輕松的開(kāi)發(fā)出功能強(qiáng)大的靜態(tài)或動(dòng)態(tài)網(wǎng)頁(yè)。2.2開(kāi)發(fā)工具及環(huán)境簡(jiǎn)介XAMPP集成環(huán)境是一個(gè)易于安裝且包含MySQL、PHP和Perl的Apache發(fā)行版,是一個(gè)功能強(qiáng)大的集成軟件包。它支持多種操作系統(tǒng)下安裝使用,并支持多種語(yǔ)言[4]。MySQL數(shù)據(jù)庫(kù)是一個(gè)開(kāi)放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),具有開(kāi)源、免費(fèi)、跨平臺(tái)、高效的特性,是世界上最流行的開(kāi)源數(shù)據(jù)庫(kù),支持幾乎任何平臺(tái)的操作系統(tǒng)。關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用的標(biāo)準(zhǔn)化語(yǔ)言。由于其性能卓越,搭配PHP和Apache可組成良好的開(kāi)放環(huán)境[5]。Eclipse是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展的開(kāi)發(fā)平臺(tái)。Eclipse雖然是使用Java語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于Java語(yǔ)言,它還支持注入C/C++、COBOL、PHP等編程語(yǔ)言的插件可用。第3章系統(tǒng)需求分析3.1可行性分析可行性分析是在進(jìn)行初步調(diào)查后所進(jìn)行的對(duì)系統(tǒng)開(kāi)發(fā)必要性和可能性的研究,所以也稱(chēng)為可行性研究。通過(guò)長(zhǎng)時(shí)間的觀察與實(shí)踐,我認(rèn)為該系統(tǒng)的可行性分析如下:(1)技術(shù)可行性技術(shù)上的可行性分析主要分析現(xiàn)有技術(shù)條件能否順利完成開(kāi)發(fā)工作,硬件、軟件配置能否滿(mǎn)足開(kāi)發(fā)者的需要,技術(shù)人員的水平等?;赑HP的網(wǎng)上書(shū)店系統(tǒng)的工作主要是為了方便用戶(hù)可以選購(gòu)到適合的書(shū)籍,能使用戶(hù)與出版社間接相互溝通信息,幫助管理員及時(shí)處理信息?,F(xiàn)今電子商務(wù)飛速發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)的信息傳輸速度快、準(zhǔn)確度高的優(yōu)勢(shì),為系統(tǒng)的建設(shè)提供了技術(shù)條件。(2)經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性分析主要從項(xiàng)目的經(jīng)濟(jì)上進(jìn)行分析評(píng)價(jià),一方面是支出的費(fèi)用,另一方面是取得的收益。現(xiàn)在這個(gè)系統(tǒng)的是小型的,從投入的人力,財(cái)力與物力來(lái)說(shuō)是非常小的。從節(jié)省人力方面,可以讓管理人員從繁瑣復(fù)雜的工作中解脫出來(lái),提高辦事效率。(3)運(yùn)行可行性電子商務(wù)的飛速發(fā)展,網(wǎng)上書(shū)店的快速發(fā)展,它具有實(shí)體書(shū)店所不能代替的許多優(yōu)點(diǎn)。隨著計(jì)算機(jī)硬件的快速發(fā)展,計(jì)算機(jī)的價(jià)格在不斷地降低,網(wǎng)上書(shū)店系統(tǒng)對(duì)客戶(hù)端要求極低,只需要有一個(gè)瀏覽器能上網(wǎng)就能進(jìn)行信息的查詢(xún)。網(wǎng)絡(luò)的越來(lái)越普及,人們都喜歡上網(wǎng)查詢(xún)信息即方便又快捷。因此系統(tǒng)在實(shí)踐上具備了可行性。(4)法律可行性本系統(tǒng)為私人設(shè)計(jì),在開(kāi)發(fā)過(guò)程中沒(méi)有涉及合同、責(zé)任等與法律相抵觸的方面。因此,本系統(tǒng)在法律上是可行的。3.2系統(tǒng)用戶(hù)使用網(wǎng)上書(shū)店系統(tǒng)的用戶(hù)主要有兩種:一種是消費(fèi)者,即用戶(hù),用戶(hù)可以瀏覽網(wǎng)上書(shū)店中的書(shū)藉信息,注冊(cè)后的用戶(hù)還可以進(jìn)行網(wǎng)上購(gòu)書(shū);另一種是網(wǎng)站的管理者,可以對(duì)書(shū)藉信息進(jìn)行管理、注冊(cè)用戶(hù)進(jìn)行管理、處理客戶(hù)的訂單。3.3功能需求網(wǎng)上書(shū)店系統(tǒng)分為前臺(tái)管理和后臺(tái)管理兩部分。前臺(tái)模塊主要是針對(duì)用戶(hù),用戶(hù)可以進(jìn)行注冊(cè)、登陸﹑分類(lèi)瀏覽﹑查詢(xún)信息﹑訂購(gòu)書(shū)籍、收藏書(shū)籍等一系列的操作,功能簡(jiǎn)單實(shí)用,都有相關(guān)的文字及圖形界面提示,讓用戶(hù)在最短的時(shí)間內(nèi)了解本網(wǎng)站,熟悉網(wǎng)站的各項(xiàng)操作。前臺(tái)管理的主要功能流程圖如下圖所示:瀏覽主頁(yè)面瀏覽主頁(yè)面分類(lèi)瀏覽書(shū)籍查看書(shū)籍信息加入購(gòu)物車(chē)是否已注冊(cè)用戶(hù)注冊(cè)用戶(hù)登錄提交訂單否是加入收藏夾圖3.1前臺(tái)管理流程圖前臺(tái)管理設(shè)計(jì)還提供了專(zhuān)門(mén)針對(duì)已注冊(cè)用戶(hù)的功能。系統(tǒng)考慮到用戶(hù)的需求,還提供有密碼修改、訂單查看和已收藏書(shū)籍信息的查看。具體的功能流程圖如下圖所示:瀏覽主頁(yè)面瀏覽主頁(yè)面用戶(hù)登錄收藏記錄查看訂單查看密碼修改是否已登錄否是圖3.2已注冊(cè)用戶(hù)管理流程圖后臺(tái)模塊主要是針對(duì)系統(tǒng)管理員設(shè)計(jì)的,管理員在進(jìn)入后臺(tái)管理界面后,可以對(duì)系統(tǒng)前臺(tái)所產(chǎn)生的訂單信息進(jìn)行管理,對(duì)系統(tǒng)數(shù)據(jù)庫(kù)中的書(shū)籍信息進(jìn)行增刪改查﹑查看已注冊(cè)的用戶(hù)信息等操作。具體的功能流程圖如下圖所示:系統(tǒng)主頁(yè)面系統(tǒng)主頁(yè)面判斷登錄信息后臺(tái)登錄頁(yè)面后臺(tái)管理不正確正確用戶(hù)管理書(shū)籍管理訂單管理圖3.3后臺(tái)管理流程圖3.4業(yè)務(wù)邏輯描述基于PHP的網(wǎng)上書(shū)店系統(tǒng)主要實(shí)現(xiàn)用戶(hù)注冊(cè)、用戶(hù)登錄與注銷(xiāo)、網(wǎng)上選書(shū)、購(gòu)書(shū)、產(chǎn)生訂單,管理員處理訂單、管理書(shū)籍信息、管理用戶(hù)信息等功能。用戶(hù)注冊(cè):用戶(hù)在注冊(cè)界面上,填寫(xiě)所需要的信息,信息如果填寫(xiě)正確,則會(huì)將注冊(cè)信息提交并注冊(cè)成功。用戶(hù)登錄與注銷(xiāo):已在網(wǎng)站注冊(cè)成功的用戶(hù),可以在主頁(yè)的登錄模塊或是到登錄頁(yè)面進(jìn)行登錄。如果信息填寫(xiě)錯(cuò)誤,則會(huì)出現(xiàn)“驗(yàn)證碼不正確”或“登錄名或密碼不正確”的提示,則需要重新填寫(xiě)登錄信息。信息填寫(xiě)正確,則用戶(hù)就可以在網(wǎng)站上有購(gòu)書(shū)的資格了。用戶(hù)注銷(xiāo),即是用戶(hù)可以安全退出系統(tǒng),保證自己的個(gè)人信息。已注冊(cè)用戶(hù)的相關(guān)信息的查看與管理:以注冊(cè)用戶(hù)可以修改自己的登錄密碼,已注冊(cè)的用戶(hù)可以查看自己的購(gòu)書(shū)記錄和藏書(shū)記錄。通過(guò)這些功能,為用戶(hù)提供更加全面的服務(wù),滿(mǎn)足用戶(hù)的需求。網(wǎng)上選書(shū):無(wú)論用戶(hù)是否已經(jīng)登錄系統(tǒng),都可以根據(jù)書(shū)目類(lèi)別查看書(shū)籍及書(shū)籍詳情。用戶(hù)看到自己所感興趣的書(shū)籍可以選擇加入購(gòu)物車(chē)或是收藏此書(shū)籍。購(gòu)物車(chē)管理:用戶(hù)可以將需要購(gòu)買(mǎi)的圖書(shū)加入到購(gòu)物車(chē)中。在購(gòu)物車(chē)頁(yè)面中,圖書(shū)的相關(guān)信息會(huì)顯示在購(gòu)物車(chē)中,如:書(shū)名、書(shū)籍封面、價(jià)格等,方便用戶(hù)核對(duì)與查看。在購(gòu)物車(chē)中,可以根據(jù)用戶(hù)需求修改購(gòu)書(shū)的數(shù)量,增加或刪除某些圖書(shū)。圖書(shū)選購(gòu)確定后,則將購(gòu)書(shū)信息傳給訂單界面。對(duì)于已經(jīng)提交成功的購(gòu)書(shū)信息,會(huì)自動(dòng)清除已生成訂單的購(gòu)物車(chē)中的信息。產(chǎn)生訂單:購(gòu)書(shū)信息確定后,則需要填寫(xiě)訂單信息,包括有:收貨人姓名、地址、電話(huà)和Email信息,填寫(xiě)完成并核對(duì)之后,即可以提交訂單。提交成功后,則在后臺(tái)會(huì)產(chǎn)生訂單。處理訂單:管理員根據(jù)系統(tǒng)統(tǒng)計(jì)的訂單信息進(jìn)行逐個(gè)查看,并根據(jù)訂單情況進(jìn)行出貨,及時(shí)地修改訂單信息。如果訂單信息多,或者有些訂單信息已經(jīng)過(guò)期,還可以進(jìn)行批量得刪除。管理書(shū)籍信息:管理員可以對(duì)數(shù)據(jù)庫(kù)中的書(shū)籍信息進(jìn)行增刪改查。管理用戶(hù)信息:管理員可以查看已注冊(cè)用戶(hù)的資料信息,還可以對(duì)各別特殊用戶(hù)進(jìn)行備注信息。3.5性能需求為了保證統(tǒng)能夠長(zhǎng)期、安全、穩(wěn)定、可靠、高效的運(yùn)行,基于PHP的網(wǎng)上書(shū)店系統(tǒng)應(yīng)該滿(mǎn)足以下的性能需求:1.系統(tǒng)處理的準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。在系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)過(guò)程中,要充分考慮當(dāng)前和將來(lái)可能承受的工作量,使系統(tǒng)的處理能力和響應(yīng)時(shí)間能夠滿(mǎn)足使用者對(duì)系統(tǒng)的需求。2.系統(tǒng)的開(kāi)放性和系統(tǒng)的可擴(kuò)充性網(wǎng)上書(shū)店系統(tǒng)在開(kāi)發(fā)過(guò)程中,應(yīng)該充分考慮以后的可擴(kuò)充性。例如用戶(hù)查詢(xún)的需求也會(huì)不斷地更新和完善。3.系統(tǒng)的易用性和易維護(hù)性網(wǎng)上書(shū)店最大的使用者是用戶(hù),而用戶(hù)往往對(duì)計(jì)算機(jī)并不是非常熟悉。這就要求系統(tǒng)界面能夠簡(jiǎn)單易懂。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶(hù)熟悉的術(shù)語(yǔ)和中文信息的界面。頁(yè)面的設(shè)計(jì)不宜太復(fù)雜,過(guò)于花哨,會(huì)使用戶(hù)看不懂。4.系統(tǒng)的響應(yīng)速度網(wǎng)上書(shū)店系統(tǒng)在日常處理中的響應(yīng)速度為秒級(jí),達(dá)到實(shí)時(shí)要求,以及時(shí)反饋信息。在進(jìn)行統(tǒng)計(jì)分析時(shí),根據(jù)所需數(shù)據(jù)量的不同而從秒級(jí)到分鐘級(jí),原則是保證操作人員不會(huì)因?yàn)樗俣葐?wèn)題而影響工作效率。第4章系統(tǒng)概要設(shè)計(jì)需求分析已經(jīng)準(zhǔn)確地弄清楚了系統(tǒng)的的各種需求,并解決了系統(tǒng)該完成的功能問(wèn)題,而概要設(shè)計(jì)則要開(kāi)始對(duì)軟件系統(tǒng)進(jìn)行設(shè)計(jì),也就是解決應(yīng)該如何開(kāi)發(fā)的問(wèn)題。概要設(shè)計(jì)是軟件項(xiàng)目開(kāi)發(fā)過(guò)程的核心之一,從軟件概要設(shè)計(jì)階段開(kāi)始,軟件將開(kāi)始正式進(jìn)入軟件的實(shí)際開(kāi)發(fā)階段,本階段完成系統(tǒng)的大致設(shè)計(jì)并明確系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與軟件結(jié)構(gòu)。軟件概要設(shè)計(jì)的核心內(nèi)容就是依據(jù)需求規(guī)格或規(guī)格定義,合理有效地實(shí)現(xiàn)規(guī)格中定義的各項(xiàng)要求。它注重框架設(shè)計(jì)、總體結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、接口設(shè)計(jì)、網(wǎng)絡(luò)環(huán)境設(shè)計(jì)等。概要設(shè)計(jì)是將產(chǎn)品分割成一些獨(dú)立設(shè)計(jì)和實(shí)現(xiàn)的部分,保證系統(tǒng)的各個(gè)部分可以和諧地工作。設(shè)計(jì)過(guò)程是不斷分解系統(tǒng)模塊,從高層分解到低層分解。4.1概念模型設(shè)計(jì)概念模型是按用戶(hù)的觀點(diǎn)對(duì)數(shù)據(jù)和信息建模。人們常常首先將現(xiàn)實(shí)世界的客觀對(duì)象抽象為一種不依賴(lài)于計(jì)算機(jī)系統(tǒng)和某一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)的信息結(jié)構(gòu)即概念模型,然后再把數(shù)據(jù)模型轉(zhuǎn)化為計(jì)算機(jī)上某一DBMS支持的數(shù)據(jù)模型。概念模型的最常用的表示方法是實(shí)體—聯(lián)系方法,簡(jiǎn)稱(chēng)E-R圖。為了更加清晰準(zhǔn)確得描述出系統(tǒng)的概念模型,將從前臺(tái)管理和后臺(tái)管理兩部分來(lái)分析系統(tǒng)的概念模型。系統(tǒng)前臺(tái)管理的E-R圖,如下圖所示:用戶(hù)用戶(hù)圖書(shū)訂單編號(hào)性別編號(hào)密碼用戶(hù)名電話(huà)總價(jià)收貨人所購(gòu)書(shū)籍名稱(chēng)價(jià)格簡(jiǎn)介出版社作者書(shū)名書(shū)號(hào)查看提交NMNM頭像讀書(shū)愛(ài)好所購(gòu)數(shù)量地址郵箱圖4.1網(wǎng)上書(shū)店系統(tǒng)前臺(tái)管理的E-R圖系統(tǒng)后臺(tái)管理的E-R圖,如下圖所示:管理員管理員圖書(shū)管理員訂單編號(hào)讀書(shū)愛(ài)好編號(hào)用戶(hù)名電話(huà)地址收貨人所購(gòu)書(shū)籍價(jià)格出版社作者書(shū)名書(shū)號(hào)賬號(hào)密碼查看提交查看NMNMNM狀態(tài)訂單號(hào)圖4.2網(wǎng)上書(shū)店系統(tǒng)的E-R圖4.2邏輯模型設(shè)計(jì)將概念設(shè)計(jì)的E-R圖轉(zhuǎn)化為關(guān)系模型,結(jié)合系統(tǒng)的功能需求,設(shè)計(jì)出網(wǎng)上書(shū)店系統(tǒng)的邏輯結(jié)構(gòu)。根據(jù)轉(zhuǎn)換原則轉(zhuǎn)換成以下的關(guān)系模式,關(guān)系的主碼用下劃線標(biāo)出。用戶(hù)(編號(hào),用戶(hù)名,密碼,性別,密碼,讀書(shū)愛(ài)好)圖書(shū)(書(shū)號(hào),書(shū)名,作者,出版社,簡(jiǎn)介,價(jià)格,數(shù)量)訂單(訂單號(hào),收貨人,地址,電話(huà),所購(gòu)書(shū)籍,所購(gòu)數(shù)量,總價(jià),下單時(shí)間)管理員(賬號(hào),密碼)用戶(hù)-訂單(訂單號(hào),用戶(hù)編號(hào),購(gòu)書(shū)信息,收貨人,地址,電話(huà),下單時(shí)間)訂單-圖書(shū)(訂單號(hào),書(shū)號(hào),書(shū)名,數(shù)量,價(jià)格)收藏記錄(收藏編號(hào),用戶(hù)編號(hào),書(shū)號(hào),書(shū)名,收藏時(shí)間)4.3功能結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)主要由前臺(tái)管理模塊、后臺(tái)管理員管理模塊組成。在前臺(tái)管理中,用戶(hù)可以瀏覽書(shū)籍信息,登錄后可以進(jìn)行書(shū)籍的購(gòu)買(mǎi)、書(shū)籍的收藏、訂單的查看和密碼的修改;在后臺(tái)管理中,管理員在成功登錄后進(jìn)入后臺(tái)管理界面。管理員可以對(duì)訂單、書(shū)籍和用戶(hù)信息進(jìn)行管理。本系統(tǒng)的功能結(jié)構(gòu)圖如下圖所示:網(wǎng)上書(shū)店系統(tǒng)網(wǎng)上書(shū)店系統(tǒng)用戶(hù)管理員個(gè)人信息注冊(cè)登錄系統(tǒng)查看書(shū)籍目錄查看圖書(shū)信息加入購(gòu)物車(chē)提交訂單登錄后臺(tái)系統(tǒng)管理訂單信息管理書(shū)籍信息管理用戶(hù)信息用戶(hù)注銷(xiāo)登錄退出后臺(tái)管理圖4.3系統(tǒng)功能結(jié)構(gòu)圖4.3.1前臺(tái)功能結(jié)構(gòu)分析與設(shè)計(jì)前臺(tái)功能主要有用戶(hù)注冊(cè),用戶(hù)登錄系統(tǒng),查看書(shū)籍信息,購(gòu)書(shū)等。前臺(tái)頁(yè)面設(shè)計(jì)如下圖所示:前臺(tái)首頁(yè)index.php前臺(tái)首頁(yè)index.php注冊(cè)頁(yè)面register.php登錄頁(yè)面login.php書(shū)目類(lèi)型頁(yè)面goodList.php圖書(shū)詳細(xì)頁(yè)面goodDetail.php購(gòu)物車(chē)頁(yè)面cart.php訂單頁(yè)面order.php收貨信息頁(yè)面orderInfo.php個(gè)人信息個(gè)人賬戶(hù)、密碼分類(lèi)書(shū)籍信息圖書(shū)基本信息所購(gòu)圖書(shū)信息購(gòu)書(shū)、收貨人信息收貨人信息圖4.4前臺(tái)頁(yè)面設(shè)計(jì)跳轉(zhuǎn)圖針對(duì)注冊(cè)用戶(hù)的需求,前臺(tái)管理還可以進(jìn)行用戶(hù)密碼的修改、訂單的查看和收藏記錄的查看。其設(shè)計(jì)如下圖所示:前臺(tái)首頁(yè)index.php前臺(tái)首頁(yè)index.php登錄頁(yè)面login.php收藏查看collect.php訂單查看mine.php密碼修改pwd.php個(gè)人賬號(hào)、密碼新密碼收藏記錄信息訂單記錄信息圖4.5已注冊(cè)用戶(hù)信息頁(yè)面設(shè)計(jì)跳轉(zhuǎn)圖4.3.2后臺(tái)功能結(jié)構(gòu)分析與設(shè)計(jì)后臺(tái)功能主要有管理員對(duì)訂單的管理,對(duì)網(wǎng)站內(nèi)圖書(shū)信息的管理,對(duì)已注冊(cè)用戶(hù)信息的管理,可以對(duì)這些信息進(jìn)行增刪改查等功能。后臺(tái)頁(yè)面設(shè)計(jì)如下圖所示:網(wǎng)站首頁(yè)index.php網(wǎng)站首頁(yè)index.php后臺(tái)登錄頁(yè)面admin.php訂單管理頁(yè)面manage.php書(shū)籍管理頁(yè)面goods.php用戶(hù)管理頁(yè)面user.php登錄賬戶(hù)、密碼訂單信息書(shū)籍信息已注冊(cè)用戶(hù)信息圖4.6后臺(tái)頁(yè)面設(shè)計(jì)跳轉(zhuǎn)圖4.4數(shù)據(jù)庫(kù)設(shè)計(jì)4.4.1數(shù)據(jù)庫(kù)需求分析建立系統(tǒng)所需要的數(shù)據(jù)庫(kù),首先要分析系統(tǒng)需要的數(shù)據(jù)信息有什么,分析的結(jié)果是否準(zhǔn)確地反映了系統(tǒng)的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用。因此,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的一個(gè)非常重要的階段就是數(shù)據(jù)庫(kù)需求分析階段。在此階段,主要收集基本的數(shù)據(jù)以及數(shù)據(jù)處理流程,為以后進(jìn)一步設(shè)計(jì)打下基礎(chǔ)。需求分析主要解決兩個(gè)問(wèn)題:內(nèi)容要求:調(diào)查系統(tǒng)用戶(hù)所操作的數(shù)據(jù),決定數(shù)據(jù)庫(kù)中存儲(chǔ)什么數(shù)據(jù)。處理要求:調(diào)查系統(tǒng)用戶(hù)要求對(duì)數(shù)據(jù)進(jìn)行什么樣的處理,處理數(shù)據(jù)庫(kù)中的各種數(shù)據(jù)之間的關(guān)系如何。通過(guò)各方面的調(diào)查和分析,網(wǎng)上書(shū)店系統(tǒng)的數(shù)據(jù)庫(kù)需要存放以下幾類(lèi)數(shù)據(jù)信息:的用戶(hù)的基本信息書(shū)籍的類(lèi)別信息書(shū)籍的基本信息,如書(shū)名、作者、出版社等相關(guān)信息訂單信息,如所購(gòu)書(shū)籍信息、收貨人信息、下單時(shí)間等管理員登錄后臺(tái)的信息,如:登錄時(shí)間等4.4.2系統(tǒng)數(shù)據(jù)流程圖網(wǎng)上書(shū)店系統(tǒng)的頂層數(shù)據(jù)流程圖如下圖所示:用戶(hù)用戶(hù)管理員注冊(cè)信息訂單信息書(shū)籍信息用戶(hù)和訂單信息網(wǎng)上書(shū)店系統(tǒng)圖4.7頂層系統(tǒng)數(shù)據(jù)流程圖將頂層數(shù)據(jù)流程圖細(xì)化,系統(tǒng)的具體數(shù)據(jù)流程圖如下圖所示:判斷是否正確判斷是否正確用戶(hù)用戶(hù)表核對(duì)訂單信息核對(duì)書(shū)籍信息修改訂單信息訂單表書(shū)籍信息表管理員注冊(cè)信息正確注冊(cè)信息訂單信息正確訂單信息書(shū)籍信息書(shū)籍信息訂單信息訂單信息圖4.8系統(tǒng)具體數(shù)據(jù)流程圖4.4.3數(shù)據(jù)字典數(shù)據(jù)字典是指對(duì)數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)。處理邏輯。外部實(shí)體等進(jìn)行定義和描述,其目的是對(duì)數(shù)據(jù)流程圖中的各個(gè)元素做出詳細(xì)的說(shuō)明。用戶(hù)信息表中所包含的各個(gè)數(shù)據(jù)項(xiàng)的具體描述如下表:表4.1用戶(hù)信息表的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)類(lèi)型長(zhǎng)度備注Id用戶(hù)IDint11非空,主鍵,自增Username用戶(hù)名稱(chēng)varchar50非空Password用戶(hù)登錄密碼varchar40非空Sex性別Varchar4Img用戶(hù)頭像Varchar100Email用戶(hù)emailVarchar50非空Reding用戶(hù)喜好等Varchar100Reg_date用戶(hù)注冊(cè)時(shí)間datatime默認(rèn)為“0000-00-0000:00:00”用戶(hù)信息表的數(shù)據(jù)由系統(tǒng)獲得,此信息表是將系統(tǒng)中的注冊(cè)用戶(hù)的信息存儲(chǔ)起來(lái),方便用戶(hù)登錄時(shí)使用。通過(guò)此表,系統(tǒng)可以核對(duì)用戶(hù)的登錄信息是否正確。書(shū)籍類(lèi)型信息表中所包含的各個(gè)數(shù)據(jù)項(xiàng)的具體描述如下表:表4.2書(shū)籍類(lèi)型信息表的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)類(lèi)型長(zhǎng)度備注Id類(lèi)型IDint11非空,主鍵,自增Cat_name類(lèi)型名稱(chēng)varchar100非空Pid所屬一級(jí)分類(lèi)int11默認(rèn)為0書(shū)籍類(lèi)型信息表的數(shù)據(jù)由后臺(tái)管理人手動(dòng)錄入到表中。因?yàn)闀?shū)籍的類(lèi)型龐大、繁雜,建立此表對(duì)于系統(tǒng)頁(yè)面和邏輯的設(shè)計(jì)有很大的用處。書(shū)籍銷(xiāo)售類(lèi)型信息表中所包含的各個(gè)數(shù)據(jù)項(xiàng)的具體描述如下表:表4.3書(shū)籍銷(xiāo)售類(lèi)型信息表的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)類(lèi)型長(zhǎng)度備注Id銷(xiāo)售類(lèi)型IDint11非空,主鍵,自增Good_way商品銷(xiāo)售類(lèi)型varchar50非空書(shū)籍銷(xiāo)售類(lèi)型信息表的數(shù)據(jù)是人工錄入的,根據(jù)需求錄入相關(guān)的數(shù)據(jù)。此表的作用是給圖書(shū)進(jìn)行銷(xiāo)售定義,如:主打圖書(shū)、推薦閱讀等。圖書(shū)基本信息表中所包含的各個(gè)數(shù)據(jù)項(xiàng)的具體描述如下表:表4.4圖書(shū)基本信息表的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)類(lèi)型長(zhǎng)度備注Id圖書(shū)IDint11非空,主鍵,自增Good_name書(shū)名varchar200非空Cat_id所屬書(shū)籍類(lèi)型int11默認(rèn)為0Author作者varchar200非空Press出版社varchar200非空Author_info作者簡(jiǎn)介varchar250Good_detail圖書(shū)簡(jiǎn)介textGood_min_img封面小圖varchar100Good_max_img封面大圖varchar255Store_price本店價(jià)格decimal(65,0)默認(rèn)為0Market_price市場(chǎng)價(jià)格decimal(65,0)默認(rèn)為0Account庫(kù)存量int11默認(rèn)為0Good_clicks商品點(diǎn)擊數(shù)int11默認(rèn)為0Good_way商品銷(xiāo)售類(lèi)型int11默認(rèn)為0圖書(shū)基本信息表的數(shù)據(jù)前期是人工錄入到數(shù)據(jù)庫(kù)中,后期在系統(tǒng)使用過(guò)程中,可以通過(guò)系統(tǒng)的功能進(jìn)行小部分的修改。訂單所購(gòu)書(shū)籍信息表中所包含的各個(gè)數(shù)據(jù)項(xiàng)的具體描述如下表:表4.5訂單所購(gòu)書(shū)籍信息表的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)類(lèi)型長(zhǎng)度備注Id編號(hào)int11非空,主鍵,自增Good_id所購(gòu)圖書(shū)IDint11非空Good_name所購(gòu)書(shū)名varchar100非空Good_num購(gòu)書(shū)數(shù)量int11非空Order_id訂單IDint11非空為了與訂單信息表區(qū)別開(kāi)來(lái),便于管理員的管理,故將訂單信息中用戶(hù)所購(gòu)書(shū)籍的信息分離出來(lái),形成了專(zhuān)門(mén)的訂單所購(gòu)書(shū)籍信息表。此信息表的數(shù)據(jù)也從系統(tǒng)中獲取。此表應(yīng)與訂單信息表一起看。訂單信息表中所包含的各個(gè)數(shù)據(jù)項(xiàng)的具體描述如下表:表4.6訂單信息表的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)類(lèi)型長(zhǎng)度備注Id訂單IDint11非空,主鍵,自增User_id所下訂單的用戶(hù)int11默認(rèn)為0Order_account購(gòu)書(shū)總價(jià)int11默認(rèn)為0Order_state訂單是否發(fā)貨tinyint1默認(rèn)為0Order_username收貨人姓名varchar50非空Order_address收貨人地址varchar50非空Order_phone收貨人電話(huà)varchar50非空Order_email收貨人emailvarchar50非空Order_time下單時(shí)間datetime默認(rèn)為“0000-00-0000:00:00”O(jiān)rder_number訂單郵寄單號(hào)varchar100訂單信息表的數(shù)據(jù)由系統(tǒng)獲得并將結(jié)果儲(chǔ)存到此表中。此表主要記錄的是訂單的收貨信息,購(gòu)書(shū)信息存放在訂單所購(gòu)書(shū)籍信息表中。這樣做是方便后臺(tái)管理員對(duì)訂單進(jìn)行處理,也可進(jìn)行修改。如果要進(jìn)行發(fā)貨的話(huà),需要兩張表結(jié)合使用。管理員登錄信息表中所包含的各個(gè)數(shù)據(jù)項(xiàng)的具體描述如下表:表4.7管理員登錄信息表的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)類(lèi)型長(zhǎng)度備注Id編號(hào)int11非空,主鍵,自增Admin_name管理員名稱(chēng)varchar50非空Admin_pwd管理員登錄密碼varchar40非空Turename真實(shí)姓名varchar50非空Admin_logintime登錄后臺(tái)時(shí)間datetime默認(rèn)為“0000-00-0000:00:00”管理員登錄信息表的數(shù)據(jù)從系統(tǒng)中獲取,并將數(shù)據(jù)信息存儲(chǔ)在此表中。此表的作用是記錄后臺(tái)管理員登錄后臺(tái)的時(shí)間信息。目前為止,系統(tǒng)的后臺(tái)管理員只有一位,因此無(wú)需建立管理員基本信息表。用戶(hù)收藏記錄信息表中所包含的各個(gè)數(shù)據(jù)項(xiàng)的具體描述如下表:表4.8用戶(hù)收藏記錄信息表的數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)名數(shù)據(jù)項(xiàng)含義數(shù)據(jù)類(lèi)型長(zhǎng)度備注Id編號(hào)int11非空,主鍵,自增User_id用戶(hù)IDint11非空Good_id書(shū)籍IDint11非空Coll_time收藏時(shí)間datetime默認(rèn)為“0000-00-0000:00:00”用戶(hù)收藏記錄信息表的數(shù)據(jù)從系統(tǒng)中獲取,并將數(shù)據(jù)信息存儲(chǔ)在此表中。此表的作用是記錄所有注冊(cè)用戶(hù)所收藏的書(shū)籍信息,這樣方便每個(gè)用戶(hù)查看自己的收藏記錄。第5章系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)我設(shè)計(jì)的網(wǎng)上書(shū)店系統(tǒng)使用了Smarty模板將頁(yè)面設(shè)計(jì)與邏輯設(shè)計(jì)分開(kāi),將所做的頁(yè)面設(shè)計(jì)保存在了工程目錄下的templates文件夾中,后綴為.tpl的文件。邏輯設(shè)計(jì)放在了工程目錄下,后綴為.php的文件。在工程目錄下建了以css命名的文件夾,存放所有頁(yè)面的樣式,實(shí)現(xiàn)了頁(yè)面樣式與頁(yè)面內(nèi)容的分離。將所有需要的圖片都保存到了工程目錄下的images文件夾中。將后綴為.js的動(dòng)態(tài)設(shè)計(jì)代碼保存在了工程目錄下的js文件夾中。網(wǎng)上書(shū)店系統(tǒng)分為前臺(tái)功能與后臺(tái)管理兩部分。前臺(tái)功能的主要服務(wù)對(duì)象是用戶(hù),后臺(tái)管理的主要服務(wù)對(duì)象是管理員。下面我將細(xì)化介紹這兩部分。另外,在編寫(xiě)邏輯代碼的時(shí)候,因?yàn)槟承╉?yè)面的功能存在有重復(fù)性,某些功能的邏輯代碼的原理其本質(zhì)是一樣的,因此在下面的介紹中我就不做重復(fù)講述了,我只介紹幾個(gè)典型的邏輯代碼。5.1前臺(tái)功能模塊設(shè)計(jì)與實(shí)現(xiàn)前臺(tái)功能模塊的頁(yè)面設(shè)計(jì)包括有主頁(yè),注冊(cè)頁(yè)面,登錄頁(yè)面,書(shū)籍目錄頁(yè)面,圖書(shū)介紹頁(yè)面,購(gòu)物車(chē)頁(yè)面,訂單頁(yè)面、訂單查看頁(yè)面、收藏記錄頁(yè)面和密碼修改頁(yè)面。主頁(yè)面設(shè)計(jì)了會(huì)員登錄區(qū),會(huì)員專(zhuān)區(qū),圖書(shū)分類(lèi)區(qū),書(shū)籍快速搜索區(qū)、本月熱搜榜單區(qū)和上架新書(shū)區(qū)。其中在登錄區(qū)可以進(jìn)行用戶(hù)登錄,使用form表單,利用POST方式接收到用戶(hù)所填寫(xiě)的用戶(hù)名、密碼和驗(yàn)證碼。先檢驗(yàn)驗(yàn)證碼,如果驗(yàn)證碼輸入不正確則需要重新輸入;如果驗(yàn)證碼輸入正確,則與數(shù)據(jù)庫(kù)中的user表進(jìn)行連接,對(duì)比用戶(hù)名和密碼是否與表中的數(shù)據(jù)匹配,匹配正確則成功登錄,匹配失敗則重新登錄。其實(shí)現(xiàn)代碼如下:require_once'CLASS.php';//引入類(lèi)文件,完成數(shù)據(jù)庫(kù)與后臺(tái)的連接$mysqli=newmysqli("localhost","root","","ebook");session_start();$mysqli->set_charset('utf8');if(@$_POST['act']=='checkLogin'){//接收用戶(hù)所填的信息進(jìn)行判斷$username=trim($_POST['username']);$password=md5(trim($_POST['password']));$checkcode=trim(@$_POST['checkCode']);if(strtolower($checkcode)!=strtolower($_SESSION['checkcode'])){echo"<script>alert('驗(yàn)證碼不正確,請(qǐng)重新登錄!');//給出一個(gè)提示小框window.location.href='index.php';//跳轉(zhuǎn)到index.php</script>";}//將接收到的用戶(hù)名和密碼進(jìn)行特殊處理$username="'".$username."'";$password="'".$password."'";$sql="selectusernamefromuserwhereusername=$usernameandpassword=$password;";//mysql查詢(xún)語(yǔ)句,查詢(xún)user表中是否有用戶(hù)所填寫(xiě)的用戶(hù)名和密碼$res=$mysqli->query($sql);//使用函數(shù)query執(zhí)行該$sql語(yǔ)句if($res){$item=$res->fetch_array();//從結(jié)果集中取得一行作為枚舉數(shù)組}if(empty($item)){echo"<script>alert('用戶(hù)名或密碼不正確,請(qǐng)重新登錄!');window.location.href='index.php';</script>";}else{$_SESSION['loginame']=$username;//將用戶(hù)名保存在$_SESSION中$_SESSION['isLogin']='yes';echo"<script>alert('登錄成功');window.location.href='index.php';</script>";}}為了方便用戶(hù)更加快速的搜索到需要的書(shū)籍,可以在主頁(yè)面的快速搜索模塊內(nèi)輸入自己所需要的書(shū)籍名稱(chēng),然后程序從數(shù)據(jù)庫(kù)中查詢(xún)是否存在此書(shū),如果存在則直接跳轉(zhuǎn)到此書(shū)的詳細(xì)介紹頁(yè)面,如果不存在則給出提示信息,告知用戶(hù)無(wú)此書(shū)。其邏輯代碼可見(jiàn)附錄。其模塊可以在下面的主頁(yè)截圖中看到。主頁(yè)的部分功能模塊截圖如下圖所示:圖5.1用戶(hù)未登錄時(shí)的主頁(yè)面部分截圖從上圖中可以看到會(huì)員登錄模塊和快速搜索模塊。在主頁(yè)面還有幻燈片播放模塊,利用jQuery技術(shù)可以快速實(shí)現(xiàn)幻燈片的自動(dòng)播放功能,也可以用鼠標(biāo)點(diǎn)擊指定的圖標(biāo),則會(huì)出現(xiàn)相對(duì)應(yīng)的圖片。用戶(hù)在成功登錄后,主頁(yè)面的布局也將發(fā)生變化。主頁(yè)面的“會(huì)員登錄”模塊會(huì)消失,增加了“會(huì)員消息”模塊,此模塊的作用是及時(shí)告知用戶(hù)系統(tǒng)所發(fā)布的最新消息或通知消息等。登錄后的主頁(yè)面部分截圖如下圖所示:圖5.2用戶(hù)登錄成功后的主頁(yè)面的部分截圖注冊(cè)頁(yè)面是為用戶(hù)填寫(xiě)注冊(cè)信息,在填寫(xiě)注冊(cè)信息時(shí),會(huì)對(duì)一些數(shù)據(jù)進(jìn)行規(guī)定,如:用戶(hù)名必須是3-20位非空字符、密碼必須在6-20位非空字符等提示信息。當(dāng)用戶(hù)輸入錯(cuò)誤時(shí),則會(huì)給出相應(yīng)的提示信息。用戶(hù)如果不按照要求正確修改,則用戶(hù)的注冊(cè)信息是無(wú)法提交成功的。在這里需要使用JS技術(shù)對(duì)注冊(cè)信息進(jìn)行規(guī)范和監(jiān)控。如果信息填寫(xiě)正確,則會(huì)成功注冊(cè),注冊(cè)數(shù)據(jù)將通過(guò)程序存儲(chǔ)在數(shù)據(jù)庫(kù)中的user表中。其部分邏輯代碼可見(jiàn)附錄。書(shū)籍目錄頁(yè)面主要的任務(wù)是用戶(hù)點(diǎn)擊不同的分類(lèi),則會(huì)出現(xiàn)相應(yīng)分類(lèi)的書(shū)籍信息,給用戶(hù)提供向?qū)ё饔?,幫助用?hù)快速找到自己需要的書(shū)籍。書(shū)籍的分類(lèi)信息存放在category表中。當(dāng)用戶(hù)點(diǎn)擊某分類(lèi)時(shí),使用GET方式接收到此分類(lèi)的ID值,通過(guò)查詢(xún)goods表,獲取到相對(duì)應(yīng)的書(shū)籍信息,將這些書(shū)籍以此呈現(xiàn)到頁(yè)面當(dāng)中。其部分邏輯代碼可見(jiàn)附錄。購(gòu)物車(chē)頁(yè)面可以增加、刪除或修改購(gòu)書(shū)信息。將用戶(hù)所要購(gòu)買(mǎi)的書(shū)籍信息存放在數(shù)組$_SESSION[‘cart’]中,當(dāng)用戶(hù)要?jiǎng)h除某本書(shū)籍時(shí),使用GET方式接收到此書(shū)的ID號(hào),使用函數(shù)unset則可以刪除此書(shū)。當(dāng)用戶(hù)需要增加某本書(shū)籍的購(gòu)買(mǎi)數(shù)量時(shí),其方法與刪除方法類(lèi)似,獲取書(shū)籍的ID號(hào),重新定義此書(shū)的數(shù)量值即可。如果購(gòu)物車(chē)中的書(shū)籍都不需要了,只要將數(shù)組$_SESSION[‘cart’]清空,使其變成空數(shù)組,則相應(yīng)的購(gòu)物車(chē)也會(huì)清空。實(shí)現(xiàn)這些功能的部分邏輯代碼可見(jiàn)附錄。訂單頁(yè)面是將購(gòu)書(shū)信息和收貨信息一起提交給后臺(tái)數(shù)據(jù)庫(kù)的orders表和orderInfo表。因?yàn)橛脩?hù)一次性提交的訂單信息比較多,為了方便管理員進(jìn)行管理和發(fā)貨,將收貨信息存放在了orders中,將訂單的購(gòu)書(shū)信息存放在了orderdetail表中。兩張表通過(guò)訂單ID可以進(jìn)行連接。并且用戶(hù)在登錄之后才能進(jìn)入訂單頁(yè)面,其部分邏輯代碼可見(jiàn)附錄。系統(tǒng)設(shè)計(jì)為了更加貼近用戶(hù)的需要,還設(shè)置有專(zhuān)屬于用戶(hù)的相關(guān)權(quán)利,如:修改密碼、查看歷史購(gòu)書(shū)訂單、查看所收藏的書(shū)籍記錄。以查看書(shū)籍記錄為例,程序首先獲取到用戶(hù)的ID號(hào),再使用SQL語(yǔ)句,通過(guò)程序執(zhí)行SQL語(yǔ)句查詢(xún)到collect表中屬于此用戶(hù)的收藏信息,再將這些記錄反饋給用戶(hù)。如果用戶(hù)還未收藏過(guò)書(shū)籍,在collect表是查不到此用戶(hù)的收藏信息,也會(huì)給出相應(yīng)的提示信息。其部分邏輯代碼可見(jiàn)附錄。用戶(hù)退出系統(tǒng)時(shí),因?yàn)樵谟脩?hù)登錄時(shí),使用到$_SESSION來(lái)存放已登錄的用戶(hù)名,因而在用戶(hù)退出系統(tǒng)時(shí),只要銷(xiāo)毀SESSION機(jī)制即可。此功能部分邏輯代碼如下:if(@$_SESSION['loginame']==''){//用戶(hù)未登錄時(shí)echo"<script>alert('您的帳號(hào)還未登錄,請(qǐng)先登錄!');window.location.href='login.php';</script>";}else{//用戶(hù)已登錄session_destroy();//銷(xiāo)毀SESSION機(jī)制echo"<script>alert('您的賬號(hào)已退出!');window.location.href='login.php';</script>";}5.2后臺(tái)管理模塊設(shè)計(jì)與實(shí)現(xiàn)后臺(tái)管理模塊的設(shè)計(jì),我考慮到管理員具有一定的計(jì)算機(jī)技術(shù)水平,所以在頁(yè)面設(shè)計(jì)方面比較的簡(jiǎn)單、明了。后臺(tái)管理模塊包括登錄、訂單管理、書(shū)籍信息管理、用戶(hù)管理。后臺(tái)管理的主要任務(wù)就是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息以頁(yè)面的形式具體得展示出來(lái),方便管理員對(duì)信息進(jìn)行管理。以訂單管理為例,可以對(duì)訂單進(jìn)行修改或刪除處理。在邏輯代碼中編寫(xiě)SQL語(yǔ)句,執(zhí)行該SQL語(yǔ)句,將orders表和orderdetail表中的數(shù)據(jù)提取出來(lái)。用戶(hù)可以對(duì)每一行數(shù)據(jù)進(jìn)行修改或者刪除,使用GET或POST方式接收到該條數(shù)據(jù)的ID值則可以對(duì)數(shù)據(jù)進(jìn)行修改或刪除。其部分邏輯代碼可見(jiàn)附錄。訂單管理界面如下圖所示:圖5.3訂單管理界面點(diǎn)擊某本書(shū)籍的修改,則出現(xiàn)相對(duì)應(yīng)的訂單修改界面,如下圖所示:圖5.4訂單修改界面訂單信息修改完成后,點(diǎn)擊“修改”則會(huì)給出相應(yīng)的提示信息,告知修改成功,如下圖所示:圖5.5訂單提交成功提示界面如此,一份訂單即修改成功。同樣的,圖書(shū)管理和用戶(hù)管理的實(shí)現(xiàn)方法亦是如此,就不做重復(fù)講述了。管理員在后臺(tái)管理完成后,選擇“退出”即可安全退出后臺(tái)管理。第6章系統(tǒng)測(cè)試系統(tǒng)測(cè)試的目的是為了發(fā)現(xiàn)程序中的錯(cuò)誤。一般軟件系統(tǒng)的測(cè)試可分為單元(模塊)測(cè)試和綜合測(cè)試兩個(gè)階段。測(cè)試只能找出程序中的錯(cuò)誤,而不能證明程序無(wú)錯(cuò)。事實(shí)上,軟件運(yùn)行期間測(cè)試活動(dòng)從未間斷,只是在軟件產(chǎn)品交付給用戶(hù)之后,將由用戶(hù)繼續(xù)扮演測(cè)試的角色而已。在系統(tǒng)測(cè)試中,經(jīng)常使用到的方法有兩種:黑盒測(cè)試方法和白盒測(cè)試方法。1.黑盒測(cè)試方法黑盒測(cè)試也稱(chēng)功能測(cè)試,它是通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試中,把程序看作一個(gè)不能打開(kāi)的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試。利用黑盒測(cè)試方法可以對(duì)程序的輸入輸出結(jié)構(gòu)進(jìn)行測(cè)試,通過(guò)測(cè)試發(fā)現(xiàn)軟件的數(shù)據(jù)是否正確,從而使軟件的運(yùn)算能力得到提高。在網(wǎng)上書(shū)店系統(tǒng)中,有很多的輸入輸出,如:用戶(hù)登錄信息的輸入輸出、注冊(cè)信息的輸入輸出、訂單信息的輸入輸出等等。通過(guò)逐個(gè)的測(cè)試,發(fā)現(xiàn)問(wèn)題,解決問(wèn)題,網(wǎng)上書(shū)店系統(tǒng)存在的此種漏洞已經(jīng)解決。2.白盒測(cè)試方法白盒測(cè)試也稱(chēng)結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,它是按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,通過(guò)測(cè)試來(lái)檢測(cè)系統(tǒng)內(nèi)部動(dòng)作是否按照規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。這一方法是把測(cè)試對(duì)象看作一個(gè)打開(kāi)的盒子,測(cè)試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試,通過(guò)在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。利用白盒測(cè)試方法可以很全面的對(duì)軟件的界面流程來(lái)進(jìn)行測(cè)試,通過(guò)測(cè)試發(fā)現(xiàn)邏輯問(wèn)題,進(jìn)而修改,從而可以是軟件的邏輯結(jié)構(gòu)變得更加完善。通過(guò)測(cè)試每個(gè)頁(yè)面的邏輯代碼,如:購(gòu)物車(chē)頁(yè)面的測(cè)試,根據(jù)用戶(hù)是否登錄為區(qū)分,在這兩種狀態(tài)下,分別對(duì)購(gòu)物車(chē)的功能進(jìn)行測(cè)試,購(gòu)物車(chē)功能有:添加書(shū)籍、刪除書(shū)籍、修改購(gòu)書(shū)數(shù)量、更新書(shū)籍總價(jià)、清空購(gòu)物車(chē)。在測(cè)試過(guò)程中,發(fā)現(xiàn)了很多的邏輯漏洞,一一對(duì)這些不足之處進(jìn)行修改與完善,最終完成了對(duì)于購(gòu)物車(chē)功能的測(cè)試,并且解決了購(gòu)物車(chē)的程序邏輯問(wèn)題。兩種測(cè)試方法的結(jié)合使用,使我能夠查出網(wǎng)上書(shū)店系統(tǒng)的邏輯漏洞和程序結(jié)構(gòu)問(wèn)題,并在之后成功的修改正確,保證了系統(tǒng)的完整性和正確性。總結(jié)基于PHP的網(wǎng)上書(shū)店是基于PHP語(yǔ)言進(jìn)行開(kāi)發(fā)的,其開(kāi)發(fā)主頁(yè)包括后臺(tái)數(shù)據(jù)庫(kù)的建立與維護(hù)及前段應(yīng)用功能的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)的一致性和完整性。數(shù)據(jù)安全性極高的數(shù)據(jù)庫(kù)。而后者要求應(yīng)用功能完備,易使用等特點(diǎn)。通過(guò)幾個(gè)月的PHP方面的培訓(xùn)與實(shí)習(xí)鍛煉,結(jié)合自己在培訓(xùn)時(shí)所積累的項(xiàng)目經(jīng)驗(yàn)以及在實(shí)踐中所累積的工作經(jīng)驗(yàn),我都在這次的畢業(yè)設(shè)計(jì)中有所體現(xiàn)。這次的設(shè)計(jì)是自己一個(gè)人完成,通過(guò)自己的構(gòu)思研究,查看資料,結(jié)合現(xiàn)有書(shū)店網(wǎng)站的特點(diǎn),確定了我的網(wǎng)上書(shū)店系統(tǒng)的結(jié)構(gòu)和內(nèi)容。為了滿(mǎn)足系統(tǒng)強(qiáng)大的功能,建立了適合于系統(tǒng)使用的網(wǎng)上書(shū)店數(shù)據(jù)庫(kù),使系統(tǒng)功能發(fā)揮的更好。我所設(shè)計(jì)的網(wǎng)上書(shū)店系統(tǒng),既適合于普通用戶(hù)使用,也適合后臺(tái)管理人員使用。前后臺(tái)管理相互結(jié)合,使得網(wǎng)上書(shū)店的業(yè)務(wù)處理更加得方便、快捷。在設(shè)計(jì)此系統(tǒng)過(guò)程中,我使用到了許多的SESSION機(jī)制,這些機(jī)制方便于用戶(hù)和管理者對(duì)于系統(tǒng)的使用。為了保護(hù)用戶(hù)的個(gè)人信息不被泄露,也寫(xiě)了相關(guān)的代碼,設(shè)計(jì)了適合的界面管理。為了滿(mǎn)足客戶(hù)的購(gòu)書(shū)需求,在提交訂單之前,用戶(hù)還可以對(duì)訂單進(jìn)行各個(gè)方面的修改。由于畢業(yè)設(shè)計(jì)的時(shí)間較短,且系統(tǒng)設(shè)計(jì)的也不夠全面,也因自己個(gè)人能力的有限性和局限性,所以網(wǎng)上書(shū)店系統(tǒng)還有許多不盡如人意的地方,比如頁(yè)面效果還是不夠美觀,系統(tǒng)功能需求不夠全面等多方面的問(wèn)題,還需要進(jìn)一步的改善和更新。參考文獻(xiàn)[1]鄒天思,潘凱華,劉中華.PHP網(wǎng)絡(luò)編程[M].北京:人民郵電出版社,2008年3月.[2]文增,趙東斌,孫振國(guó),等.動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)趨勢(shì)[J].計(jì)算機(jī)工程,2002年7-9.[3]黃偉.基于PHP技術(shù)的WEB數(shù)據(jù)庫(kù)開(kāi)發(fā)[J].電腦知識(shí)與技術(shù),2005年第3期.[4]陳俊宏.PHP4網(wǎng)站實(shí)做深度研究篇[M].北京:人民郵電出版社,2003年5月.[5]HughE.Wiliams著,謝君英,歐陽(yáng)宇譯.PHP&MYSQLWeb數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)指南[M].北京:中國(guó)電力出版社,2003年5月.[6]王春森,唐振云,齊克科.利用PHP實(shí)現(xiàn)網(wǎng)上數(shù)據(jù)操作[J].計(jì)算機(jī)應(yīng)用,2001年第21卷Z1期.[7]LeonAtkinson著.MySQL核心編程[M].北京:清華大學(xué)出版社,2003年4月.[8]SETERLINGHUGHES等著,徐牧等譯.PHP經(jīng)典實(shí)例[M].北京:人民郵電出版社,2003年4月.[9]張海藩.軟件工程導(dǎo)論(第四版)[M].北京:清華大學(xué)出版社年,2003年.[10]王立福.軟件工程(第二版)[M].北京:北京大學(xué)出版社,2002年.[11]KennethCLaudon.管理信息系統(tǒng)精要(第6版)[M].北京:中國(guó)人民大學(xué)出版社,2006年.[12]于荷云.PHP+MySQL網(wǎng)站開(kāi)發(fā)全程實(shí)例[M].北京:清華大學(xué)出版社,2012年12月.[13]潘凱華,劉中華.PHP開(kāi)發(fā)實(shí)戰(zhàn)1200例(第I卷)[M].北京:清華大學(xué)出版社,2011年1月.[14]Ducket.J著,劉濤,陳學(xué)敏譯.HTML&CSS設(shè)計(jì)與構(gòu)建網(wǎng)站[M].北京:清華大學(xué)出版社,2013年2月.[15]溫謙.HTML+CSS網(wǎng)頁(yè)設(shè)計(jì)與布局從入門(mén)到精通[M].北京:人民郵電出版社,2008年8月.致謝通過(guò)這次的畢業(yè)設(shè)計(jì),結(jié)合這次外出培訓(xùn)所學(xué)到的新的技術(shù)技能,以及大學(xué)三年的課堂學(xué)習(xí),這些都為我的畢業(yè)設(shè)計(jì)墊定了良好的基礎(chǔ)。這次畢業(yè)設(shè)計(jì)能夠順利的完成,社會(huì)上的實(shí)踐鍛煉也給了我許多的編程經(jīng)驗(yàn)。所掌握的軟件開(kāi)發(fā)手段、技術(shù)知識(shí)和實(shí)踐經(jīng)驗(yàn)的結(jié)合運(yùn)用,促使我的畢業(yè)設(shè)計(jì)能夠順利完成。通過(guò)實(shí)踐,了解到社會(huì)對(duì)于技術(shù)的需求,總結(jié)了一些編程經(jīng)驗(yàn),這些都為我的畢業(yè)設(shè)計(jì)系統(tǒng)的設(shè)計(jì)和代碼的編寫(xiě)提供了很好的靈感,減少了代碼編寫(xiě)的部分冗余,提高了代碼的邏輯性和使用效率。在系統(tǒng)設(shè)計(jì)過(guò)程中,經(jīng)常會(huì)翻閱以前所編寫(xiě)的代碼,這些代碼給了我很多的指導(dǎo)。通過(guò)這次的畢業(yè)設(shè)計(jì),不僅本人的技術(shù)技能有了很大的提高,同時(shí)也學(xué)到了如何更好的與人溝通、交流,學(xué)會(huì)了如何更好進(jìn)行團(tuán)隊(duì)合作。四年的大學(xué)生活馬上就要結(jié)束了。在最后的畢業(yè)設(shè)計(jì)中,很感謝我的指導(dǎo)老師朱凱老師給了我很多的指導(dǎo),幫助我指出系統(tǒng)中所存在的漏洞以及系統(tǒng)還需要實(shí)現(xiàn)的功能等等,給了我很多的指導(dǎo)意見(jiàn),幫助我使我的系統(tǒng)設(shè)計(jì)較為完善,幫助我可以順利完成這次的畢業(yè)設(shè)計(jì)工作。我也很感謝我的同學(xué)們,在這次的畢業(yè)設(shè)計(jì)中給予我的提點(diǎn),幫助我理清我的技術(shù)知識(shí)的模糊點(diǎn)。在此,也非常感謝大學(xué)四年里教過(guò)我的諸位任課老師,教會(huì)我知識(shí),教會(huì)我做人。我也非常感謝我的朋友們對(duì)我的幫助、理解與支持。謝謝!附錄主頁(yè)界面中,書(shū)籍快速搜索區(qū)的部分邏輯代碼如下:if(@$_GET['act']=='search'){ $search=trim($_GET['q']);//接收前臺(tái)用戶(hù)所填寫(xiě)的書(shū)籍名稱(chēng)$sql="selectidfromgoodswheregood_name='$search';";$res=$mysqli->query($sql);$seaid=array();if($res){$seaid=$res->fetch_assoc();}$sea_id=$seaid['id'];//獲取用戶(hù)所搜索書(shū)籍的ID號(hào),并保存在$sea_id中if(empty($seaid)){//判斷ID號(hào)是否為空echo"<script>alert('抱歉,本書(shū)店無(wú)此書(shū)!');window.location.href='index.php';</script>";}else{//如存在此ID號(hào),則將直接跳到此頁(yè)面,方便用戶(hù)查看此書(shū)的信息header("Location:goodDetail.php?act=detailedgood&gid=$sea_id");}}注冊(cè)頁(yè)面的部分邏輯代碼如下所示:date_default_timezone_set('Asia/Chongqing');//獲取中國(guó)時(shí)間區(qū)$reg_date=date("Y-m-dH:i:s");//將當(dāng)前時(shí)間保存在$reg_date中session_start();if(@$_POST['act']=="adduser"){//接收用戶(hù)填寫(xiě)的注冊(cè)信息進(jìn)行處理$username=trim($_POST['username']);$password=trim($_POST['userpwd']);$repassword=trim($_POST['userrepwd']);$sex=$_POST['sex'];$img=$_POST['selectpics'].".jpg";$email=trim($_POST['email']);$reding=trim($_POST['reding']);$mysqli=newmysqli("localhost","root","","ebook");$mysqli->set_charset("utf8");$sql="selectusernamefromuserwhereusername='$username';";//查詢(xún)user表中是否存在有用戶(hù)所提交的用戶(hù)名$res=$mysqli->query($sql);while($item=$res->fetch_array()){$res1[]=$item;//將每次獲得的一組數(shù)組保存在$res1數(shù)組中,變成了二維數(shù)組}if(!empty($res1)){//如果user表中已存在此用戶(hù)名,則需要從新填寫(xiě)注冊(cè)信息echo"<script>alert('用戶(hù)名已存在,請(qǐng)重新注冊(cè)!');window.location.href='register.php';</script>";}else{$password=md5($password);//將用戶(hù)所填寫(xiě)的密碼進(jìn)行加密處理$sql="insertintouservalues(null,'$username','$password','$sex','$img','$email','$reding','$reg_date');";//將注冊(cè)所需的數(shù)據(jù)添加到user表中$res1=$mysqli->query($sql);if($res1){$_SESSION['isLogin']="yes";echo"<script>alert('恭喜您,注冊(cè)成功!');window.location.href='login.php';</script>";exit();}}}書(shū)籍目錄頁(yè)面的部分邏輯代碼如下:if(@$_GET['act']=='listgoods'){//接收用戶(hù)所點(diǎn)擊的分類(lèi),給出相應(yīng)的結(jié)果集$cateid=$_GET['cateid'];if($cateid!=1&&$cateid!=2&&$cateid!=3&&$cateid!=4&&$cateid!=5&&$cateid!=6&&$cateid!=7){//書(shū)籍分類(lèi)為二級(jí)分類(lèi)時(shí)$sql="selectid,good_name,good_min_img,market_price,store_price,acountfromgoodswherecat_id=$cateid";$result=$mysqli->query($sql);$records=array();if($result){//判斷結(jié)果集while($item=$result->fetch_assoc()){//依次從結(jié)果集中取得一行作為枚舉數(shù)組$records[]=$item;}}}else{//書(shū)籍分類(lèi)為一級(jí)分類(lèi)時(shí)$sql="selectgoods.id,good_name,good_min_img,market_price,accountstore_pricefromgoods,categorywheregoods.cat_id=category.idandcategory.pid=$cateid;";$result=$mysqli->query($sql);$records=array();if($result){while($item=$result->fetch_assoc()){$records[]=$item;}}}}$tpl->assign('rs',@$records);//將需要使用的數(shù)組集傳給前臺(tái)在前臺(tái)書(shū)籍目錄頁(yè)面接收到這個(gè)數(shù)組集,在頁(yè)面中顯示相應(yīng)的內(nèi)容。其代碼如下:{foreachfrom=$rskey=keyitem=value}<formaction="cart.php"method="get"><li><ahref="goodDetail.php?act=detailedgood&gid={$value.id}"><imgsrc="images/goodsimg/{$value.good_min_img}"width="150"height="150"/></a><p>《{$value.good_name}》</p><p>市場(chǎng)價(jià)格¥<labelclass="quchu">{$value.market_price}</label></p><pclass="red">本店價(jià)格¥{$value.store_price}</p><p>庫(kù)存量:{$value.acount}</p><p>購(gòu)買(mǎi)數(shù)量:<inputtype="text"value="1"class="goodcount"name="buycount"id="6"/></p><inputtype="submit"class="bt"value="購(gòu)買(mǎi)"/><inputtype="hidden"name="act"value="add"/><inputtype="hidden"name="gid"value="{$value.id}"/> </li></form>{/foreach}購(gòu)物車(chē)頁(yè)面可以增加、刪除或修改購(gòu)書(shū)信息,其部分邏輯代碼如下:if(@$_GET['act']=="show"){//購(gòu)物車(chē)頁(yè)面默認(rèn)為總價(jià)為0,市場(chǎng)價(jià)格為0,差價(jià)為0$opt='ok';$total_price=0;$market_price=0;$desc=0;}if(@$_GET['act']=="add"){//增加書(shū)籍到購(gòu)物車(chē)中$gid=@$_GET['gid'];$num=@$_GET['buycount'];//獲取書(shū)籍ID和購(gòu)買(mǎi)數(shù)量$sql="selectid,good_name,good_min_img,store_price,market_price,acountfromgoodswhereid=$gid;";$result=$mysqli->query($sql);$records=array();if($result){while($item=$result->fetch_assoc()){$records[]=$item;}}if(@array_key_exists($gid,$_SESSION['cart'])){//如果所添加書(shū)籍在購(gòu)物車(chē)中已經(jīng)存在echo"<script>alert('商品已經(jīng)存在!');window.location.href='cart.php';</script>";}else{//如果所添加書(shū)籍在購(gòu)物車(chē)中不存在,獲取數(shù)組中所需要用到的值$arr=array('id'=>$records[0]['id'],'good_name'=>$records[0]['good_name'],'good_img'=>$records[0]['good_min_img'],'store_price'=>$records[0]['store_price'],'market_price'=>$records[0]['market_price'],'good_acount'=>$records[0]['acount'],'num'=>$num);$arr['good_sellprice']=$arr['store_price']*$arr['num'];//計(jì)算某本書(shū)籍價(jià)格$_SESSION['cart'][$gid]=$arr;將$arr賦值給$_SESSION['cart'][$gid]}}if(@$_POST['clear']=="清空"){//清空購(gòu)物車(chē),使用函數(shù)unsetunset($_SESSION['cart']);$total_price=0;$market_price=0;$desc=0;}if(@$_GET['act']=='delete'){//刪除某本書(shū)籍,獲取其書(shū)籍ID$gid=$_GET['gid'];unset($_SESSION['cart'][$gid]);//刪除商品if(@$SESSION['cart']==''){$total_price=0;$market_price=0;$desc=0;}}if(@$_POST['update']=="更新"){//某本書(shū)籍的購(gòu)買(mǎi)量發(fā)生變化時(shí)if(!empty($_SESSION['cart'])){foreach($_SESSION['cart']as$key=>$value){$num="num".$key;$new_num=$_POST[$num];//獲取新的購(gòu)買(mǎi)數(shù)量$_SESSION['cart'][$key]['num']=$new_num;$_SESSION['cart'][$key]['good_sellprice']=$_SESSION['cart'][$key]['store_price']*$_SESSION['cart'][$key]['num'];}}else{$total_price=0;$market_price=0;$desc=0;}}if(!empty($_SESSION
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年四川建筑職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(奪冠)
- 2025年河曲縣幼兒園教師招教考試備考題庫(kù)附答案解析(奪冠)
- 2025年新疆科信職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)附答案解析
- 2025年貴州開(kāi)放大學(xué)馬克思主義基本原理概論期末考試模擬題帶答案解析(必刷)
- 2025年福州黎明職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案解析
- 2025年武漢工程大學(xué)馬克思主義基本原理概論期末考試模擬題帶答案解析(必刷)
- 2025年金陵科技學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(必刷)
- 2025年麗水學(xué)院馬克思主義基本原理概論期末考試模擬題帶答案解析(必刷)
- 2025年平壩縣幼兒園教師招教考試備考題庫(kù)附答案解析(奪冠)
- 2025年南京機(jī)電職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題及答案解析(必刷)
- 2024年度高速公路機(jī)電設(shè)備維護(hù)合同:某機(jī)電公司負(fù)責(zé)某段高速公路的機(jī)電設(shè)備維護(hù)2篇
- 《城鎮(zhèn)液化石油氣加臭技術(shù)規(guī)程》
- 2024-2025學(xué)年上學(xué)期南京初中語(yǔ)文九年級(jí)期末試卷
- 醫(yī)院消防安全宣傳教育
- 新高考數(shù)學(xué)之圓錐曲線綜合講義第26講外接圓問(wèn)題(原卷版+解析)
- 中藥湯劑煎煮技術(shù)規(guī)范-公示稿
- 新版出口報(bào)關(guān)單模板
- 微型課題研究的過(guò)程與方法課件
- 藥學(xué)導(dǎo)論緒論-課件
- 14K118 空調(diào)通風(fēng)管道的加固
- 加油站財(cái)務(wù)管理制度細(xì)則
評(píng)論
0/150
提交評(píng)論