網(wǎng)上花店管理系統(tǒng)畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  一、在 線 花 店2</p><p>  二、特 色 突 破3</p><p>  三、 系 統(tǒng) 概 述3</p><p><b>  3.1系統(tǒng)設(shè)計3</b></p><p>  3.1.1 系統(tǒng)功能與

2、應(yīng)用背景3</p><p>  3.1.2 系統(tǒng)瀏覽4</p><p>  3.1.3 系統(tǒng)特點(diǎn)4</p><p>  3.2 系統(tǒng)設(shè)計和架構(gòu)5</p><p>  3.2.1 系統(tǒng)設(shè)計思想5</p><p>  3.2.2 系統(tǒng)結(jié)構(gòu)設(shè)計5</p><p>  系統(tǒng)功能模塊細(xì)分6&

3、lt;/p><p>  3.2.3服務(wù)器和ASP運(yùn)作環(huán)境配置6</p><p>  3.3數(shù)據(jù)庫的設(shè)計、生成與配置8</p><p>  3.3.1 數(shù)據(jù)庫需求分析9</p><p>  3.3.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計9</p><p>  3.3.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計12</p><p>

4、  3.4公用模塊的編寫16</p><p>  3.4.1數(shù)據(jù)庫連接文件16</p><p>  3.4.2頁面頭文件22</p><p>  3.4.3頁面尾文件23</p><p>  3.5前臺界面設(shè)計與實(shí)現(xiàn)27</p><p>  3.5.1首頁設(shè)計27</p><p> 

5、 3.5.2產(chǎn)品詳細(xì)信息32</p><p>  3.5.3我的購物車頁面設(shè)計36</p><p>  3.5.4結(jié)帳處理40</p><p>  3.5.5用戶注冊的設(shè)計與實(shí)現(xiàn)47</p><p>  3.5.6訂單查詢49</p><p>  四、 結(jié) 論50</p><p&g

6、t;  五、致 謝51</p><p><b>  六、參考文獻(xiàn)52</b></p><p><b>  摘要</b></p><p>  本系統(tǒng)是一個相對簡單的基本應(yīng)用系統(tǒng),主要滿足傳統(tǒng)的花店運(yùn)營需要,將自己的銷售渠道擴(kuò)展到網(wǎng)上,通過簡單的管理,提供給最終消費(fèi)者產(chǎn)品的展現(xiàn)、購物、訂單處理等一實(shí)現(xiàn)鮮花在線銷售。&

7、lt;/p><p>  通過本系統(tǒng)可以管理簡單的在線銷售模式、滿足用戶隨時查詢產(chǎn)品信息,隨時下單購物的應(yīng)用需求。由于本系統(tǒng)考慮到產(chǎn)品的適應(yīng)性、安全性和訪問效率,所以,在系統(tǒng)平臺多樣性、技術(shù)先進(jìn)性、功能適應(yīng)性和靈活性等方面都有考慮,使系統(tǒng)相對完善,具有更好的學(xué)習(xí)價值。</p><p>  關(guān)鍵詞:花店,在線,網(wǎng)店</p><p><b>  Abstract &

8、lt;/b></p><p>  The present system is a relatively simple and basic applications, mainly to meet the needs of the traditional flower shop operator, will expand its sales channels to the Internet through s

9、imple management, to the final consumer products show, shopping, order processing and so on to achieve a Online sales of flowers. The system can be managed through a simple on-line sales mode, the user at any time to me

10、et the product information, shopping at any time under a single application requirements. As</p><p><b>  一、在 線 花 店</b></p><p>  再線花店系統(tǒng)將傳統(tǒng)的花店經(jīng)營管理模式與計算機(jī)網(wǎng)絡(luò)的綜合經(jīng)營管理模式結(jié)合在一</p><p

11、>  起。將人、機(jī)、物的需求、活動和運(yùn)作進(jìn)行系統(tǒng)分析、設(shè)計并管理,一實(shí)現(xiàn)現(xiàn)代高效、科學(xué)且安全的電子商務(wù)。</p><p>  本例通過一個在線花店的實(shí)例來介紹ASP與Access數(shù)據(jù)庫結(jié)合開發(fā)的小型電子商務(wù)系統(tǒng)的過程。在系統(tǒng)設(shè)計時。從傳統(tǒng)花店的經(jīng)營模式,網(wǎng)上用戶需求與業(yè)務(wù)經(jīng)營模式,計算機(jī)網(wǎng)絡(luò)管理、系統(tǒng)設(shè)計等幾方面綜合分析,定義系統(tǒng)的輸入、輸出、實(shí)現(xiàn)功能、系統(tǒng)運(yùn)作能力、系統(tǒng)安全性、系統(tǒng)可維護(hù)性等各項(xiàng)需求。其中

12、數(shù)據(jù)庫采用Access,動態(tài)網(wǎng)頁開發(fā)采用ASP,綜合應(yīng)用了ADO、數(shù)據(jù)庫設(shè)計、密碼、身份驗(yàn)證和緩存等技術(shù)。</p><p><b>  二、特 色 突 破</b></p><p>  網(wǎng)上花店系統(tǒng)適合在線銷售鮮花、禮品等,具有商品多屬性檢索(支持多重屬性分類)、</p><p>  購物車、訂單提交和查詢等網(wǎng)上花店所需的基本功能。</p&

