【正文】
t 介紹 HTML( Hypertext Markup Language) 是 超文本標(biāo)記語(yǔ)言,是用于描述網(wǎng)頁(yè)文檔的一種標(biāo)記語(yǔ)言。 HTML 是標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言 下的一個(gè)應(yīng)用,也是一種規(guī)范,一種標(biāo)準(zhǔn),它通過(guò)標(biāo)記符號(hào)來(lái)標(biāo)記要顯示的網(wǎng)頁(yè)中的各個(gè)部分。 CSS( Cascading Style Sheet)是層疊樣式表, ,它是一種用來(lái)表現(xiàn) HTML 或 XML 等文件樣式的計(jì)算機(jī)語(yǔ)言。一方面可以使頁(yè)面維護(hù)工作更容易,另一方面也可增加頁(yè)面在不同媒介的呈現(xiàn)效果。 CSS 能夠根據(jù)不同使用者的理解能力,簡(jiǎn)化或者優(yōu)化寫(xiě)法,針對(duì)各類人群,有較強(qiáng)的易讀性。同時(shí)也是一種廣泛用于客戶端 Web 開(kāi)發(fā)的腳本語(yǔ)言, 其源代碼在發(fā)往客戶端運(yùn)行之前不需經(jīng)過(guò)編譯,而是將文本格式的字符代碼發(fā)送給瀏覽器由瀏覽器解釋運(yùn)行。 在 HTML 基礎(chǔ)上,使用 Javascript可以開(kāi)發(fā)交互式 Web 網(wǎng)頁(yè)。 Studio 介紹 Zend Studio 是專業(yè)開(kāi)發(fā)人員在使用 PHP 整個(gè)開(kāi)發(fā)周期中唯一的集成開(kāi)發(fā)環(huán)境,它包括了 PHP 所有必須的開(kāi)發(fā)部件。 Zend Studio 具備功能強(qiáng)大的專業(yè)編輯工具和調(diào)試工具,支持 PHP 語(yǔ)法加亮顯示,支持語(yǔ)法自動(dòng)填充功能,支持書(shū)簽功能,支持語(yǔ)法自動(dòng)縮排和代碼復(fù)制功能,內(nèi)置一個(gè)強(qiáng)大的 PHP 代碼調(diào)試工具,支持本地和遠(yuǎn) 程兩種調(diào)試模式,支持多種高級(jí)調(diào)試功能。 Zend Studio 具有專業(yè)和企業(yè)開(kāi)發(fā)者開(kāi)發(fā)、配置、調(diào)試和管理關(guān)鍵商務(wù) PHP 應(yīng)用的易使用性、可伸縮性、可靠性和擴(kuò)展性 , 是當(dāng)今世上最強(qiáng)大的 PHP 集成開(kāi)發(fā)環(huán)境。 ThinkPHP 從 Struts 結(jié)構(gòu)移植過(guò)來(lái)并做了改進(jìn)和完 善,同時(shí)借鑒了國(guó)外很多優(yōu)秀的框架和模式,使用面向?qū)ο蟮拈_(kāi)發(fā)結(jié)構(gòu)和 MVC 模式,融合了 Struts的思想和 TagLib(標(biāo)簽庫(kù))、 RoR 的 ORM 映射和 ActiveRecord 模式,封裝了 CURD 和一些常用操作,單一入口模式等,在模版引擎、緩存機(jī)制、認(rèn)證機(jī)制和擴(kuò)展性方面均有獨(dú)特的表現(xiàn)。 第三章 系統(tǒng) 分析 可行性分析 開(kāi)發(fā)任何網(wǎng)站, 都會(huì)受到時(shí)間和資源上的限制??尚行苑治鲋饕ń?jīng)濟(jì)可行性、技術(shù)可行性、操作可行性等。本網(wǎng)站開(kāi)發(fā)只需要計(jì)算機(jī)、相關(guān)開(kāi)發(fā)軟件和資料的支持。本網(wǎng)站 操作簡(jiǎn)單,用戶幾乎不需要進(jìn)行專業(yè)培訓(xùn)即可 使用本系統(tǒng) 。 技術(shù)可行性 技術(shù)可行性主要考慮現(xiàn)有的硬軟件平臺(tái)能否滿足開(kāi)發(fā)者的需要,現(xiàn)有的技術(shù)條件能否順利完成開(kāi)發(fā)工作。 PHP 是一種 流行的安全穩(wěn)定的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù), MySQL 數(shù)據(jù)庫(kù)是性能卓越的數(shù)據(jù)庫(kù),非常適合中小型網(wǎng)站的開(kāi)發(fā)。 PHP、 MySQL 和 Apache 搭配可組成良好的開(kāi)發(fā)環(huán)境。 Zend Studio 是 PHP 開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境 ,包含 所有 PHP 必須的開(kāi)發(fā)部件。 ThinkPHP 框架性能優(yōu)異,適合小型網(wǎng)站的開(kāi)發(fā) 現(xiàn)如今硬件的更新速度越來(lái)越快,可靠性有了大幅度提高而價(jià)格越來(lái)越 低。 操作可行性 隨著科學(xué)技術(shù)的日益發(fā)展,互聯(lián)網(wǎng)技術(shù)已經(jīng)在各個(gè)領(lǐng)域得到了廣泛地應(yīng)用。該網(wǎng)站功能強(qiáng)大、操作方便,用戶只需熟悉基本的上網(wǎng)操作即可使用該系統(tǒng)。 綜上所述,辦 公用品網(wǎng)上商城在經(jīng)濟(jì)上、技術(shù)上和操作上都是可行的,且開(kāi)發(fā)該網(wǎng)站會(huì)帶來(lái)一定的經(jīng)濟(jì)效益和社會(huì)效益。需求分析是軟件工程中的一個(gè)關(guān)鍵過(guò)程,它在系統(tǒng)級(jí)需求工程和軟件設(shè)計(jì)間起到橋梁作用。該網(wǎng)站分為前臺(tái)和后臺(tái)兩個(gè)部分。會(huì)員在注冊(cè)并 成功 登錄后,可以瀏覽查詢商品、 訂購(gòu)商品和管理 個(gè)人信息等 操作 。 辦公用品網(wǎng)上商城前臺(tái)可以實(shí)現(xiàn)以下基本功能: ( 1)注冊(cè)功能。在注冊(cè)頁(yè)面 填寫(xiě)基本信息即可成功注冊(cè)為該網(wǎng)站的會(huì)員。會(huì)員在網(wǎng)站主頁(yè)單擊登錄標(biāo) 簽進(jìn)入會(huì)員登錄頁(yè)面。 若輸入信息正確 彈出提示信息 , 并跳轉(zhuǎn)回主頁(yè)。若輸入信息錯(cuò)誤或會(huì)員帳號(hào)被凍結(jié),則彈出提示信息后跳回主頁(yè)。 ( 3) 查詢 商品。會(huì)員在搜索框中輸入商品名稱,單擊搜索按鈕后即可實(shí)現(xiàn)商品查詢。會(huì)員搜索到滿意的商品后,單擊 加入購(gòu)物車(chē)按鈕,即可將商品加入購(gòu)物車(chē)。 選購(gòu)?fù)晟唐泛簏c(diǎn)擊進(jìn)入收銀臺(tái)頁(yè)面,在該頁(yè)面填寫(xiě)基本信息后即可提交訂單。 會(huì)員 登錄后點(diǎn)擊主頁(yè)上的用戶中心標(biāo)簽 ,進(jìn)入個(gè)人信息界面 ,在該頁(yè)面內(nèi) 修改個(gè)人信息。管理員在后臺(tái)管理界面可以查看會(huì)所有會(huì)員 信息 、刪除或者凍結(jié)會(huì)員 。 ( 2)訂單管理。 ( 3)商品管理。管理員也可以在后臺(tái)添加或刪除商品、修改商品信息。管理員在后臺(tái)可以添加公告、修改已發(fā)布的公告。 非功能 需求分析 本系統(tǒng)的非功能需求如下: ( 1)用戶界面需求:簡(jiǎn)潔、易用、易懂,友好和諧的用戶界面。 ( 4)安全保密性需求:用戶登錄需要密碼驗(yàn)證。用例圖是由參與者、用例以及他們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的動(dòng)態(tài)視圖。用例圖顯示了 系統(tǒng)的用戶和用戶希望 提供的功能,有利于用戶和軟件開(kāi)發(fā)人員之間的溝通。在用例圖中使用人形圖標(biāo)表示參與者,參與者的名字寫(xiě)在人下面。用例圖中用橢圓符號(hào)表示用例。 本次設(shè)計(jì)系統(tǒng)的參與者分為兩類,會(huì)員和管理員。會(huì)員如果在登錄時(shí)忘記密碼可以找回密碼。辦公用品網(wǎng)上商城的用例圖如圖 31 所示。 實(shí)體 聯(lián)系模型的基本要素是實(shí)體、聯(lián)系和屬性。而具有相同屬性的一類實(shí)體抽象為一個(gè)實(shí)體型。而現(xiàn)實(shí)世界中事物內(nèi)部及事物之間的聯(lián)系抽象為實(shí)體型內(nèi)部的聯(lián)系 和實(shí)體型之間的聯(lián)系。該方法用 表示實(shí)體型、屬性和聯(lián)系的方法來(lái)描述現(xiàn)實(shí)世界的概念模型。 用橢圓表示實(shí)體的屬性,并用無(wú)向邊將其與相應(yīng)的實(shí)體型連接起來(lái) 。 若實(shí)體之間聯(lián)系有屬性,則把屬性和聯(lián)系之間用無(wú)向邊連上。管理員和公告、商品、分類三個(gè)之間都存在一 對(duì)多的添加聯(lián)系。會(huì)員和商品之間存在多對(duì)多的訂購(gòu)與評(píng)論聯(lián)系。 會(huì) 員會(huì) 員 名密 碼 身 份 證 號(hào)家 庭 住 址手 機(jī) 號(hào) 碼郵 件編 號(hào)郵 編真 實(shí) 姓 名Q Q 號(hào) 碼密 碼 提 示提 示 答 案 表 32 會(huì)員實(shí)體圖 管 理 員編 號(hào)密 碼 帳 號(hào)手 機(jī) 號(hào)管 理 員 名 表 33 管理員實(shí)體圖 商 品編 號(hào)名 稱品 牌圖 片分 類市 場(chǎng) 價(jià)價(jià) 格會(huì) 員 價(jià)型 號(hào)數(shù) 量等 級(jí)是 否 推 薦 表 34 商品實(shí)體圖 公 告編 號(hào)標(biāo) 題內(nèi) 容 表 35 公告實(shí)體圖 分 類編 號(hào) 類 型 名 表 35 公告實(shí)體圖 管 理 員 添 加 公 告會(huì) 員評(píng)論商 品訂購(gòu)編 號(hào)標(biāo) 題內(nèi) 容評(píng) 論 時(shí) 間M添 加 時(shí) 間編 號(hào)數(shù) 量收 貨 人收 貨 地 址聯(lián) 系 方 式支 付 方 式總 價(jià)狀 態(tài)添 加添 加 時(shí) 間管理凍 結(jié) 狀 態(tài)MNMN1N1M分 類添加11M訂 單 號(hào) 表 36 總 ER 圖 第四章 系統(tǒng)概要 設(shè)計(jì) 系統(tǒng)功能設(shè)計(jì) 系統(tǒng)總體結(jié)構(gòu) 辦公用品網(wǎng)上商城分為前臺(tái)和后臺(tái)管理兩個(gè)模塊。后臺(tái)面向管理員,主要分為會(huì)員管理 模塊、商品 管理 模塊和訂單 管理 模塊 三個(gè)模塊。 會(huì) 員 登 錄輸 入 帳 號(hào) 和 密 碼會(huì) 員 已 注 冊(cè) ?注 冊(cè) 會(huì) 員會(huì) 員 被 凍 結(jié) ?密 碼 正 確 ?前 臺(tái) 頁(yè) 面查 詢 商 品加 入 購(gòu) 物 車(chē) , 填 寫(xiě)數(shù) 量繼 續(xù) 購(gòu) 物 ?填 寫(xiě) 收 貨 人 信 息提 交 訂 單點(diǎn) 擊 個(gè) 人 中 心修 改 會(huì) 員 信 息修 改 密 碼退 出 登 錄忘 記 密 碼找 回 密 碼 圖 42 會(huì)員操作流程圖 管理員 操作流程圖如圖 43 所示。其中會(huì)員、管理員、商品、分類和公告五個(gè)實(shí)體各轉(zhuǎn)換為一張表。管理員與公告之間的一對(duì)多的添加聯(lián)系合并到公告表中。會(huì)員與商品之間的多對(duì)多的評(píng)論關(guān)系轉(zhuǎn)換為訂單表。 ThinkPHP 中的 MVC 分層體現(xiàn)在: 模型( M):模型的定義由 Model 類來(lái) 完成。 視圖( V):由 View 類和模板文件組成,模板做到了 100%分離,可以獨(dú)立預(yù)覽和制作。這五個(gè)控制器類都繼承 ThinkPHP 框架 Action 控制器基類 — Action 類。 GonggaoAction 類負(fù)責(zé)與公告相關(guān)的某些操作, ProductAction 類負(fù)責(zé)與商品相關(guān)的一些操作, DingdanAction類負(fù)責(zé)處理與訂單相關(guān)的一些操作, UserAction 類負(fù)責(zé)與會(huì)員相關(guān)的一些操作。 + _ _ c o n s t r u c t ( ) i s A j a x ( )+ d i s p l a y ( )+ a s s i g n ( ) n a m e v i e w e r r o rA c t i o n C l a s s+ _ i n i t i a l i z e ( )P u b l i c A c t i o n C l a s s+ i n d e x ( )I n d e x A c t i o n C l a s s+ l o o k i n f o ( )+ a d d g o u w u c h e ( )+ g o u w u 1 ( )+ r e m o v e g w c ( )+ s h o w n e w ( )+ s h o w t u i j i a n ( )+ s h o w h o t ( )+ s h o w f e n l e i ( )+ h i g h t f i n d ( )+ d o h i g h t f i n d ( )+ f i n d s p ( )+ s a v e p j ( )+ s h o w p j ( )+ s a v e d d ( )+ s h o w d d ( )+ f i n d d d ( )+ q r d d ( )P r o d u c t A c t i o n C l a s s+ s h o w g g ( )+ s h o w g o n g g a o ( )G o n g g a o A c t i o n C l a s s+ c h k u s e r n c ( )+ s a v e r e g ( )+ c h a n g e i n f o ( )+ c h k p a s s w o r d ( )+ c h k u s e r ( )+ l o g o u t ( )+ m y p w d ( )+ s h o w p w d ( )U s e r A c t i o n C l a s s 圖 51 前臺(tái)模塊控制器類圖 ThinkPHP 框架中, Model 模型類與數(shù)據(jù)庫(kù)中的 表或視圖一一對(duì)應(yīng)。由于前臺(tái)模塊不需要與管理員員進(jìn)行交互,所以前臺(tái)模塊共設(shè)計(jì)六個(gè)模型類: DingdanModel 類、GonggaoModel 類、 PingjiaModel、 ShangpinModel 類、 TypeModel 類和 UserModel 類。前臺(tái)模塊模型類圖如圖 52 所示。 單擊主頁(yè)上會(huì)員注冊(cè)標(biāo)簽,系統(tǒng)解析 URL 參數(shù),調(diào)用UserAction 類的 reg()方法。在該界面輸入相關(guān)信息,點(diǎn)擊提交按鈕即可完成注冊(cè)。點(diǎn)擊提交按鈕后,系統(tǒng)調(diào)用 UserAction 類的 savereg()方法。若不存在則顯示注冊(cè)成功。會(huì)員注冊(cè)頁(yè)面如圖所示 圖 53 會(huì)員注冊(cè)頁(yè)面 登錄模塊設(shè)計(jì)與實(shí)現(xiàn) 已注冊(cè)會(huì)員在首頁(yè) 的登錄框內(nèi)輸入會(huì)員名、密碼和驗(yàn)證碼,即完成登錄操作。該方法通過(guò)接收表單信息對(duì)驗(yàn)證碼進(jìn)行校驗(yàn),通過(guò) UserModel 模型類從數(shù)據(jù)庫(kù)中獲取相關(guān)信息 對(duì) 會(huì)員的狀態(tài)以及會(huì)員提交的 會(huì)員名和密碼進(jìn)行校驗(yàn) 。若會(huì)員輸入信息正確且未被凍結(jié),則開(kāi)啟 session,將會(huì)員的相關(guān)信息存入 session 中,并顯示會(huì)員成功登錄。 圖 54 會(huì)員注冊(cè)頁(yè)面 查詢模塊設(shè)計(jì)與實(shí)現(xiàn) 會(huì)員可以瀏覽首頁(yè)內(nèi)的相關(guān)商品,也可以網(wǎng)頁(yè)上方的搜索框中 輸入相關(guān)信息,進(jìn)行 模糊搜索或精確搜索。該方法通過(guò) ShangpinModel 模型類對(duì)輸入的關(guān)鍵字進(jìn)行模糊查詢。若點(diǎn)擊精確查找按鈕,系統(tǒng)將調(diào)用 ProductAction 類的 hightfind 方法,該方法通過(guò) ShangpinModel 類和TypeModel 類從數(shù)據(jù)庫(kù)中查詢商品名稱、型號(hào)和類型等信息。會(huì)員在該頁(yè)面內(nèi)選擇詳細(xì)的商品信息,進(jìn)行精確查找。系統(tǒng)將結(jié)果注入到模板文件 中,并調(diào)用該模板文件顯示查詢結(jié)果。 圖 55 查詢結(jié)果頁(yè)面 在網(wǎng)頁(yè) 上點(diǎn)擊某一商品的圖像、名稱后,系統(tǒng)會(huì)調(diào)用 ProductAction 類的 lookinfo()方法。系統(tǒng)將查詢結(jié)果注入到模板文件 中,并將調(diào)用該文件顯示商品的具體信息。 圖 56 商品具體信息頁(yè)面 系統(tǒng)自動(dòng)判斷是否有會(huì)員登錄。若有會(huì)員登 錄,則會(huì)繼續(xù)顯示評(píng)論框。系統(tǒng)調(diào)用 ProductAction 類的 savepj()方法。在該頁(yè)面