![基于php的購物網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)-論文_第1頁](http://file4.renrendoc.com/view8/M00/38/3F/wKhkGWcI5SqAbUwLAACNg9HR-VA566.jpg)
![基于php的購物網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)-論文_第2頁](http://file4.renrendoc.com/view8/M00/38/3F/wKhkGWcI5SqAbUwLAACNg9HR-VA5662.jpg)
![基于php的購物網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)-論文_第3頁](http://file4.renrendoc.com/view8/M00/38/3F/wKhkGWcI5SqAbUwLAACNg9HR-VA5663.jpg)
![基于php的購物網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)-論文_第4頁](http://file4.renrendoc.com/view8/M00/38/3F/wKhkGWcI5SqAbUwLAACNg9HR-VA5664.jpg)
![基于php的購物網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)-論文_第5頁](http://file4.renrendoc.com/view8/M00/38/3F/wKhkGWcI5SqAbUwLAACNg9HR-VA5665.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)(論文)題目基于php的購物網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)系名信息工程學(xué)院專業(yè)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)班級(jí)姓名學(xué)號(hào)指導(dǎo)老師系主任年月日
摘要隨著Internet的興起,網(wǎng)上購物已然成為當(dāng)今社會(huì)一種潮流。網(wǎng)上購物相比傳統(tǒng)購物的更加便捷的優(yōu)勢,加上如今配套物流的建設(shè),網(wǎng)上支付技術(shù)的完善。使得消費(fèi)者能夠做到足不出戶,即可享受到安全便捷的購物過程。因而越來越多的人開始在網(wǎng)上購物。也促使越來越多的商家在網(wǎng)絡(luò)中開商店。但跟網(wǎng)絡(luò)技術(shù)的飛速發(fā)展形成鮮明比對(duì)的是直接從事相關(guān)Businesspeople對(duì)互聯(lián)網(wǎng)相關(guān)技術(shù)的有限掌握程度,特別是一些中小規(guī)模的商家,他們會(huì)從中發(fā)現(xiàn)在互聯(lián)網(wǎng)上購物的人遠(yuǎn)遠(yuǎn)比在實(shí)體店中購物的人還要多。因此開發(fā)網(wǎng)上商城購物系統(tǒng)就應(yīng)運(yùn)而生。購物系統(tǒng),采用經(jīng)典的PHP+MySQL+Apache黃金組合開發(fā)。嚴(yán)格基于MVC開發(fā)思想,做到數(shù)據(jù)與頁面顯示層分離,從細(xì)節(jié)著手,在實(shí)現(xiàn)網(wǎng)上購物需要的功能之外,盡量從消費(fèi)者角度出發(fā),最終達(dá)到界面美觀友好。使用者操作便捷。商家也更加容易使用,實(shí)現(xiàn)系統(tǒng)的易用性。關(guān)鍵詞:網(wǎng)上購物;MVC開發(fā)模式;PHP開發(fā);網(wǎng)上支付
目錄第一章緒論 11.1開發(fā)背景 第一章緒論在這個(gè)信息時(shí)代,信息技術(shù)的不斷發(fā)展和Internet互聯(lián)網(wǎng)技術(shù)的日益普及,網(wǎng)絡(luò)已經(jīng)成為人們?nèi)粘W(xué)習(xí)生活中重要的一部分。瀏覽信息,享受服務(wù),享受高科技帶來的便利的同時(shí)人們越來越意識(shí)到網(wǎng)上購物給企業(yè)商家和個(gè)人生活所帶來的巨大影響。而作為網(wǎng)絡(luò)服務(wù)主流的網(wǎng)上購物更是具有開發(fā)潛力。他們都會(huì)將成為年輕人依賴的一個(gè)功能1.1開發(fā)背景網(wǎng)絡(luò)購物就是消費(fèi)者通過網(wǎng)絡(luò)實(shí)現(xiàn)購物的過程。其主要特點(diǎn)是商家與顧客互不見面,通過網(wǎng)絡(luò)使商品信息和錢款以電子的形式在網(wǎng)絡(luò)上進(jìn)行傳播交易。所以,網(wǎng)絡(luò)購物具有以下特點(diǎn):商品的信息更加深進(jìn)全面、減少了商品的銷售本錢、節(jié)約了消費(fèi)者的時(shí)間和體力、消除了消費(fèi)者與商家的面對(duì)面沖突、降低了商戶的經(jīng)營本錢等等,充分體現(xiàn)了網(wǎng)絡(luò)購物的方便快捷、低本錢的特點(diǎn)。如今隨著互聯(lián)網(wǎng)的普及,網(wǎng)絡(luò)購物的優(yōu)點(diǎn)變得更加突出,也就日益成為一種重要的購物形式,網(wǎng)絡(luò)購物也越來越成為一種趨勢。對(duì)于商家來說,由于網(wǎng)上銷售沒有庫存壓力,不受時(shí)間點(diǎn)的限制,不受惡劣天氣的影響,經(jīng)營成本低,經(jīng)營規(guī)模不受場地限制-沒有地域限制,在將來會(huì)有更多的企業(yè)選擇網(wǎng)上銷售,通過互聯(lián)網(wǎng)對(duì)市場信息的及時(shí)反饋來調(diào)整經(jīng)營的方式和物品來吸引更多的人來光顧,以此提高企業(yè)的經(jīng)濟(jì)效益和參與國際競爭的能力。而對(duì)于整個(gè)市場經(jīng)濟(jì)來說這種新型的購物模式也可在更大的范圍、更多的層面以更高的效率實(shí)現(xiàn)資源配置。網(wǎng)上購物突破了傳統(tǒng)商務(wù)的障礙,無論對(duì)消費(fèi)者、購物網(wǎng)站企業(yè)還是市場都有著巨大的吸引力和影響力,在新經(jīng)濟(jì)時(shí)期無疑是達(dá)到“多贏”效果的理想模式。對(duì)于有著要求越來越高的消費(fèi)者來說這無疑是一種簡單方便的購物方式,加上現(xiàn)在的網(wǎng)絡(luò)越來越發(fā)達(dá),商家還會(huì)在這些基礎(chǔ)上增加更多的東西來吸引顧客,達(dá)到真正的利益最大化。這就是真正意義上的市場推動(dòng)力。一項(xiàng)針對(duì)中國中小企業(yè)的情況調(diào)查顯示,啟動(dòng)實(shí)體的銷售公司的平均費(fèi)用至少5萬元,而投資開網(wǎng)建店成本非常小?;I辦一家網(wǎng)上的商店投入很小,因?yàn)椴挥萌マk營業(yè)執(zhí)照,不用去租門面,不用囤積貨品;而且網(wǎng)上商店比同等規(guī)模的地面商店“租金”要低得多,同時(shí)租金不會(huì)因?yàn)闋I業(yè)面積的增加而增加,商家也不用為延長營業(yè)時(shí)間而增加額外的費(fèi)用。并且基本不需要占?jí)嘿Y金。一般的傳統(tǒng)商店的進(jìn)貨資金少則幾千元,多則數(shù)萬元,而網(wǎng)上商店則基本不需要壓資金??梢宰龅?4小時(shí)營業(yè)時(shí)間。即做到了網(wǎng)上商店延長了商店的營業(yè)時(shí)間,可以做到一天24小時(shí)、一年365天不停地運(yùn)作,無須專人值班看守,都可照常營業(yè)。傳統(tǒng)店鋪的營業(yè)時(shí)間一般為早上8時(shí)到晚上11時(shí),遇上壞天氣、員工有急事或者其他一些意外情況也不得不暫停營業(yè)休息。銷售規(guī)模不受地域跟地盤限制。傳統(tǒng)商店店面的規(guī)模直接決定了能夠擺放多少商品,生意大小常常被小店面積限制。而如果是在網(wǎng)上商城的話,即便在地面上只有一個(gè)小商店或者甚至沒有門店也沒問題,開店的生意卻可以照樣做得很大。不受店面空間的限制。哪怕只是小店,在網(wǎng)上商城系統(tǒng)卻可以擁如同擁有百貨大樓那么大的店面,可以擺上千萬種商品。一般同時(shí)在線的商品只要超過10萬件就已超過一些大超市。不受地理位置影響。不管客戶商家有多遠(yuǎn),也不論顧客是在國內(nèi)還是國外,在網(wǎng)上購物商城里面,客戶一樣可以很方便地找到并購買商品。這令消費(fèi)群體突破了地域的限制,變得購物無限廣闊了。而與日益飛速發(fā)展的信息技術(shù)之形成鮮明對(duì)比的是,從事相關(guān)商務(wù)活動(dòng)的人群對(duì)相關(guān)技術(shù)有限的掌握程度。特別一些中小型企業(yè)更加如此。如今電子商務(wù)如火如荼的發(fā)展,但是大多數(shù)都是像淘寶,阿里巴巴等這種大型專門做電子商務(wù)的平臺(tái)。而很少有這種為中小型企業(yè)單獨(dú)開發(fā)的獨(dú)立的購物系統(tǒng)。而這些中小型公司沒有充分的資金跟精力去開發(fā)一個(gè)相關(guān)的網(wǎng)上購物平臺(tái)。因此開發(fā)一個(gè)實(shí)用中小型的網(wǎng)上購物系統(tǒng)是很重要的。特別是一些新興的創(chuàng)業(yè)型公司。所以開發(fā)一個(gè)在線網(wǎng)上購物系統(tǒng)平臺(tái)是有必要的,在結(jié)合線下跟線上兩條線,既可以提高自己的品牌知名度,又可以提高經(jīng)濟(jì)效益。能夠帶來直接的經(jīng)濟(jì)效益是所有企業(yè)所期望的。該系統(tǒng)在功能上基本實(shí)現(xiàn)一個(gè)網(wǎng)上商店的功能應(yīng)用。有自己實(shí)體店的商家,擁有一個(gè)屬于自己的網(wǎng)上購物商城也是現(xiàn)在時(shí)代的趨勢跟順應(yīng)潮流。擴(kuò)大自己的社會(huì)影響力跟知名度,在這個(gè)互聯(lián)網(wǎng)時(shí)代,信息的發(fā)布跟交流時(shí)很有必要并且十分重要。1.2國內(nèi)網(wǎng)上購物發(fā)展?fàn)顩r中國網(wǎng)購發(fā)展速度非???,2012年統(tǒng)計(jì)數(shù)據(jù)網(wǎng)購占社會(huì)商品零售總格的比重從0.34%升至4.32%。中國網(wǎng)購發(fā)展如此之快,西方很難想象。中國網(wǎng)購迅速發(fā)展的一個(gè)重要原因是商業(yè)業(yè)態(tài)沒有西方國家發(fā)達(dá),網(wǎng)購利用中國正在工業(yè)化、城鎮(zhèn)化的機(jī)會(huì)有了一個(gè)巨大的發(fā)展空間。網(wǎng)購正在改變著人們的生活、消費(fèi)的方式,這樣對(duì)物質(zhì)文化生活的提高,促進(jìn)整個(gè)國家用消費(fèi)來拉動(dòng)經(jīng)濟(jì)會(huì)起到很大的作用。在網(wǎng)絡(luò)購物的過程中,通過人與電子通訊方式的結(jié)合,極大地提高了網(wǎng)上購物的活動(dòng)的效率,減少了不必要的中間環(huán)節(jié)。同時(shí),網(wǎng)上購物過程產(chǎn)生的網(wǎng)上支付行為的發(fā)展也將轉(zhuǎn)變政府的行為。在網(wǎng)絡(luò)購物逐漸變的流行的時(shí)代里,當(dāng)企業(yè)應(yīng)用網(wǎng)絡(luò)購物商城進(jìn)行經(jīng)營,銀行實(shí)現(xiàn)金融電子化,以及消費(fèi)者實(shí)現(xiàn)網(wǎng)上消費(fèi)的同時(shí),也將對(duì)政府管理行為提出新的要求,國外在這方面有很好的法律法規(guī)加以約束,防止商業(yè)欺詐行為。但是國內(nèi)在這方面做的就沒有國外的好,沒有一定的規(guī)范加以約束,我們經(jīng)常可以看到一些消費(fèi)者在網(wǎng)上購買的東西和實(shí)際不一樣,發(fā)現(xiàn)上當(dāng)后我們也無能為力。在國內(nèi)有很多大型的電子商務(wù)公司,像淘寶B2C商務(wù)平臺(tái)、阿里巴巴就是專門提供B2B商務(wù)平臺(tái)、還有一些像京東主要以賣圖書為主、聚美優(yōu)品新起的以賣化妝品為主的電子商務(wù)公司?,F(xiàn)在國內(nèi)的網(wǎng)購的發(fā)展,越來越朝著細(xì)分市場發(fā)展。這也是未來電子商務(wù)發(fā)展的方向-細(xì)分市場。以及催生一系列網(wǎng)上支付中介公司。像易寶支付,支付寶等等。在一定程度上保證了網(wǎng)上購物的支付的安全性。所以在網(wǎng)絡(luò)購物這片領(lǐng)域發(fā)展的越來越成熟的環(huán)境中,網(wǎng)絡(luò)購物是具有巨大未來市場潛力的??偠灾?,網(wǎng)絡(luò)購物是一種不可阻擋的趨勢跟潮流這是現(xiàn)在人們統(tǒng)一的認(rèn)識(shí)。第二章相關(guān)介紹2.1PHP語言介紹PHP,是英文超文本預(yù)處理語言HypertextPreprocessor的縮寫。PHP
是一種
HTML
內(nèi)嵌式的語言,是一種可以跨平臺(tái)在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,但是比C語言功能強(qiáng)大.同時(shí)混合了java語言面向?qū)ο蟮娘L(fēng)格,C++的風(fēng)格,但是比java也更加簡潔。特別是語法風(fēng)格方面,比Java簡潔。PHP是現(xiàn)在大部分網(wǎng)站采用的語言。也是現(xiàn)階段最流行的語言。它可以比CGI或者Perl更快速地執(zhí)行動(dòng)態(tài)網(wǎng)頁。用PHP做出的動(dòng)態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。PHP是一種易于學(xué)習(xí)和使用的服務(wù)器端腳本語言。只需要很少的編程知識(shí)你就能使用PHP建立一個(gè)真正交互的WEB站點(diǎn)??傊?,PHP是一種可以跨平臺(tái)的服務(wù)器端嵌入式的腳本語言。支持幾乎所有流行數(shù)據(jù)庫,沒有操作系統(tǒng)的限制。語言風(fēng)格簡潔,功能強(qiáng)大,成本低廉,安全性高。是時(shí)下開發(fā)動(dòng)態(tài)網(wǎng)站最流行的語言。2.2MYSQL技術(shù)介紹MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將全部的數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。使用于中,小型網(wǎng)站.
由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。由于其免費(fèi)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。而下面我們要搭建的Web測試環(huán)境就是利用MySQL+PHP+Apache這組黃金搭檔。這里采用圖形化界面的MyphpAdmin來操作SQL數(shù)據(jù)庫。所以具有更加靈活跟便捷,直觀的優(yōu)勢。增加開發(fā)效率,跟傳統(tǒng)的命令控制臺(tái)相比-這明顯提高界面對(duì)開發(fā)者更加友好程度,使得維護(hù)數(shù)據(jù)庫更加容易直觀。2.3MVC開發(fā)模式和思想MVC英文即Model-View-Controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層——模型層、視圖層、控制層。視圖(View)代表用戶交互界面,對(duì)于Web應(yīng)用來說,可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個(gè)應(yīng)用可能有很多不同的視圖,MVC設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型(Model)處理。比如一個(gè)訂單的視圖只接受來自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型。模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對(duì)其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)可以說是MVC最主要的核心。目前流行的EJB模型就是一個(gè)典型的應(yīng)用例子,它從應(yīng)用技術(shù)實(shí)現(xiàn)的角度對(duì)模型做了進(jìn)一步的劃分,以便充分利用現(xiàn)有的組件,但它不能作為應(yīng)用設(shè)計(jì)模型的框架。它僅僅告訴你按這種模型設(shè)計(jì)就可以利用某些技術(shù)組件,從而減少了技術(shù)上的困難。對(duì)一個(gè)開發(fā)者來說,就可以專注于業(yè)務(wù)模型的設(shè)計(jì)。MVC設(shè)計(jì)模式告訴我們,把應(yīng)用的模型按一定的規(guī)則抽取出來,抽取的層次很重要,這也是判斷開發(fā)人員是否優(yōu)秀的設(shè)計(jì)依據(jù)。抽象與具體不能隔得太遠(yuǎn),也不能太近。MVC并沒有提供模型的設(shè)計(jì)方法,而只告訴你應(yīng)該組織管理這些模型,以便于模型的重構(gòu)和提高重用性。比如將一張訂單保存到數(shù)據(jù)庫,從數(shù)據(jù)庫獲取訂單。我們可以將這個(gè)模型單獨(dú)列出,所有有關(guān)數(shù)據(jù)庫的操作只限制在該模型中??刂?Controller)可以理解為從用戶接收請求,將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶點(diǎn)擊一個(gè)連接,控制層接受請求后,
并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個(gè)模型應(yīng)該會(huì)對(duì)應(yīng)多個(gè)視圖,一個(gè)視圖應(yīng)該會(huì)對(duì)應(yīng)多個(gè)模型。模型、視圖與控制器的分離,使得一個(gè)模型可以多個(gè)顯示視圖。如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)該會(huì)反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制。模型、視圖、控制器三者之間的關(guān)系和各自的主要功能。此次系統(tǒng)的開發(fā),都將嚴(yán)格基于MVC模式思想進(jìn)行開發(fā)。
第三章系統(tǒng)需要分析3.1系統(tǒng)可行性分析本系統(tǒng)擬采用PHP和MySQL分別作為開發(fā)語言和數(shù)據(jù)庫。使用免費(fèi)的Apache服務(wù)器作為web服務(wù)器,分別采用ZendStudio作為集成開發(fā)工具跟phpMyadmin作為數(shù)據(jù)庫的管理工具。首先,技術(shù)可行性。本系統(tǒng)僅需要一臺(tái)配置好php+mysql的apache服務(wù)器環(huán)境軟件的計(jì)算機(jī)即可,對(duì)機(jī)器本身沒有太高的要求,一般當(dāng)前個(gè)人電腦完全可滿足要求。對(duì)軟件技術(shù)要求,由于系統(tǒng)本身采用MVC三層模式開發(fā),所以前臺(tái)view層頁面,可以不用完全自己開發(fā),從網(wǎng)上參考有價(jià)值的template模板作為合適的view層即可。主要自己來開發(fā)后臺(tái)跟的Model層跟Controller業(yè)務(wù)邏輯層。本地計(jì)算機(jī)硬件環(huán)境以及軟件環(huán)境如下表3.1所示:表3-1本地環(huán)境配置列表本地計(jì)算機(jī)的配置詳細(xì)配置信息處理器酷睿雙核內(nèi)存2G硬件空間320GB開發(fā)環(huán)境Widows7系統(tǒng)數(shù)據(jù)庫MySQL編程語言PHP5.2服務(wù)器Apache2.2其次,經(jīng)濟(jì)可行性。由于本系統(tǒng)是完全采用免費(fèi)的黃金組合搭檔php+mysql+apache。都是免費(fèi)的,而且前臺(tái)框架是view是ECshop的模板。以便開發(fā)簡單且適合小型公司的網(wǎng)店,獨(dú)立區(qū)分于茫茫大潮中的淘寶店中。所帶來的效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟(jì)上完全可行。最后是社會(huì)可行性。電子商務(wù)網(wǎng)站是該企業(yè)運(yùn)用Internet技術(shù)創(chuàng)造更多更高的經(jīng)濟(jì)效益的主要因素之一。對(duì)于網(wǎng)上銷售尤為如此,所以本系統(tǒng)的效益是要可觀的。是可行的??梢宰龅綌U(kuò)大自身的影響力,如今具有自己獨(dú)立的網(wǎng)站網(wǎng)店是一種趨勢,也是一種商家本身實(shí)力的象征。能夠在搜索引擎中獲得自己的排名是一種非常有效的廣告手段。3.2功能需求分析根據(jù)分析,為了較好的實(shí)現(xiàn)網(wǎng)上購物網(wǎng)站,系統(tǒng)應(yīng)該實(shí)現(xiàn)如下基本功能如表3-2所示:
表3-2網(wǎng)站大概功能需求表功能模塊實(shí)現(xiàn)功能后臺(tái)管理方面(Back-stagemanagement)商品分類管理、添加與修改商品、管理訂單、商品留言管理等功能管理網(wǎng)站用戶(Managewebsiteusers)用戶管理、后臺(tái)管理員管理等功能用戶管理方面(Usermanagement)用戶注冊、驗(yàn)證碼登陸、資料修改等功能用戶訂購方面(Userorders)在線訂購、在線支付、購物車、查看訂單、信息反饋等功能商品展示方面(Commoditydisplay)二級(jí)分類展示、首頁精品推薦、新品發(fā)布、銷售排行網(wǎng)站購物信息方面(Shoppinginformation)匯款方式、送貨方式、定購方式等功能首頁功能方面(HomePageFunction)導(dǎo)航功能、友情鏈接等功能
第四章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1整體框架的布置和搭建系統(tǒng)采用了MVC開發(fā)模式的思想,對(duì)整個(gè)系統(tǒng)分成了3個(gè)大模塊:前臺(tái)的view層、數(shù)據(jù)庫Model層、業(yè)務(wù)邏輯層Controller層。又對(duì)各個(gè)模塊又進(jìn)行了一步的細(xì)分,如前臺(tái)view層模塊又分前臺(tái)跟后臺(tái)模塊;前臺(tái)主要包括會(huì)員注冊、商品選購、購物車、商品結(jié)算、商品訂購反饋、新品、熱銷。后臺(tái)主要包括會(huì)員管理,訂單管理,商品管理,商品欄目管理。Model層則采用嚴(yán)格封裝;使得系統(tǒng)具有易用性、個(gè)性化、跨平臺(tái)等特點(diǎn),代碼的復(fù)用性;使其運(yùn)行得高速、安全、穩(wěn)定。首先搭建基本的框架,框架首先必須具備的條件如下表4.1所示:表4-1框架基本要素表框架的基本要求/要素作用配置文件和配置文件讀取的功能靈活讀取更改數(shù)據(jù)庫信良好的數(shù)據(jù)庫處理底層基本數(shù)據(jù)的增刪改查良好的目錄結(jié)構(gòu)開發(fā)者便于開發(fā)正確的路徑結(jié)構(gòu)便于網(wǎng)站的移植具體配置文件和配置文件讀取的功能文件幾乎所有的文件都應(yīng)該要連接數(shù)據(jù)庫,所以一般將這個(gè)文件單獨(dú)寫到一個(gè)底層文件中,然后通過初始化文件,引入包含進(jìn)去?;九渲梦募onfig.php代碼如下:
網(wǎng)站的配置文件,將數(shù)據(jù)庫信息作為一個(gè)數(shù)組保存。包括基本的連接密碼、數(shù)據(jù)庫名、編碼格式(一般都是設(shè)置成utf8編碼)等。$_cfg['user']='root';$_cfg['pwd']='tangpanpan314';$_cfg['db']='shop';$_cfg['char']='utf8';
圖4-1網(wǎng)站數(shù)據(jù)庫配置信息良好的數(shù)據(jù)操作,應(yīng)該是有日志記錄。所以在配置文件信息里面加入判斷日志記錄是否開啟字段,以方便管理員管理。$_cfg['debug']=true;通過讀取網(wǎng)站配置文件conf.class.php來讀取和更改網(wǎng)站的配置信息。代碼如下:配置文件的讀取類用來讀取config.php,并能返回某個(gè)配置選項(xiàng)的值,在配置讀取類文件中,一般都是采取單例模式,減少不必要的重復(fù)多次反復(fù)生成連接對(duì)象開銷。讀取網(wǎng)站配置文件圖4-2所示:classconf{
privatestatic$ins=false;
private$info=array();
finalprotectedfunction__construct(){
require(ROOT.'includes/config.php');
$this->info=$_cfg;
}
finalprotectedfunction__clone(){
}獲得一個(gè)單例
publicstaticfunctiongetIns(){
if(self::$ins===false){
self::$ins=newself();
}
returnself::$ins;
}讀取獲得配置的網(wǎng)站信息
publicfunction__get($key){
if(array_key_exists($key,$this->info)){
return$this->info[$key];
}else{
returnnull;
}
}圖4-2讀取網(wǎng)站配置信息數(shù)據(jù)庫底層的基本都離不開的是增刪改查,所以把這些sql語句全部封裝到底層的sql類中。取得一行數(shù)據(jù),取得所有數(shù)據(jù),并且做一個(gè)簡單的日志記錄也是必要的。代碼如下:mysql.class.php文件數(shù)據(jù)庫處理類,靈活的數(shù)據(jù)庫底層封裝類,應(yīng)該首先具備的公共易用性、靈活性等功能。所以數(shù)據(jù)底層處理類,必須封裝數(shù)據(jù)庫連接、數(shù)據(jù)庫的選擇、數(shù)據(jù)庫語言執(zhí)行、獲取數(shù)據(jù)執(zhí)行后返回對(duì)象、最后還必須具有錯(cuò)誤提示功能。數(shù)據(jù)庫的連接功能圖如下:通過數(shù)據(jù)配置文件讀取相對(duì)應(yīng)的信息值,連接如果不成功,返回對(duì)應(yīng)不成功信息。連接數(shù)據(jù)庫圖4-3所示:protectedfunctionconnect(){
$this->conn=mysql_connect($this->conf->host,$this->conf->user,$this->conf->pwd);
if(!$this->conn){
$err=newException('連接失敗');
throw$err;
}
}圖4-3讀取網(wǎng)站配置信息選擇數(shù)據(jù)庫,這是底層封裝類必備的靈活性。通過拼接sql語句,來更改引用的數(shù)據(jù)庫。選擇數(shù)據(jù)庫圖4-4所示:protectedfunctionselect_db($dbname=''){
if($dbname==''){
$sql='use'.$this->conf->db;
$this->query($sql);
}
}圖4-4選擇連接數(shù)據(jù)庫指定字符編碼格式,在中英文切換的時(shí)候,很重要。但是在本次開發(fā)系統(tǒng)中,基本采用的utf8中文格式。設(shè)置數(shù)據(jù)庫字符編碼圖4-5所示:protectedfunctionsetChar(){
$sql='setnames'.$this->conf->char;
return$this->query($sql);
}圖4-5數(shù)據(jù)庫設(shè)置字符編碼Sql語言的執(zhí)行函數(shù),先判斷配置文件里面的日志記錄是否開啟,如果開啟則記錄對(duì)應(yīng)的sql語言操作。如果執(zhí)行sql語句出錯(cuò),則報(bào)錯(cuò),并且記錄錯(cuò)誤信息日志。記錄日志如圖4-6所示:publicfunctionquery($sql){
if($this->conf->debug){
$this->log($sql);
}
$rs=mysql_query($sql,$this->conn);
if(!$rs){
$this->log($this->error());
}
return$rs;
}
}圖4-6記錄日志將sql語句執(zhí)行結(jié)果封裝到底層函數(shù),因?yàn)橛袝r(shí)候需要獲取所有的關(guān)聯(lián)的結(jié)果,有時(shí)候就只需要一行結(jié)果就行。所以封裝獲取結(jié)果函數(shù)時(shí)候,分別封裝兩個(gè)函數(shù)。一個(gè)用來獲取所有執(zhí)行結(jié)果,一個(gè)用于獲取一行結(jié)果。通過數(shù)組的形式返回。獲取sql語句返回值圖4-7所示:publicfunctiongetAll($sql){
$rs=$this->query($sql);
$list=array();
while($row=mysql_fetch_assoc($rs)){
$list[]=$row;
}
return$list;
}
publicfunctiongetRow($sql){
$rs=$this->query($sql);
returnmysql_fetch_assoc($rs);}圖4-7獲取sql返回值封裝受影響的行數(shù)函數(shù),在有時(shí)候判斷sql語句是否執(zhí)行成功很重要的判斷依據(jù)。返回影響行數(shù)的函數(shù),如圖4-8所示:publicfunctionaffected_rows(){
returnmysql_affected_rows($this->conn);
}圖4-8返回受影響的行數(shù)日志記錄功能,其實(shí)是關(guān)于文件的操作。即用到php內(nèi)置函數(shù)。并通過底層封裝類,指定日志生成位置。為了防止日志不斷龐大,所以給日志文件設(shè)置一個(gè)上限1024*1024即1M大小。達(dá)到上限后,日志會(huì)自動(dòng)覆蓋前面的日志文件信息。通過file相關(guān)函數(shù)操作,步驟先打開文件fopen,獲取句柄fh,然后寫入文件信息fwrite。最后關(guān)閉句柄。這段是日志記錄圖4-9:
publicfunctionlog($sql){
$log=ROOT.'data/mysql.log';
if(!file_exists($log)){
$fh=fopen($log,'w');
}else{
if(filesize($log)>1024*1024){
$fh=fopen($log,'w');
}else{
$fh=fopen($log,'a');
}}
fwrite($fh,$sql."\r\n");
fclose($fh);
}}圖4-9日志記錄函數(shù)上面底層的封裝的sql類,集合了常用的連接數(shù)據(jù)庫功能,還包括基礎(chǔ)的數(shù)據(jù)庫的執(zhí)行操作。并且做一個(gè)日志記錄sql語句操作功能。良好的目錄結(jié)構(gòu)將底層文件分別新建model文件,里面保存model模型類。Includes文件夾,里面包含網(wǎng)站所需的運(yùn)行配置文件。再新建一個(gè)helper文件夾,里面保存一些可能會(huì)重復(fù)用到常用功能代碼文件。比如像圖片水印效果,分頁等功能。正確的路徑結(jié)構(gòu)因?yàn)榫W(wǎng)站發(fā)布可能在未知的環(huán)境下進(jìn)行,所以網(wǎng)站文件的引用最好采用相對(duì)路徑的引用。在初始化文件中對(duì)此首先定義好,對(duì)網(wǎng)站的根目錄定義成一個(gè)常量ROOT。網(wǎng)站的初始化文件,負(fù)責(zé)計(jì)算當(dāng)前網(wǎng)站的根目錄,負(fù)責(zé)引入所有頁面都需要的引入的公共文件。init.php文件如下圖4-10所示:define('ROOT',str_replace('\\','/',str_replace('includes\init.php','',__FILE__)));include(ROOT.'includes/conf.class.php');include(ROOT.'includes/mysql.class.php');include(ROOT.'includes/lib_base.php');function__autoload($class){//$class是
new
類名(),是類名
if((stripos($class,'model'))!==false){
include(ROOT.'model/'.$class.'.php');
}else{
include(ROOT.'helper/'.$class.'.php');
}session_start();圖4-10網(wǎng)站初始化文件代碼初始化session,在此系統(tǒng)中,session是要多次用到,所以將session也放置到初始化文件中。因?yàn)樵诰W(wǎng)站中,購物車跟用戶登錄都要用到session技術(shù)。所以在初始化文件也包含了session初始化代碼。并且根據(jù)不同的model來加載對(duì)應(yīng)的model類。從而實(shí)現(xiàn)代碼的復(fù)用度,跟代碼的簡潔度。先將Ecshop的view模板解壓到,apache服務(wù)器的hosts文件下。(其實(shí)這里在任何地方建project都可以,因?yàn)樵趘host里面配置虛擬主機(jī)的時(shí)候會(huì)標(biāo)識(shí)。最后都是通過虛擬主機(jī)來訪問網(wǎng)站。)通過基本的連接,將路徑都走通。然后再對(duì)系統(tǒng)的主界面進(jìn)行設(shè)計(jì)。模板中有用的模塊能夠用得上的,先設(shè)置好。再對(duì)自己將要開發(fā)的模塊進(jìn)行設(shè)計(jì)。采用”先死后活”的方法,先寫成靜態(tài)的Html頁面,然后再對(duì)各個(gè)部分要實(shí)現(xiàn)的功能進(jìn)行實(shí)現(xiàn)動(dòng)態(tài)化。4.2數(shù)據(jù)庫的設(shè)計(jì)在這個(gè)系統(tǒng)的過程中,需要會(huì)員登錄注冊,所以需要一張會(huì)員表。購物系統(tǒng),必不可少是購物消費(fèi)者跟商品打交道,商品表少不了。然后商品的欄目表,是作為關(guān)聯(lián)商品的獨(dú)立之外的表。然后購物必不可少的產(chǎn)生訂單表,跟訂單表關(guān)聯(lián)的是訂單商品信息表?;竞唵芜@六張表,就可以實(shí)現(xiàn)一個(gè)簡單購物商城系統(tǒng)所需的功能。4.2.1商品信息表goods商品信息如下表4-2:表4-2商品信息名稱數(shù)據(jù)庫字段作用商品主鍵goods_id商品唯一的標(biāo)記
id定位不同的商品商品貨號(hào)goods_sn商店通過不同的貨號(hào)來區(qū)分不同的商品欄目idcat_id商品都是屬于不同商品欄目商品名goods_name商品名是給顧客最直觀的名稱本店價(jià)格shop_price商品價(jià)格是商品屬性必備值市場價(jià)格market_price這是突出自己跟市場的差異體現(xiàn)自己的價(jià)格上的優(yōu)勢庫存量goods_number在交易的過程中
先得看看庫存里面是否還有貨商品重量goods_weight在選擇物流時(shí)候的收費(fèi)標(biāo)準(zhǔn)簡短描述goods_brief簡短描述商品描述goods_desctext包含商品所有屬性小圖片thumb_img首頁展示的小圖大圖片goods_img商家上傳的原始圖片作為以后的憑證原始圖片ori_img商家上傳的原始圖片作為以后的憑證是否上架is_on_sale缺貨或者下架時(shí)候的標(biāo)記位是否刪除is_delete在商品刪除的時(shí)候一般不作物理上的刪除
只做一個(gè)標(biāo)記位是否精品is_best在前臺(tái)展示確認(rèn)精品的標(biāo)記位是否新品is_new新品的標(biāo)記位是否熱賣is_hot熱賣標(biāo)記位
方便管理者設(shè)置熱賣商品發(fā)布時(shí)間add_time發(fā)布商品的時(shí)間上次修改last_update商家管理查看更新時(shí)間4.2.2商品欄目信息表categoryCat_id
欄目id
、Cat_name
欄目名稱、
Parent_id
欄目所屬父目錄
。在商品面包屑導(dǎo)航過程中,這個(gè)極為重要。通過遞歸調(diào)用,查找父節(jié)點(diǎn)。具體實(shí)現(xiàn)的Sql語句如下圖4-11所示:createtablecategory(cat_idsmallintunsignedprimarykeyauto_increment,cat_namevarchar(10)notnulldefault'',parent_idsmallintunsignednotnulldefault0)圖4-11商品欄目生成sql代碼4.2.3會(huì)員信息表user用戶id、用戶密碼passwd、用戶名username、用戶郵箱email。會(huì)員表,應(yīng)該以簡潔為主,過于冗雜的注冊項(xiàng)目,會(huì)直接降低用戶的好感度,導(dǎo)致潛在用戶的流失。所以簡單的以用戶名,密碼,注冊郵箱為主。4.2.4訂單信息表order_info訂單表跟訂單關(guān)聯(lián)表,先要了解訂單表形成的流程跟兩張表之間的關(guān)聯(lián)。其形成的基本要素表如下表4-3所示:表4-3訂單表基本要素圖Order_id姓名手機(jī)地址電話送貨時(shí)間配送方式支付方式3XxXxXxxXXxxXxX但是僅有以上信息還不夠,還必須記錄相關(guān)的商品信息。訂單商品關(guān)聯(lián)表如表4-4訂單表基本要素圖Order_idGoods_idRec_idSubtotal3435394.2.5訂單商品關(guān)聯(lián)表order_goods具體實(shí)現(xiàn)訂單商品管理sql如圖4-12所示:createtableorder_goods(rec_idintunsignedprimarykeyauto_increment,order_idintunsignednotnulldefault0,goods_idintunsignednotnulldefault0,goods_namevarchar(30)notnulldefault'',numsmallintunsignednotnulldefault1,pricedecimal(9,2)notnulldefault0.00,subtotaldecimal(9,2)notnulldefault0.00,)圖4-12訂單商品管理表sql語句4.3后臺(tái)模塊的設(shè)計(jì)后臺(tái)管理模塊的設(shè)計(jì),最重要的就是商品的增刪改查功能。其他會(huì)員管理,訂單管理,欄目表的管理。都是簡單的一個(gè)增刪改的語句就可以實(shí)現(xiàn)。而在商品管理中,必須涉及到圖片的上傳,圖片的縮放等功能。形成縮略圖,是商品上傳必須解決的問題。在后臺(tái)模塊中,涉及到列表問題時(shí)候,就離不開分頁功能小模塊。而且不論是前臺(tái),還是后臺(tái)。只要涉及到列表展示的時(shí)候,必須會(huì)涉及到分頁功能。因此分頁功能可以單獨(dú)做一個(gè)modle層模塊。4.3.1商品管理模塊商品管理,包括商品的增刪改查,但是商品管理中,有一個(gè)要注意的地方,就是圖片的上傳,還包括圖片的水印,統(tǒng)一大小的圖的前臺(tái)展示。所以圖片的上傳跟水印是這部分的難點(diǎn)。其中還包括商品序列號(hào)的不重復(fù)自動(dòng)生成功能。大致思路如下:1:接收POST數(shù)據(jù)判斷商品名為空,貨號(hào)是否為空,欄目是否選中2:把收到的POST的形成數(shù)組,
數(shù)組的鍵名與字段一一匹配3:調(diào)用model的相關(guān)方法,插入商品信息上傳商品圖片,new一個(gè)上傳類封裝對(duì)象。$upfile=newupfile(2,'jpeg,jpg,gif,png,bmp');$data['ori_img']=$upfile->up('ori_img');//
路徑或false生成縮略圖,因?yàn)樵谏唐氛故局?,為了統(tǒng)一美觀的效果,一般都是生成統(tǒng)一大小的縮略圖。在展示的時(shí)候,展示出來。if($data['ori_img']){
//
判斷是否上傳了圖片
$data['goods_img']=ltrim(str_replace(ROOT,'',image::thumb(ROOT.'/'.$data['ori_img'],230,230)),'/');上傳文件是一個(gè)普通常用的功能,因此將upfile單獨(dú)做一個(gè)封裝功能模塊。放在常用的工具類文件夾里面。以供系統(tǒng)所需調(diào)用。迭代來生成不重復(fù)的文件名,放置文件名沖突,所以才去隨機(jī)生成文件名。以時(shí)間日期為前綴,最大限度減少?zèng)_突的可能性。文件上傳是通過php內(nèi)置函數(shù),upload上傳到服務(wù)器,以臨時(shí)文件存在。要保存上傳文件,需要將臨時(shí)文件移動(dòng)到要保存的文件夾下面。移動(dòng)文件的函數(shù)move_uploaded_file實(shí)現(xiàn)。如果移動(dòng)失敗,則返回失敗信息提示。如圖4-13所示:
if(!move_uploaded_file($this->info['tmp_name'],$path)){
$this->error='移動(dòng)文件失敗';
returnfalse;
}else{
returnltrim(str_replace(ROOT,'',$path),'/');
}
}圖4-13文件上傳函數(shù)生成目錄文件夾,指定到對(duì)應(yīng)的文件夾下面。最后指定對(duì)應(yīng)的創(chuàng)建文件的權(quán)限。這個(gè)在windows系統(tǒng)下沒有什么作用,但是在linux下面,是十分重要的。如果沒有對(duì)應(yīng)的權(quán)限,是不能對(duì)文件夾進(jìn)行操作的。如圖4-14所示:protectedfunctionmk_dir(){
$path=ROOT.'/data/images/'.date('Ymd',time());
if(is_dir($path)){
return$path;
}
returnmkdir($path,'0777',true)?$path:false;
}圖4-14創(chuàng)建文件夾生成隨機(jī)文件名用rand函數(shù),隨機(jī)生成序列數(shù),以時(shí)間日期為前綴。可以在性能上最大減少?zèng)_突。隨機(jī)生成文件名函數(shù)如圖4-15所示:protectedfunctionrandName(){
returndate('md',time()).rand(100000,999999);
}圖4-15生成隨機(jī)文件名函數(shù)檢驗(yàn)文件大小,判斷文件的大小。是否符合上傳要求。具體實(shí)現(xiàn)如圖4-16所示:protectedfunctioncheckSize(){
if($this->maxSize<=0){
returntrue;
}
return$this->maxSize*1024*1024>=$this->info['size'];
}圖4-16檢驗(yàn)文件大小4.3.2會(huì)員管理模塊會(huì)員管理模塊,跟欄目模塊相類似。也都是增刪改查,基本的流程也都是相似。其中分頁功能,在網(wǎng)站中,很多地方都會(huì)要用到頁面分頁這個(gè)功能。因此將這功能頁面單獨(dú)寫作一個(gè)工具類,保存在helper文件夾中在做頁面分頁的過程中。主要是獲取所有數(shù)據(jù)庫信息的條數(shù)。然后分頁頁面要展示的數(shù)目,一次取多少條數(shù)據(jù)。然后可以通過總的數(shù)據(jù)庫數(shù)據(jù)條數(shù)除每一頁需要的顯示的條目向上取整??梢缘贸鋈〉庙摂?shù),然后根據(jù)頁數(shù)。通過id=N來計(jì)算當(dāng)前頁具體獲取數(shù)據(jù)庫里面的具體的那些數(shù)據(jù)。往前往后取多少條數(shù)據(jù),offset參數(shù)來做標(biāo)識(shí)。通過url來傳值,通過解析url的id等于多少,在確定在數(shù)據(jù)庫里面信息取多少。在界面里面,就是一個(gè)超鏈接地址,通過地址鍵入不同的url的值來獲取不同的頁數(shù)信息。4.3.3訂單管理模塊 訂單模塊也是跟前面,欄目管理模塊相類似。就是后臺(tái)管理員對(duì)產(chǎn)生的訂單情況進(jìn)行查看,修改等。所以關(guān)鍵代碼跟前面欄目管理相似,可以直接復(fù)用欄目管理的思,代碼做微小的改變即可實(shí)現(xiàn)。這是MVC模式開發(fā)的優(yōu)勢,對(duì)相似的功能的代碼可以實(shí)現(xiàn)復(fù)用。4.4
前臺(tái)模塊的設(shè)計(jì)其實(shí)前臺(tái)模塊的設(shè)計(jì)開發(fā)是由一些列的小模塊組成起來的。前臺(tái)模塊就是一個(gè)大的合集。像前臺(tái)頁面一些基本功能的實(shí)現(xiàn),其實(shí)由一個(gè)小小的功能模塊組成。而最主要的模塊,就是商品展示模塊。4.4.1會(huì)員注冊登陸模塊這個(gè)是任何交互性網(wǎng)站必備的功能,會(huì)員的注冊登錄。登陸時(shí)一個(gè)網(wǎng)站基本的功能。在設(shè)計(jì)注冊登陸模塊時(shí)候,一般都會(huì)使用到j(luò)s技術(shù),對(duì)用戶屬于的數(shù)據(jù)先進(jìn)行一個(gè)合法性的驗(yàn)證。如果驗(yàn)證通過則去調(diào)用后臺(tái)的數(shù)據(jù)庫連接,否則直接返回到原頁面。這樣可以減少因粗心或者惡意灌水的存在。最關(guān)鍵可以減少服務(wù)器的開銷,而且一般密碼的存放都是采用的加密,而不是直接采取明文存取。這里就采取簡單的md5加密,在usermodel中對(duì)寫入登陸、注冊、以及密碼加密的方法。這里密碼加密雖然采用的是md5加密,可以直接在錄入數(shù)據(jù)庫的時(shí)候?qū)?shù)據(jù)直接進(jìn)行md5加密,但是有時(shí)候如果采用其他的加密算法,這樣更改加密算法更加的便捷。即做到代碼可復(fù)用性更強(qiáng),關(guān)鍵實(shí)現(xiàn)圖如下:用戶登錄驗(yàn)證方法,從前端view頁面獲取的用戶名跟密碼,傳過來后調(diào)用封裝的驗(yàn)證函數(shù)進(jìn)行驗(yàn)證。其中密碼也要通過一次相同的加密方法才能進(jìn)行比對(duì)。為了保證的安全性,應(yīng)該對(duì)密碼進(jìn)行加密。加密實(shí)現(xiàn)如圖4-17所示:publicfunctioncheck($u,$p=''){
if($p){
$sql="selectuser_id,username,emailfromuserwhereusername='".$u."'andpwd='".$this->encPass($p)."'";
return$this->db->getRow($sql);
}else{
$sql="selectcount(*)fromuserwhereusername='".$u."'";
return$this->db->getOne($sql);
}
}圖4-17用戶登錄驗(yàn)證密碼進(jìn)行MD5加密的方法,這里采用的md5加密,可以其實(shí)可以直接用md5函數(shù),不用單獨(dú)寫一個(gè)方法。但是單獨(dú)寫一個(gè)方法,可以方便日后如果采用其他的加密方式,更改起來更靈活。減少一個(gè)日后不必要的麻煩跟開銷。圖如4-18所示:
protectedfunctionencPass($str){
returnmd5($str);
}
圖4-18密碼加密函數(shù)其中在view層的注冊登陸時(shí)候,直接寫了一個(gè)js簡單的register函數(shù)方法驗(yàn)證。防止空白用戶跟密碼等一些不合法的情況的輸入,比如在注冊時(shí)候,先檢驗(yàn)一下用戶是否兩次輸入的密碼相同。而登陸的時(shí)候也是同樣的道理驗(yàn)證。4.4.2會(huì)員注冊登陸模塊導(dǎo)航是一個(gè)網(wǎng)站必備的,而導(dǎo)航最常見跟經(jīng)典的就是面包屑導(dǎo)航.關(guān)于面包屑導(dǎo)航,就是關(guān)于子節(jié)點(diǎn)找父節(jié)點(diǎn)的方法,采取遞歸調(diào)用便可以實(shí)現(xiàn)。而這個(gè)是作為商品欄目分類中一部分存在。具體controller層實(shí)現(xiàn)如圖4-19所示://根據(jù)欄目cat_id尋找家譜樹
publicfunctionfamilyTree($arr,$cat_id){
static$list=array();
foreach($arras$v){
if($v['cat_id']==$cat_id){
$this->familyTree($arr,$v['parent_id']);
$list[]=$v;
}
}
return$list;
}圖4-19尋找家譜樹函數(shù)4.4.3商品展示模塊商品展示模塊,包括暢銷、推薦、新品這個(gè)三個(gè)模塊其實(shí)相當(dāng)于一個(gè)模塊,因?yàn)榛镜牡讓哟a都差不多。這個(gè)頁面也可以算作是一個(gè)商品展示頁面,在數(shù)據(jù)表的設(shè)計(jì)過程中,設(shè)置標(biāo)記位,通過標(biāo)記位來識(shí)別商品的屬性是否為暢銷,推薦或者新品。這個(gè)是功能模塊式屬于商品模塊中的一部分。(因?yàn)関iew模板中,是設(shè)置好的數(shù)目已達(dá)到頁面的美觀的效果,這個(gè)可以自由的更改取出的數(shù)據(jù)條數(shù)。)
商品展示頁面,將商品的詳細(xì)信息都給展示出來。即把從數(shù)據(jù)庫獲取出來的的商品詳細(xì)數(shù)據(jù)根據(jù)需要都給展示出來。在點(diǎn)擊商品圖片時(shí)候進(jìn)入商品詳
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人名下車輛抵押借款合同范文
- 2025年公共場所消防設(shè)計(jì)與施工協(xié)議
- 2025年企業(yè)租賃生產(chǎn)區(qū)域安全策劃管理協(xié)議
- 2025年玻璃冷加工設(shè)備項(xiàng)目提案報(bào)告模板
- 2025年個(gè)人信用借款合同保證書
- 2025年車載型X螢光測試儀(XRF)項(xiàng)目立項(xiàng)申請報(bào)告
- 2025年圖像存儲(chǔ)與通訊系統(tǒng)(PACS)項(xiàng)目立項(xiàng)申請報(bào)告模范
- 2025年分手協(xié)議標(biāo)準(zhǔn)化簡易版指南
- 2025年園林景觀石申請銷售合作協(xié)議
- 2025年伴侶保障協(xié)議
- 2025年湖南中醫(yī)藥高等??茖W(xué)校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年美發(fā)師(高級(jí)技師)職業(yè)鑒定考試題庫(含答案)
- 寧波2025年浙江寧波市鄞州區(qū)衛(wèi)健系統(tǒng)其他事業(yè)單位招聘事業(yè)編制46人筆試歷年參考題庫附帶答案詳解
- 【七上HK數(shù)學(xué)】安徽省蚌埠市固鎮(zhèn)縣2024-2025學(xué)年七年級(jí)上學(xué)期1月期末試卷數(shù)學(xué)試題
- 電子物料基礎(chǔ)知識(shí)
- 2025屆江蘇省南京市鹽城市高三一??荚囌Z文試題 課件
- 廣西出版?zhèn)髅郊瘓F(tuán)有限公司招聘筆試沖刺題2025
- 江蘇省南京市2024年中考英語試題(含解析)
- 外科圍手術(shù)期處理(外科學(xué)課件)
- 電力安全工作規(guī)程考試試題題庫
- 宮頸癌診療指南要點(diǎn)
評(píng)論
0/150
提交評(píng)論