13、gt;<p>  本系統(tǒng)采用ASP編寫,在Windows的IIS的支持下運(yùn)行。為了提高系統(tǒng)的效率,使用戶瀏覽時候響應(yīng)速度更快,本實(shí)例后臺采用了緩存技術(shù)。</p><p>  三、 系 統(tǒng) 概 述</p><p><b>  3.1系統(tǒng)設(shè)計</b></p><p>  3.1.1 系統(tǒng)功能與應(yīng)用背景</p><p

14、>  互聯(lián)網(wǎng)以前所未有的速度發(fā)展,成為與報紙、廣播、電視相比肩的第四媒體,同時正以其更捷的信息傳輸形式改變這人們的消費(fèi)模式,利用簡單、快界、低成本的電子通信方式,買賣雙方不謀面就可以進(jìn)行各種商貿(mào)活動,走向商業(yè)的互聯(lián)網(wǎng)已經(jīng)成為網(wǎng)絡(luò)經(jīng)濟(jì)的大勢所趨。</p><p>  眼下電子商務(wù)網(wǎng)站正如雨后春筍般大量涌現(xiàn),企業(yè)網(wǎng)絡(luò)化已經(jīng)一種時尚。電子商務(wù)的發(fā)展可能大家都已經(jīng)耳濡目染,上網(wǎng)的朋友對這已經(jīng)不再陌生,電子商務(wù)確確實(shí)

15、實(shí)出現(xiàn)在我們周圍。本系統(tǒng)是一個在線花店系統(tǒng),具有在線先手鮮花的基本功能。同過配置,可以作為一個實(shí)際應(yīng)用的鮮花銷售網(wǎng)站。本系統(tǒng)是為傳統(tǒng)經(jīng)營的花店構(gòu)建網(wǎng)上銷售渠道而開發(fā)的。</p><p>  本例中的在線花店重要完成的功能如下。</p><p>  鮮花產(chǎn)品選購(可按分類方式查找鮮花種類或通過關(guān)鍵字進(jìn)行查詢)</p><p><b>  購物車功能</

16、b></p><p><b>  查看鮮花詳細(xì)情況</b></p><p><b>  用戶注冊</b></p><p><b>  用戶登陸</b></p><p><b>  查看用戶的訂單信息</b></p><p>&

17、lt;b>  用戶評論</b></p><p>  3.1.2 系統(tǒng)瀏覽</p><p>  圖 3-1 是用戶訪問網(wǎng)站的第一個界面,也是本系統(tǒng)的主界面。用戶通過這個主界面可以瀏覽網(wǎng)站各個分類頁面,瀏覽推薦商品和查看分類屬性頁等。</p><p>  圖 3-1 網(wǎng)站的首頁</p><p>  3.1.3 系統(tǒng)特點(diǎn)</

18、p><p>  本章所介紹的實(shí)例具有以下特點(diǎn)。</p><p><b>  (1)頁面模塊化</b></p><p>  本系統(tǒng)在界面設(shè)計上都采用了模塊化處理思想,把很多頁面功用部分集成一個模塊,例如頁面的頭、尾和導(dǎo)航條,這樣在開發(fā)是遇到這些相似的頁面部分,就不需要重新編寫,只要重用這部分即可,大大提高了開發(fā)效率。</p><p

19、><b> ?。?)緩存技術(shù)</b></p><p>  把產(chǎn)品導(dǎo)航信息放到內(nèi)存中緩存起來,大大提高了網(wǎng)站效率和響應(yīng)速度。</p><p>  3.2 系統(tǒng)設(shè)計和架構(gòu)</p><p>  3.2.1 系統(tǒng)設(shè)計思想</p><p>  電子上午發(fā)展已經(jīng)有10多年的歷史了,在中國很多人對電子商務(wù)也逐漸接受和認(rèn)可。網(wǎng)上購

20、物作為依仗時尚很多人去體會,更有部分人把購物同逛商場等顯示社會服務(wù)一樣作為生活的一部分。鮮花作為生活的點(diǎn)綴,也越來越為生活所需要。這種網(wǎng)上買賣鮮花的交易越來越多,也逐漸被廣大消費(fèi)者所接受。</p><p>  本系統(tǒng)是一個相對簡單的基本應(yīng)用系統(tǒng),主要滿足傳統(tǒng)的花店運(yùn)營需要,將自己的銷售渠道擴(kuò)展到網(wǎng)上,通過簡單的管理,提供給最終消費(fèi)者產(chǎn)品的展現(xiàn)、購物、訂單處理等一實(shí)現(xiàn)鮮花在線銷售。</p><p

21、>  通過本系統(tǒng)可以管理簡單的在線銷售模式、滿足用戶隨時查詢產(chǎn)品信息,隨時下單購物的應(yīng)用需求。由于本系統(tǒng)考慮到產(chǎn)品的適應(yīng)性、安全性和訪問效率,所以,在系統(tǒng)平臺多樣性、技術(shù)先進(jìn)性、功能適應(yīng)性和靈活性等方面都有考慮,使系統(tǒng)相對完善,具有更好的學(xué)習(xí)價值。</p><p>  本實(shí)例把頁面中一些常用的部分集成為模塊,例如頁面的頭和尾部,這樣設(shè)計新的頁面如果有重復(fù)出現(xiàn)的部分,只需要那現(xiàn)成的模塊來組裝就可以了。<

22、/p><p>  3.2.2 系統(tǒng)結(jié)構(gòu)設(shè)計</p><p>  本實(shí)例由Web服務(wù)器為最終用戶提供展現(xiàn)服務(wù)和為管理員提供管理服務(wù);用數(shù)據(jù)庫保存產(chǎn)品、用戶和訂單等信息。系統(tǒng)結(jié)構(gòu)如圖3-2所示</p><p>  圖 3-2 系統(tǒng)結(jié)構(gòu)圖</p><p><b>  系統(tǒng)功能模塊細(xì)分</b></p><p>

23、;<b> ?。?)用戶管理模塊</b></p><p>  管理用戶登錄、用戶注冊和用戶修改等用戶信息的基本功能,與一般電子商務(wù)的用戶管理系統(tǒng)基本相同。</p><p><b> ?。?)產(chǎn)品信息模塊</b></p><p><b>  陳列產(chǎn)品的詳細(xì)信息</b></p><p&

24、gt; ?。?)導(dǎo)航分類檢索模塊</p><p>  按不同分類和不同應(yīng)用導(dǎo)航產(chǎn)品,把相關(guān)產(chǎn)品列出。</p><p>  (4)購物車處理模塊</p><p>  通過cookie技術(shù)實(shí)現(xiàn)購物車。用戶選者產(chǎn)品后,點(diǎn)擊“購買”進(jìn)入購物頁面,陳列要購買的產(chǎn)品明細(xì)項(xiàng)。</p><p> ?。?)用戶選擇產(chǎn)品完畢,通過購物頁面到訂單結(jié)帳頁面,填寫必要

25、的信息,產(chǎn)生最終訂單;還提供訂單查詢功能。</p><p>  3.2.3服務(wù)器和ASP運(yùn)作環(huán)境配置</p><p><b>  1.軟件準(zhǔn)備</b></p><p>  本章實(shí)例的數(shù)據(jù)庫管理軟件采用Access,安裝Office的時候便會附帶安裝Access如果讀者機(jī)器上沒有安裝Access,請準(zhǔn)備Office軟件;Web服務(wù)采用IIS,II

26、S的安裝請參考1.3.4節(jié)。</p><p><b>  2.IIS的配置</b></p><p>  IIS默認(rèn)的Web(主頁)文件存放于系統(tǒng)根區(qū)的“%system%inetpu/wwwroot”中。</p><p>  這里簡單介紹IIS配置虛擬目錄的過程。在“控制面板”,雙擊“管理工具”,在“管人站點(diǎn)”,然后用鼠標(biāo)右鍵單擊“默認(rèn)網(wǎng)站”。從

27、彈出的快捷菜單中選擇【新建】→【虛擬目錄】,如圖3-3所示</p><p>  彈出如圖3-4所示的“虛擬目錄別名”對話框。</p><p>  圖3-4指定虛擬目錄別名</p><p>  在如圖3-4所示對話框中填寫虛擬目錄別名,例如“Ivzhi”然后單擊【下一步】按鈕,彈出如圖3-5所示的“網(wǎng)站內(nèi)容目錄”對話框。</p><p>  圖

28、3-5 選擇實(shí)際目錄</p><p>  在圖3-5所示對話框中,單擊【瀏覽】按鈕為該虛擬目錄選擇一個實(shí)際目錄(例如)“c:\\www”),然后單擊【下一步】按鈕,最后單擊【完成】按鈕,這樣名為“Ivzhii”的虛擬目錄就創(chuàng)建好了。在實(shí)際開發(fā)時,所有頁面都放到“c:\\www”下,訪問時從瀏覽器輸入“http://localhost/Ivzhi/index.asp”,該訪問“c:\\www”下的“index.as

29、p”頁面</p><p>  3.3數(shù)據(jù)庫的設(shè)計、生成與配置</p><p>  信息管理系統(tǒng)離不開數(shù)據(jù)庫,它保存系統(tǒng)用到的數(shù)據(jù)。本系統(tǒng)的數(shù)據(jù)庫主要用來保存用戶、訂單、產(chǎn)品等信息,所以數(shù)據(jù)庫主要用到的表有:用戶表、訂單表、產(chǎn)品表和分類導(dǎo)航4類表。</p><p>  設(shè)計數(shù)據(jù)庫系統(tǒng)時應(yīng)該先充分了解各個方面的需求,根據(jù)需求決定數(shù)據(jù)庫結(jié)構(gòu)。</p><

30、;p>  3.3.1 數(shù)據(jù)庫需求分析</p><p>  簡單來說系統(tǒng)有3個對象:用戶、消化產(chǎn)品和訂單。用戶瀏覽鮮花產(chǎn)品,并且在需要的時候下訂單。各這些信息提供增加、修改、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能從粉滿足這些信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)處理的流程,組合一份盡的數(shù)據(jù)字典,為程序設(shè)計打下基礎(chǔ)。</p><p>  系統(tǒng)需求積累用戶資源,用用戶表來記錄用戶的

31、信息,具體包括用戶的真名、地址、電話、郵編、身份證號、E-mail和密碼等基本信息。</p><p>  網(wǎng)站要給用戶展現(xiàn)產(chǎn)品,把鮮花產(chǎn)品的詳細(xì)信息介紹給用戶,需要產(chǎn)品信息表,具體包括產(chǎn)品名稱、各類屬性和所屬分類等。</p><p>  網(wǎng)站是電子商務(wù)網(wǎng)站,最終目的是為用戶服務(wù),使用戶瀏覽查后有購買的欲望,進(jìn)行購買行為。訂單類表格記錄用戶的購買行為,需要記錄購買的產(chǎn)品信息,付款人的信息,收

32、款人的信息,下單時間等。</p><p>  為了方便用戶的查找,提高網(wǎng)站的服務(wù)質(zhì)量,對產(chǎn)品進(jìn)行不同的屬性導(dǎo)航,一個鮮花產(chǎn)品分可以包含不同的屬性,方便用戶的查找,促進(jìn)用戶的消費(fèi),實(shí)現(xiàn)網(wǎng)站的價值,對具體查的屬性進(jìn)行分類,實(shí)現(xiàn)屬性導(dǎo)航表,包括產(chǎn)品屬性分類,產(chǎn)品對應(yīng)產(chǎn)品屬性的對應(yīng)表。</p><p>  通過上述系統(tǒng)功能分析,針對一般的在線花店的需求,包括如下數(shù)據(jù)表。</p>&l

33、t;p>  網(wǎng)站用戶信息表,包括數(shù)據(jù)項(xiàng)、用戶ID、用戶代號等。</p><p>  采購訂單表,包括數(shù)據(jù)項(xiàng)、訂單ID、付款人姓名、付款人電話等。</p><p>  訂單明細(xì)表,包括數(shù)據(jù)項(xiàng)、訂單明細(xì)編號、產(chǎn)品ID、訂單ID等。</p><p>  產(chǎn)品表,包括數(shù)據(jù)項(xiàng)、產(chǎn)品ID、產(chǎn)品代碼、產(chǎn)品名稱等。</p><p>  用戶評論表,包括

34、數(shù)據(jù)項(xiàng)、ID評論內(nèi)容、用戶名稱等。</p><p>  目錄屬性表,包括數(shù)據(jù)項(xiàng)、目錄編號名字、目錄編號等。</p><p>  導(dǎo)航屬性字典表,包括數(shù)據(jù)項(xiàng)、導(dǎo)航ID數(shù)字類型ID、文本類型ID。</p><p>  產(chǎn)品導(dǎo)航屬性對應(yīng)表,包括數(shù)據(jù)項(xiàng)、導(dǎo)航類型ID、導(dǎo)航名稱等。</p><p>  3.3.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計</p>

35、<p>  得到上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ)。這些實(shí)體包括各種具體信息,通過相互之間的作用形成數(shù)據(jù)的流動。</p><p>  本實(shí)例設(shè)計規(guī)劃出的實(shí)體包括網(wǎng)站用戶實(shí)體、采購訂單明細(xì)實(shí)體、產(chǎn)品實(shí)體、用戶評論實(shí)體、目錄信息實(shí)體、目錄屬性實(shí)體、導(dǎo)航屬性實(shí)體、查導(dǎo)航屬性對應(yīng)關(guān)系實(shí)體。圖3-6為實(shí)體間關(guān)系的E-R圖</

36、p><p>  圖3-6 實(shí)體關(guān)系E-R圖</p><p>  圖3-7為網(wǎng)絡(luò)用戶實(shí)體E-R圖。圖3-8為采購訂單的實(shí)體E-R圖。</p><p>  圖3-7網(wǎng)站用戶實(shí)體E-R圖 圖3-8采購訂單實(shí)體E-R圖</p><p>  圖3-9為訂單明細(xì)實(shí)體E-R圖。圖3-10為產(chǎn)品實(shí)體E-R圖。</p><p>

37、;  圖3-9訂單明細(xì)實(shí)體E-R圖 圖3-10產(chǎn)品實(shí)體E-R圖</p><p>  圖3-11為用戶評論實(shí)體E-R圖。 圖3-12為目錄信息實(shí)體E-R圖</p><p>  圖3-11 用戶評論實(shí)體E-R圖 圖3-12目錄信息實(shí)體E-R圖</p><p>  圖3-13為目錄屬性實(shí)體E-R圖。 圖3-14為導(dǎo)

38、航屬性字典實(shí)體E-R圖。</p><p>  圖3-13 目錄屬性實(shí)體E-R圖 圖3-14導(dǎo)航屬性字典實(shí)體E-R圖</p><p>  圖3-15為產(chǎn)品導(dǎo)航屬性對應(yīng)關(guān)系E-R圖</p><p>  圖3-15 產(chǎn)品導(dǎo)航屬性對應(yīng)關(guān)系E-R圖</p><p>  3.3.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p>

39、;<p>  數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計完畢后,現(xiàn)在可以將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為某種數(shù)據(jù)庫系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。本章實(shí)例系統(tǒng)采用Access數(shù)據(jù)庫,因此在設(shè)計本章實(shí)例系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)時,需要遵循Access數(shù)據(jù)庫的語法結(jié)構(gòu)。</p><p>  在線花店系統(tǒng)中各個表的設(shè)計結(jié)果如下面表格所示。每個表格表示在數(shù)據(jù)庫中的一個表,</p><p>  表3

40、-1為用戶表,記錄某個用戶的信息。</p><p>  表3-1中autoid是用戶網(wǎng)站惟一標(biāo)識,Useid是在用戶注冊時自己選擇的名字,其他是擁護(hù)需要的屬性。</p><p>  表3-2為產(chǎn)品信息列表,記錄花店現(xiàn)有的產(chǎn)品信息。</p><p>  表3-2中Autoid是產(chǎn)品在網(wǎng)站的惟一標(biāo)識,在數(shù)據(jù)增加是自動生成,category是對應(yīng)目錄表的分類字符串。<

41、;/p><p>  表3-3中目錄信息表,記錄花店的分類信息。</p><p>  表3-3 directory目錄信息表</p><p>  表3-3中目錄用字符串分級表示,產(chǎn)品的種類對應(yīng)目錄代碼。</p><p>  表3-4為訂單信息表,記錄花店的訂單信息。</p><p>  表3-4 myorder訂單信息表

42、</p><p>  表3-4中的autoid是訂單在網(wǎng)站的惟一表識,數(shù)據(jù)增加是自動生成,category是對應(yīng)目錄表的分類字符串。訂單的付款人一般是網(wǎng)站的會員,收款人可以是自己,也可以是自己的朋友,所以對這兩方面信息分開進(jìn)行記錄。</p><p>  表3-5為訂單名細(xì)表,極力花店定單具體購買的產(chǎn)品信息。</p><p>  表3-5 orderitem訂單明細(xì)

43、表</p><p>  訂單明細(xì)表和訂單表是多對一的關(guān)系,就是一張訂單可以有多個產(chǎn)品。</p><p>  表3-6為目錄性表,記錄花店目錄的屬性。</p><p>  表3-6 directoryproperty目錄屬性表</p><p>  目錄屬性是為了更好的導(dǎo)航產(chǎn)品,目錄的產(chǎn)品有不同的屬性,比如鮮花的用途、花材、對象等屬性。<

44、/p><p>  表3-7為導(dǎo)航屬性字典表,記錄花店目錄的屬性值。</p><p>  表3-7 navigationdict導(dǎo)航屬性字典表</p><p>  導(dǎo)航屬性字典對應(yīng)表3-6目錄屬性表的auotid字段,換種說法就是目錄有什么屬性,屬性具體對應(yīng)什么值。比如鮮花目錄的用途屬性有戀情、生日、友情、祝福、婚慶、商務(wù)等不同的用途。</p><p

45、>  表3-8為產(chǎn)品導(dǎo)航屬性對應(yīng)表,記錄花店產(chǎn)品對應(yīng)的不同屬性。</p><p>  表3-8 navigationrelation 產(chǎn)品導(dǎo)航屬性對應(yīng)表</p><p>  一個產(chǎn)品可以對應(yīng)多個導(dǎo)航屬性,最終用戶可以根據(jù)不同的屬性瀏覽產(chǎn)品,方便用戶查找產(chǎn)品。</p><p>  表3-9為用戶評論表,記錄用戶對產(chǎn)品的評論。</p><p&g

46、t;  表3-9comment 用戶評論表</p><p>  表3-9記錄用戶對查的評論,userautoid為0客人,不是網(wǎng)站用戶。</p><p>  3.4公用模塊的編寫</p><p>  3.4.1數(shù)據(jù)庫連接文件</p><p>  把數(shù)據(jù)庫連接操作作封狀在一個頁面Commondb.asp中,以方便其他頁面調(diào)用。例程3-1為Com

47、mondb.asp頁面的參考代碼。</p><p>  例程3-1 數(shù)據(jù)庫連接頁面commondb.asp</p><p><b>  <%</b></p><p>  const myDatabase="lvzhi" 'Database name</p><p>  const my

48、dblocation="db/"'location of database relative to </p><p><b>  %></b></p><p>  例程3-1定義了兩個常量myDatabase和mydblocation,其中m,yDatabase為數(shù)據(jù)庫名稱,mydblocation為數(shù)據(jù)庫存放位置,如果需要修改數(shù)據(jù)庫

49、存放位置和名稱,就修改myDatabase和mydblocation這2個變量的值。</p><p>  例程3-1中引入了頁面allcommon,asp,allcommon,asp頁面中定義了數(shù)據(jù)庫連接的操作函數(shù),例程3-2為這些函數(shù)定義的參考代碼。</p><p>  例呈3-2 allcommon.asp定義的數(shù)據(jù)庫公用函數(shù)代碼</p><p>  打開數(shù)據(jù)庫

50、 最頂級函數(shù)</p><p><b>  <%</b></p><p>  ' Debug Message</p><p>  Sub Debug (msg)</p><p>  response.write msg & "<br>"</p><

51、p><b>  end sub</b></p><p>  ' get ComeFrom Cookie</p><p>  function getComeFromCookie()</p><p><b>  dim ret</b></p><p>  ret=Request.Co

52、okies("comefrom")</p><p>  if (comefrom=null) then</p><p><b>  ret=""</b></p><p><b>  end if</b></p><p>  getComeFromCookie=

53、ret</p><p>  end function</p><p>  const myCookieKey="lvzhi"</p><p>  const myUseCookies="no"</p><p>  Sub SetSess (field, value)</p><p&g

54、t;  If myUseCookies<>"Yes" then </p><p>  Session(field)=value</p><p><b>  else</b></p><p>  Response.cookies(myCookiekey) (field)=value</p><p

55、><b>  end if </b></p><p><b>  end sub</b></p><p>  Sub ProcessAccessOpen(connection)</p><p>  dim strconn</p><p>  strconn = "provider

56、=microsoft.jet.oledb.4.0;persist security info=false;data source=" & Server.MapPath( mydblocation & myDatabase & ".mdb")</p><p>  Set connection = Server.CreateObject("ADODB.

57、Connection")</p><p>  on error resume next</p><p>  connection.open strConn</p><p>  If connection.errors.count> 0 then</p><p>  SetSess "Openerror",

58、"Open Messages<br>" & connection.errors(0).description & " <br>" & GetSess("dbc")</p><p><b>  else</b></p><p>  SetSess "Op

59、enerror",""</p><p><b>  end if</b></p><p><b>  End Sub</b></p><p>  ' main database open for shop</p><p>  Sub ShopOpenDataBa

60、se (connection)</p><p>  ProcessAccessOpen connection</p><p><b>  end sub</b></p><p>  ' close database </p><p>  Sub CloseRecordSet (irs)</p>&l

61、t;p><b>  irs.close</b></p><p>  set irs=nothing</p><p><b>  end sub</b></p><p>  '***************</p><p>  Sub ShopCloseDatabase (connect

62、ion)</p><p>  on error resume next</p><p>  connection.close</p><p>  set connection=nothing</p><p><b>  End sub</b></p><p>  'disable prop

63、erty 對應(yīng)的產(chǎn)品列表</p><p>  sub disableListFlower(property,value)</p><p><b>  dim ret</b></p><p>  dim myname</p><p>  if (property="0") then</p>

64、<p>  myname="List" &property & "F"</p><p><b>  else</b></p><p>  myname="List" &property & "F" &value</p>&l

65、t;p><b>  end if</b></p><p>  Application(myname)=""</p><p><b>  end sub</b></p><p>  'List property 對應(yīng)的產(chǎn)品列表</p><p>  function

66、 GetListFlower(property,value)</p><p><b>  dim ret</b></p><p>  dim myname</p><p>  if (property="0") then</p><p>  myname="List" &p

67、roperty & "F"</p><p><b>  else</b></p><p>  myname="List" &property & "F" &value</p><p><b>  end if</b></p&

68、gt;<p>  ret=Application(myname)</p><p>  if (ret="") then</p><p>  ret=GetListFlowerFromDB(property,value)</p><p>  Application(myname)=ret</p><p><

69、;b>  end if</b></p><p>  GetListFlower=ret</p><p>  end function</p><p>  'List property 對應(yīng)的產(chǎn)品列表 從數(shù)據(jù)庫</p><p>  function GetListFlowerFromDb(property,value

70、)</p><p>  Dim ret,dbc,query,rs,mycondition</p><p>  shopopendatabase dbc</p><p>  query = "select result from navigateresult "</p><p>  mycondition="wh

71、ere sort=0 and property="&property &" and value="&value</p><p>  query=query & mycondition</p><p>  set rs = dbc.execute(query)</p><p><b>  ret=

72、""</b></p><p>  if not rs.EOF then</p><p>  ret=CStr(rs("result"))</p><p><b>  end if</b></p><p>  closerecordset rs</p>&l

73、t;p>  shopclosedatabase dbc</p><p>  GetListFlowerFromDb=ret</p><p>  end function</p><p>  'dir 對應(yīng)的產(chǎn)品列表</p><p>  function GetDirProduct(dir)</p><p&g

74、t;<b>  dim ret</b></p><p>  if (dir =null or dir="") then</p><p><b>  dir=""</b></p><p><b>  end if</b></p><p> 

75、 dim dirname</p><p>  dirname="dir" & dir</p><p>  ret=Application(dirname)</p><p>  if (ret="") then</p><p>  ret=GetDirProductFromDB(dir)</

76、p><p>  Application(dirname)=ret</p><p><b>  end if</b></p><p>  GetDirProduct=ret</p><p>  end function</p><p>  'dir 對應(yīng)的產(chǎn)品列表,從數(shù)據(jù)庫讀出</p>

77、;<p>  function GetDirProductFromDB(dir)</p><p><b>  dim ret</b></p><p>  Dim dbc,query,rs</p><p>  shopopendatabase dbc</p><p>  if (dir=""

78、;) then '讀出所有產(chǎn)品</p><p>  query = "select autoid from product order by priority"</p><p><b>  else</b></p><p>  query = "select autoid from product w

79、here Left(category,"+Cstr(len(dir))+")='"&dir&"'"</p><p><b>  end if</b></p><p>  set rs = dbc.execute(query)</p><p><b> 

80、 ret=""</b></p><p>  Do WHILE not rs.EOF</p><p>  if (ret="") then</p><p>  ret=CStr(rs("autoid"))</p><p><b>  else</b>&

81、lt;/p><p>  ret=ret+","+CStr(rs("autoid"))</p><p><b>  end if</b></p><p>  rs.movenext </p><p><b>  Loop</b></p>&l

82、t;p>  closerecordset rs</p><p>  shopclosedatabase dbc</p><p>  GetDirProductFromDb=ret</p><p>  end function</p><p><b>  產(chǎn)品類定義</b></p><p>

83、  'Class Product</p><p>  'public name,autoid,saleprice,Desc,marketPrice,vipPrice,netImageSmall,netImageMid,netImageBig</p><p>  'End Class</p><p><b>  '得到對應(yīng)的產(chǎn)

84、品</b></p><p>  function GetProduct(ID)</p><p><b>  dim ret</b></p><p>  if (ID =null or ID="") then</p><p><b>  ID="1"</b

85、></p><p><b>  end if</b></p><p>  dim productname</p><p>  productname="P" & ID</p><p>  ret=Application(productname)</p><p> 

86、 if ( not IsArray(ret)) then</p><p>  ret=GetProductFromDB(ID)</p><p>  Application(productname)=ret</p><p><b>  end if</b></p><p>  GetProduct=Application(

87、productname)</p><p>  end function</p><p><b>  '得到對應(yīng)的產(chǎn)品</b></p><p>  sub disableProduct(ID)</p><p><b>  dim ret</b></p><p>  if

88、 (ID =null or ID="") then</p><p><b>  ID="1"</b></p><p><b>  end if</b></p><p>  dim productname</p><p>  productname="

89、P" & ID</p><p>  Application(productname)=""</p><p><b>  end sub</b></p><p>  '對應(yīng)的產(chǎn)品,從數(shù)據(jù)庫讀出</p><p>  dim FIELDAUTOID,FIELDNAME,FIELDS

90、ALEPRICE,FIELDDESC,FIELDMARKETPRICE</p><p>  dim FIELDVIPPRICE,FIELDNETIMAGESMALL,FIELDNETIMAGEMID,FIELDNETIMAGEBIG,FIELDCODE</p><p>  FIELDAUTOID=0</p><p>  FIELDNAME=1</p>

91、<p>  FIELDSALEPRICE=2</p><p>  FIELDDESC=3</p><p>  FIELDMARKETPRICE=4</p><p>  FIELDVIPPRICE=5</p><p>  FIELDNETIMAGESMALL=6</p><p>  FIELDNETIMAGEM

92、ID=7</p><p>  FIELDNETIMAGEBIG=8</p><p>  FIELDCODE=9</p><p>  function GetProductFromDB(ID)</p><p>  dim ret(10)</p><p>  Dim dbc,query,rs</p><

93、p>  shopopendatabase dbc</p><p>  query = "select * from product where autoid="&ID</p><p>  set rs = dbc.execute(query)</p><p>  if not rs.EOF then</p><

94、;p>  ret(FIELDAUTOID)=rs("autoid")</p><p>  ret(FIELDNAME)=rs("name")</p><p>  ret(FIELDSALEPRICE)=rs("saleprice")</p><p>  ret(FIELDDESC)=rs("

95、description")</p><p>  ret(FIELDMARKETPRICE)=rs("marketprice")</p><p>  ret(FIELDVIPPRICE)=rs("memberprice")</p><p>  ret(FIELDNETIMAGESMALL)=rs("myima

96、geurl")</p><p>  ret(FIELDNETIMAGEMID)=rs("myimageurl")</p><p>  ret(FIELDNETIMAGEBIG)=rs("myimageurl")</p><p>  ret(FIELDNETIMAGESMALL)=rs("netimageur

97、lsmall")</p><p>  'ret(FIELDNETIMAGEMID)=rs("netimageurlmid")</p><p>  'ret(FIELDNETIMAGEBIG)=rs("netimageurlbig")</p><p>  'ret(FIELDCODE)=rs(&

98、quot;code")</p><p><b>  else</b></p><p>  ret(FIELDAUTOID)=-1</p><p><b>  end if</b></p><p>  closerecordset rs</p><p>  shopc

99、losedatabase dbc</p><p>  GetProductFromDB=ret</p><p>  end function</p><p><b>  %> </b></p><p>  3.4.2頁面頭文件</p><p>  為了實(shí)現(xiàn)代碼復(fù)用,把頭文件設(shè)計成公用模塊,單

100、獨(dú)保存為一個文件,其他頁面應(yīng)用的時候只要包含這個頭文件就可以了。 頭文件中主要放置網(wǎng)站標(biāo)志和各個2級頻道,保存成HTML文件格式,放置到文件夾inc/下,文件名稱為top.html.這樣其他頁面只要應(yīng)用<!_ _#include file=”inc/top.html”_ _>,就可以使其他頁面具有風(fēng)格統(tǒng)一的“頭”。</p><p>  圖3-16 網(wǎng)站頭文件預(yù)覽果圖</p>&l

101、t;p>  3.4.3頁面尾文件</p><p>  和頁頭一樣,我們把版權(quán)聲明等信息保存在尾文件bottom.html中,本實(shí)例的尾部文件預(yù)覽果如圖3-17所示。</p><p><b>  用戶登錄判斷</b></p><p>  用戶登錄判定一般由兩個頁面組成,頁面login.asp提供表單讓用戶輸入用戶名和密碼,當(dāng)用戶單擊頁面中【

102、登錄】按鈕時,把用戶名、密碼提交到另一個頁面userlogindo.asp,由userlogindo.asp頁面作具體的登錄處理。</p><p>  Login.asp就是一個簡單的包含表單的HTML頁面,并引入公用頭尾文件,不過login.asp需要用到j(luò)avascipt驗(yàn)證表單,防止用戶輸入空信息。圖3-18為網(wǎng)站登錄頁面login.asp.的預(yù)覽效果。</p><p>  例程3-

103、3為login.asp頁面中表單驗(yàn)證的javascript代碼。</p><p>  例程3-3 javascript校驗(yàn)代碼</p><p>  <script language="javascript"></p><p>  function userloginsubmit()</p><p><b&

104、gt;  {</b></p><p>  var flag=false;</p><p>  if(document.loginForm.USERID.value==null|| document.loginForm.USERID.value=="")</p><p><b>  {</b></p>

105、<p>  alert("請輸入您的用戶名!");</p><p>  document.loginForm.USERID.focus();</p><p>  flag=true;</p><p><b>  }</b></p><p>  if(document.loginForm.P

106、ASS.value==null|| document.loginForm.PASS.value=="")</p><p><b>  {</b></p><p>  alert("請輸入密碼!");</p><p>  if (flag==false)</p><p>  docu

107、ment.loginForm.PASS.focus();</p><p>  flag=true;</p><p><b>  }</b></p><p>  if(flag==false)</p><p><b>  {</b></p><p>  document.log

108、inForm.submit();</p><p><b>  } </b></p><p>  return false; </p><p><b>  }</b></p><p>  function userloginkeydown()</p><p&g

109、t;<b>  {</b></p><p>  if (window.event.keyCode=="13")</p><p>  userloginsubmit();</p><p><b>  }</b></p><p>  function userloginuserid(

110、)</p><p><b>  {</b></p><p>  if (window.event.keyCode=="13")</p><p>  document.loginForm.PASS.focus();</p><p><b>  }</b></p>&l

111、t;p><b>  </script></b></p><p>  在例程3-3中函數(shù)userloginsubmit()主要在用戶單擊【登錄】按鈕的時候驗(yàn)證用戶輸入的用戶名、密碼是否為空。</p><p>  函數(shù)userloginkeydown(),主要完成當(dāng)用戶按回車鍵時,提交表單,也就時說當(dāng)用戶輸入用戶名、密碼后單擊【登錄】按鈕或者按回車鍵都會

112、提交表單。實(shí)現(xiàn)這個功能是為了用戶界面友好,方便最終用戶的使用。</p><p>  函數(shù)userloginuserid()主要完成當(dāng)用戶輸入完用戶名按回車時,焦點(diǎn)跳到輸入密碼的文本框中。</p><p>  Userlogindo.asp主要完成用戶登錄的判定,把用戶登錄信息更新數(shù)據(jù)庫和session等,例程3-4為頁面Uselogindo.asp登錄代碼。</p><

113、p>  例程 3-4 Userlogindo.asp 登錄代碼</p><p><b>  <%</b></p><p>  dim dbc, url</p><p>  dim forwardURL</p><p>  dim strpassword, returnurl</p><p&

114、gt;  strPassword=Request("strPassword")</p><p>  stremail=request("stremail")</p><p>  strpassword=replace(strpassword,"=","")</p><p>  strem

115、ail=replace(stremail,"=","")</p><p>  stremail=replace(stremail,"'","''")</p><p>  strpassword=replace(strpassword,"'","&qu

116、ot;)</p><p>  returnurl=request("returnurl")</p><p>  if strEmail="" then</p><p>  sError = sError & "請輸入Email<br>"</p><p><b

117、>  end if</b></p><p>  if strPassword="" then</p><p>  sError = sError & "請輸入口令<br>"</p><p><b>  end if</b></p><p>  

118、If sError="" then</p><p>  RetrieveLoginData</p><p><b>  else</b></p><p>  Serror= "請登錄" & "<br>" & Serror</p><p&g

119、t;<b>  end if</b></p><p>  setsess "Loginerror",Serror </p><p>  Setupreturnurl url</p><p>  Response.redirect url</p><p>  Sub RetrieveLogindat

120、a</p><p>  Dim fieldvalue</p><p>  If GetSess("Login")="" then</p><p>  SetSess "Login","Force"</p><p><b>  end if</b&g

121、t;</p><p>  LocateCustomer strLastName, stremail , strpassword</p><p>  If strCustomerID <>"" then</p><p>  LngLoginCount=lngLoginCount+1</p><p>  Updat

122、eCustomerSessionData</p><p>  UpdateLoginData</p><p>  SetSess "Login",strlastname </p><p>  SetSess "realname",strlastname </p><p><b>  Else&

123、lt;/b></p><p>  SError = SError & getlang("langLoginLocateFail") </p><p>  SetSess "Login", ""</p><p><b>  end if</b></p><

124、;p>  ShopCloseDatabase dbc</p><p>  set rs=nothing</p><p><b>  end sub</b></p><p>  Sub UpdateLoginData</p><p><b>  Dim dbc</b></p>&l

125、t;p>  'on error resume next</p><p>  OpenCustomerDB dbc</p><p>  'response.write "Login count" & lngLoginCount</p><p>  sql = "update customers set &qu

126、ot;</p><p>  sql = sql & "logincount=" & lnglogincount</p><p>  'sql = sql & ",lastlogindate='" & date() & "'"</p><p> 

127、 sql = sql & ",lastlogindate=" & datedelimit(date() )</p><p>  sql = sql & " where contactid=" & strcustomerid</p><p>  dbc.execute(sql)</p><p> 

128、 ShopCloseDatabase dbc</p><p><b>  end sub</b></p><p>  ' determine where to go to</p><p>  Sub SetupReturnurl (url)</p><p>  if returnurl<>"

129、;" then </p><p>  if Serror="" then</p><p>  url=returnurl</p><p><b>  exit sub</b></p><p><b>  else</b></p><p>  ur

130、l="UserLogin.asp"</p><p><b>  end if</b></p><p><b>  exit sub</b></p><p>  end if </p><p>  If Getsess("Followonurl")

131、="" and getsess("Currenturl")="" then</p><p>  If Serror="" then </p><p>  url=getconfig("xhome")</p><p><b>  else</b>&

132、lt;/p><p>  url="UserLogin.asp"</p><p><b>  end if</b></p><p>  exit sub </p><p><b>  end if </b></p><p>  If Serror=

133、"" then </p><p>  url=GetSess("FollowonURL")</p><p><b>  else</b></p><p>  url=getSess("CurrentURL")</p><p><b>  end if&

134、lt;/b></p><p><b>  end sub</b></p><p><b>  %></b></p><p>  3.5前臺界面設(shè)計與實(shí)現(xiàn)</p><p><b>  3.5.1首頁設(shè)計</b></p><p>  一般的電子商

溫馨提示

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

評論

0/150

提交評論