

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p><b> 第一章 緒論3</b></p><p><b> 1.1背景3</b></p><p> 1.1.1劍川繡花鞋的生產(chǎn)經(jīng)營(yíng)狀況3</p><p> 1.1.2目前的銷(xiāo)售模式4</p>
2、;<p> 1.1.3 提出的策略4</p><p> 1.2 電子商務(wù)的現(xiàn)狀和好處5</p><p> 1.2.1 中國(guó)電子商務(wù)的現(xiàn)狀5</p><p> 1.2.2 電子商務(wù)的優(yōu)點(diǎn)5</p><p> 1.3 開(kāi)展劍川繡花鞋文化宣傳網(wǎng)的必要性5</p><p> 1.3.1 劍川
3、繡花鞋面臨的沖擊6</p><p> 1.3.2 開(kāi)展劍川繡花鞋電子商務(wù)網(wǎng)站的必要性6</p><p> 1.4 研究結(jié)果6</p><p> 第二章 劍川繡花鞋文化宣傳網(wǎng)的基本設(shè)計(jì)原則6</p><p> 2.1劍川繡花鞋文化宣傳網(wǎng)的設(shè)計(jì)目標(biāo)6</p><p> 2.2劍川繡花鞋文化宣傳網(wǎng)設(shè)計(jì)的基
4、本原則7</p><p> 2.3劍川繡花鞋文化宣傳網(wǎng)系統(tǒng)的開(kāi)發(fā)7</p><p> 第三章 劍川繡花鞋文化宣傳網(wǎng)開(kāi)發(fā)技術(shù)8</p><p> 3.1 網(wǎng)站開(kāi)發(fā)編程語(yǔ)言8</p><p> 3.1.1 php簡(jiǎn)介8</p><p> 3.1.2 php的特點(diǎn)8</p><p
5、> 3.1.1 腳本語(yǔ)言9</p><p> 第四章 劍川繡花鞋文化宣傳網(wǎng)的模塊架構(gòu)9</p><p> 4.1 B2C電子商務(wù)網(wǎng)站架構(gòu)的研究步驟10</p><p> 4.2 劍川繡花鞋文化宣傳網(wǎng)架構(gòu)模型11</p><p> 第五章 劍川繡花鞋文化宣傳網(wǎng)的具體功能11</p><p&g
6、t; 5.1 前臺(tái)設(shè)計(jì)11</p><p> 5.2 后臺(tái)設(shè)計(jì)12</p><p> 5.3 數(shù)據(jù)庫(kù)設(shè)計(jì)12</p><p> 第六章 “劍川繡花鞋文化宣傳網(wǎng)”的優(yōu)缺點(diǎn)13</p><p> 6.1“劍川繡花鞋文化宣傳網(wǎng)”的優(yōu)點(diǎn)13</p><p> 6.1.1、無(wú)限延伸13</p>
7、<p> 6.1.2、低成本14</p><p> 6.1.3、多功能14</p><p> 6.2 網(wǎng)站系統(tǒng)尚存在的一些缺陷和弱點(diǎn)14</p><p> 6.2.1.線上付款的安全性14</p><p><b> 第七章 總結(jié)14</b></p><p>
8、第八章 致謝15</p><p><b> 摘要</b></p><p> 大理州劍川縣繡花鞋在1999年以前年產(chǎn)量不超過(guò)6000雙,而到2005年,產(chǎn)量就達(dá)23.6萬(wàn)雙。然而由于當(dāng)?shù)貤l件的限制,劍川繡花鞋并未被廣大消費(fèi)者所認(rèn)知,只在旅游景點(diǎn)和為數(shù)不多的店鋪有銷(xiāo)售,網(wǎng)上銷(xiāo)售更是寥寥無(wú)幾。</p><p> 隨著信息技術(shù)的發(fā)展,信息的傳
9、遞已突破了時(shí)間和地域的局限,電子商務(wù)交易能夠在網(wǎng)上完成產(chǎn)供銷(xiāo)全部業(yè)務(wù)流程的電子商務(wù)虛擬市場(chǎng)。從封閉的銀行電子金融系統(tǒng)到開(kāi)放式的網(wǎng)絡(luò)電子銀行,電子商務(wù)以其獨(dú)特的運(yùn)作模式,大大提高了商業(yè)運(yùn)作的效率,并有效地降低了成本。電子商務(wù)以更為方便和快捷的方式,把企業(yè)的產(chǎn)品及服務(wù)等信息,通過(guò)信息網(wǎng)絡(luò)快速直觀的呈現(xiàn)在用戶(hù)面前,讓用戶(hù)接受并迅速的達(dá)成相關(guān)的意向。</p><p> 關(guān)鍵字:繡花鞋,電子商務(wù)</p>&
10、lt;p><b> Abstract </b></p><p> Dali embroidered shoes Jianchuan County prior to 1999 the annual output not exceed 6000 pairs by 2005, production reached 236,000 pairs. However, due to local
11、conditions, Jianchuan embroidered shoes have not been perceived by consumers, only one of the few tourist attractions and shops selling, online sales is very few. With the development of information technology, infor
12、mation transmission has been broken time and geographical constraints, e-commerce transactions can be completed online pr</p><p> Keywords: embroidered shoes, E-Commerce </p><p> 第一章、劍川繡花鞋文化宣
13、傳網(wǎng)介紹</p><p> 劍川繡花鞋文化宣傳網(wǎng)是一個(gè)結(jié)合信息服務(wù)型、廣告型和交易型的綜合型電子商務(wù)網(wǎng)站。其前臺(tái)功能包括:繡花鞋文化宣傳、公司形象宣傳、產(chǎn)品展示、廣告宣傳、商品訂購(gòu)、網(wǎng)上支付、網(wǎng)絡(luò)客戶(hù)服務(wù)和會(huì)員實(shí)時(shí)互動(dòng),其后臺(tái)功能包括:產(chǎn)品管理、會(huì)員管理、新聞管理、論壇管理、廣告管理和系統(tǒng)設(shè)置。</p><p> 劍川繡花鞋文化宣傳網(wǎng)采用B2C的模式,網(wǎng)站的設(shè)計(jì)和開(kāi)發(fā)需要圍繞以下原則:
14、</p><p> ?。?)、充分展示產(chǎn)品信息、文化信息、廣告信息和企業(yè)信息;</p><p> ?。?)、方便客戶(hù)查找商品、在線訂購(gòu)和網(wǎng)上支付;</p><p> ?。?)、方便企業(yè)與客戶(hù)以及客戶(hù)與客戶(hù)的交流和互動(dòng);</p><p> ?。?)、方便管理和更新信息;</p><p> ?。?)、確保網(wǎng)站安全;<
15、/p><p> ?。?)、優(yōu)化網(wǎng)站訪問(wèn)速度;</p><p> 二、我的開(kāi)發(fā)任務(wù)介紹</p><p> 圖1:通過(guò)php代碼把網(wǎng)頁(yè)與數(shù)據(jù)庫(kù)關(guān)聯(lián)起來(lái)</p><p> 結(jié)合小組的實(shí)際情況,為了充分利用好和發(fā)揮好小組的人力資源,經(jīng)過(guò)開(kāi)發(fā)小組的討論和協(xié)商,我們把整個(gè)項(xiàng)目的開(kāi)發(fā)任務(wù)分為:數(shù)據(jù)庫(kù)開(kāi)發(fā)、靜態(tài)網(wǎng)頁(yè)開(kāi)發(fā)和動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)。</p>
16、<p> 在開(kāi)發(fā)過(guò)程中,我負(fù)責(zé)整個(gè)項(xiàng)目的動(dòng)態(tài)網(wǎng)頁(yè)編寫(xiě)(圖1黃色虛線框),通過(guò)設(shè)計(jì)和編寫(xiě)php代碼將其嵌入到靜態(tài)網(wǎng)頁(yè)中,控制網(wǎng)頁(yè)顯示信息和接收信息,操縱數(shù)據(jù)庫(kù)查詢(xún)和更新信息,使網(wǎng)頁(yè)與數(shù)據(jù)庫(kù)緊密地關(guān)聯(lián)起來(lái),形成功能完善的動(dòng)態(tài)信息管理系統(tǒng)。</p><p> 從圖1中可以看出我的開(kāi)發(fā)任務(wù)緊扣了其他成員的開(kāi)發(fā)任務(wù),因此我所編寫(xiě)的代碼:必須確保與靜態(tài)網(wǎng)頁(yè)功能的一致性;必須確保與數(shù)據(jù)庫(kù)結(jié)構(gòu)的一致性;必須確保整
17、個(gè)項(xiàng)目的系統(tǒng)性。</p><p><b> 三、語(yǔ)言工具的選擇</b></p><p> 為了實(shí)現(xiàn)功能的友好銜接,我必須保持與其他成員的溝通和交流,同時(shí)需要讀懂和理解他們的工作成果,因此我需要掌握的語(yǔ)言包括:PHP、HTML、JavaScript、CSS和MySQL。</p><p> 3.1PHP+Apache+MySQL</p&
18、gt;<p> 通過(guò)PHP代碼可以搭建起信息的傳輸橋梁,開(kāi)辟出從靜態(tài)網(wǎng)頁(yè)到數(shù)據(jù)庫(kù)的高速數(shù)據(jù)通道,選擇其作為開(kāi)發(fā)語(yǔ)言的理由主要為:</p><p> ?。?)、運(yùn)用PHP開(kāi)發(fā)項(xiàng)目,程序開(kāi)發(fā)快,運(yùn)行快,和其它技術(shù)相比,PHP本身免費(fèi),所有的PHP源代碼事實(shí)上都可以得到,技術(shù)本身學(xué)習(xí)快。</p><p> ?。?)、PHP可以嵌入HTML語(yǔ)言,它相對(duì)于其他語(yǔ)言,編輯簡(jiǎn)單,實(shí)用性強(qiáng)
19、;用PHP做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;</p><p> ?。?)、PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。</p><p> (4)、PHP具有非常強(qiáng)大的功能,所有的CGI的功能PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。</p>
20、;<p> (5)、PHP+Apache+MySQL是一個(gè)完全免費(fèi)的、性能優(yōu)異的Web服務(wù)器應(yīng)用開(kāi)發(fā)組合,已經(jīng)成為絕大多數(shù)中小型網(wǎng)站的應(yīng)用解決方案。</p><p> 3.2、DIV+CSS(層疊樣式表)</p><p> DIV控制了網(wǎng)頁(yè)的模塊和數(shù)量,CSS讓各個(gè)DIV穿上漂亮的衣裳,讓網(wǎng)頁(yè)看上去得體和漂亮,同時(shí)得到各種瀏覽器的接受和認(rèn)可。另外,div+css 作為網(wǎng)
21、頁(yè)的一種布局方法,它有別于傳統(tǒng)的HTML網(wǎng)頁(yè)設(shè)計(jì)語(yǔ)言中的表格(table)定位方式,真正地達(dá)到了w3c內(nèi)容與表現(xiàn)相分離。其具備的優(yōu)勢(shì)主要包括:頁(yè)面載入更快、降低流量費(fèi)用、修改設(shè)計(jì)時(shí)更有效率和更好地被搜索引擎收錄。</p><p> 3.3、JavaScript</p><p> JS代碼插入到HTML中,讓本來(lái)靜止不動(dòng)的網(wǎng)頁(yè)開(kāi)始翩翩起舞,主動(dòng)地展示出數(shù)據(jù)信息,同時(shí)使得網(wǎng)頁(yè)和用戶(hù)之間建立
22、起了一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,這樣的網(wǎng)頁(yè)便包含了更多活躍的元素和更加精彩的內(nèi)容。</p><p> 四、功能分析和技術(shù)代碼劃分</p><p> 劍川繡花鞋文化宣傳網(wǎng)的功能復(fù)雜,開(kāi)發(fā)人員必須結(jié)合各種開(kāi)發(fā)方法,整體上把握全局的同時(shí)逐一擊破。如果不考利項(xiàng)目的整體功能效果,將導(dǎo)致網(wǎng)站失去功能的連貫性;如果不細(xì)心分析,將導(dǎo)致網(wǎng)站功能的遺漏和不足;如果不對(duì)功能進(jìn)行歸類(lèi),將導(dǎo)致工期源長(zhǎng)且
23、不便于管理。</p><p> 避開(kāi)網(wǎng)站各個(gè)功能的連貫性,從技術(shù)角度出發(fā),以信息和數(shù)據(jù)作為管理對(duì)象,網(wǎng)站的代碼僅需要實(shí)現(xiàn):信息的查詢(xún)功能、信息的添加功能、信息的修改功能、信息的刪除功能、信息的分頁(yè)顯示功能、文件的上傳和下載功能、郵件的發(fā)生功能和在線支付功能等等。只要掌握了以上技術(shù),將其寫(xiě)成能功能完善的操作類(lèi),并且可以靈活調(diào)用,那么系統(tǒng)的開(kāi)發(fā)便變成了功能組織的過(guò)程,哪里需要功能,需要什么樣的功能,相應(yīng)的操作類(lèi)就出
24、現(xiàn)在哪里,通過(guò)靈活地調(diào)用和組織,開(kāi)發(fā)人員可以更為輕松地實(shí)現(xiàn)并聯(lián)系起各個(gè)功能。</p><p> 五、淺談表單提交方式</p><p> 5.1、get方式與post方式的特點(diǎn)比較</p><p> ?。?)、get方式是從服務(wù)器上獲取數(shù)據(jù),post方式是向服務(wù)器傳送數(shù)據(jù);</p><p> (2)、get方式提交數(shù)據(jù)時(shí),用戶(hù)可以在瀏覽器
25、上直接看到提交的數(shù)據(jù),一些系統(tǒng)內(nèi)部消息將會(huì)一同顯示在用戶(hù)面前,而post的所有操作對(duì)用戶(hù)來(lái)說(shuō)都是不可見(jiàn)的;</p><p> ?。?)、get方式傳送的數(shù)據(jù)量較小,不能大于2KB。Post方式傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB;</p><p> ?。?)、get方式的安全性非常低,post方式的安全性較高。但是執(zhí)行效率卻比
26、Post方式好。</p><p> ?。?)、get方式的接受值方法如:$no=$_GET["no"];post方式的接受值方法如:$name=$_POST["name"];</p><p> 5.2、靈活地選擇提交方式</p><p> ?。?)、 get方式的安全性較post方式要差些,包含機(jī)密信息的時(shí)候,我選擇post
27、數(shù)據(jù)提交方式;</p><p> (2)、 post方式容量大,安全性高,我便用于數(shù)據(jù)的添加、修改或刪除,get方式的提交提交速度快,我就用于數(shù)據(jù)的查詢(xún);</p><p> ?。?)、 get方式提交數(shù)據(jù)時(shí)候,如果處理技術(shù)不到家,我建議最好不要提交中文的數(shù)據(jù),避免出現(xiàn)亂碼等錯(cuò)誤,當(dāng)然數(shù)字和字母是不會(huì)出現(xiàn)問(wèn)題的; </p><p> 六、MD5(消息摘要算法)加密
28、密碼</p><p> 任何人都有自己獨(dú)一無(wú)二的指紋,這常常成為公安機(jī)關(guān)鑒別罪犯身份最值得信賴(lài)的方法;與之類(lèi)似,通過(guò)MD5不可逆的字符串變換算法,MD5可以為任何文件(不管其大小、格式、數(shù)量)產(chǎn)生一個(gè)等長(zhǎng)度(32位)的獨(dú)一無(wú)二的“數(shù)字指紋”,如果任何人對(duì)文件做了任何改動(dòng),其MD5值也就是對(duì)應(yīng)的“數(shù)字指紋”都會(huì)發(fā)生變化。</p><p> 在php開(kāi)發(fā)過(guò)程中,我使用了MD5對(duì)密碼進(jìn)行加密
29、,php自帶的md5()函數(shù),使我輕松解決了密碼加密問(wèn)題,使用方法如下:</p><p><b> <?php</b></p><p> $str=”password”;</p><p> $password=md5($str);</p><p><b> ?></b></
30、p><p><b> 七、sql注入說(shuō)明</b></p><p> Web安全紛繁復(fù)雜,危害最嚴(yán)重的當(dāng)屬SQL注入。SQL Injection,中文名稱(chēng)為“SQL 注射”,是一種數(shù)據(jù)庫(kù)攻擊手段,也是WEB應(yīng)用程序漏洞存在的一種表現(xiàn)形式,它的實(shí)際意義就是利用某些數(shù)據(jù)庫(kù)的外部接口把用戶(hù)數(shù)據(jù)插入到實(shí)際的數(shù)據(jù)庫(kù)操作語(yǔ)言當(dāng)中,從而達(dá)到入侵?jǐn)?shù)據(jù)庫(kù)乃至操作系統(tǒng)的目的。</p&
31、gt;<p><b> 八、雙重防護(hù)策略</b></p><p> 8.1、雙重防護(hù)策略介紹</p><p> 圖2:雙重過(guò)濾表單提交信息</p><p> 如果把表單關(guān)聯(lián)的JS文件和PHP文件作為表單的的左膀右臂(如圖2),充分發(fā)揮其職責(zé),牢牢地守死信息輸入的關(guān)卡,那么畸形數(shù)據(jù)將永遠(yuǎn)地拒之門(mén)外。策略一:信息格式匹配;策略
32、二:全方位防止sql注入。</p><p> 8.2、信息格式匹配</p><p> JS的引入,能夠滿(mǎn)足我需要的任何網(wǎng)頁(yè)交互效果,同時(shí)我通過(guò)JS可以實(shí)現(xiàn)信息的第一次過(guò)濾,其策略為:通過(guò)對(duì)輸入信息格式的判斷,以此檢測(cè)出輸入信息是否合法,如果格式不是指定的格式,那么表單將拒絕提交。方法如下:</p><p> 方法一,擅用正則表達(dá)式:</p>&l
33、t;p> // JavaScript checkfile</p><p> function validate()</p><p><b> {</b></p><p> var msg1='<div style="color:#f00;">*';</p><p&
34、gt; var msg2='*</div>';</p><p> if(!Istrue(document.formu.em.value,1))</p><p><b> { </b></p><p> document.getElementById("error1").innerHTML
35、=msg1+"請(qǐng)輸入正確的郵箱!"+msg2;//動(dòng)態(tài)插入html錯(cuò)誤提示信息</p><p> document.formu.em.focus(); //焦點(diǎn)移到錯(cuò)誤位置</p><p> return false; //返回false則拒絕提交</p><p><b> } </b></p><
36、p> else if(document.formu.sf.value!==""&&!Istrue(document.formu.sf.value,3))</p><p><b> { </b></p><p> document.getElementById("error1").innerHTML =
37、"";</p><p> document.getElementById("error2").innerHTML =msg1+"請(qǐng)輸入正確的身份證號(hào)!"+msg2;</p><p> document.formu.sf.focus(); </p><p> return false; </p&g
38、t;<p><b> }</b></p><p><b> else </b></p><p> return true;//所有檢測(cè)通過(guò)才提交表單</p><p><b> }</b></p><p><b> //正則表達(dá)式</b&g
39、t;</p><p> function Istrue(str,n)</p><p><b> {</b></p><p><b> var reyx;</b></p><p><b> switch(n)</b></p><p><b&g
40、t; {</b></p><p><b> case 1:</b></p><p> reyx=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;</p><p> break;//郵箱</p><p><b&g
41、t; case 2:</b></p><p> reyx=/^(1[3,5,8,7]{1}[\d]{9})|(((400)-(\d{3})-(\d{4}))|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{3,7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1
42、}))$)$/;</p><p> break;//手機(jī)號(hào)</p><p> case 3: reyx=/^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/;break;</p><p><b> //case:;</b></p><p> /
43、/break;無(wú)限擴(kuò)展</p><p><b> default:</b></p><p> alert("未知輸入錯(cuò)誤!");</p><p> return false;</p><p><b> }</b></p><p> return(
44、reyx.test(str));</p><p><b> }</b></p><p> 方法二,屏蔽鍵盤(pán)畸形輸入:</p><p> <input name="nm" type="text" maxlength="4" onKeyUp="value=value.
45、replace(/[ -~]/g,'')" class="ipt2"/><!--只能輸入中文--></p><p> <input name="" value="" onkeyup="this.value=this.value.replace(/\D/g,''
46、)" class="ipt2" type="text" maxlength="3" /><!—只能輸入整數(shù)--></p><p> 8.3、全方位防止sql注入</p><p> JS再厲害,也不過(guò)是唱獨(dú)角戲罷了,php才是信息的操縱者,它可以穿梭于服務(wù)器與客戶(hù)端之間,php傳遞的信息包裹在sql語(yǔ)
47、句里,因此sql語(yǔ)句才是數(shù)據(jù)庫(kù)的入場(chǎng)券,同時(shí)sql語(yǔ)句圣旨般的權(quán)利可以命令數(shù)據(jù)庫(kù)做任何數(shù)據(jù)操作。同時(shí)這也就說(shuō)明,一旦偽造“圣旨”成功,則“君讓臣死,臣不得不死”也不是不可能的事情。因此養(yǎng)成良好的sql語(yǔ)句的編寫(xiě)習(xí)慣,細(xì)心編寫(xiě)代碼,是我們這些菜鳥(niǎo)的一門(mén)必修課。當(dāng)然,道高一尺魔高一丈,只有更安全的策略,沒(méi)有決對(duì)安全的措施。對(duì)信息進(jìn)行過(guò)濾的另一個(gè)策略為:全方位防止sql注入。下面我簡(jiǎn)單列舉此次代碼開(kāi)發(fā)過(guò)程中關(guān)注的幾個(gè)問(wèn)題:</p>
48、<p> 問(wèn)題一,選取安全的傳遞方式:</p><p> 從安全方式的選取出發(fā),涉及安全數(shù)據(jù)時(shí):不選用get傳輸數(shù)據(jù),因?yàn)閺牡刂窓谝部梢宰⑷雜ql攻擊,用post替代;不使用a標(biāo)簽: <a href="user.php?uid=1">會(huì)員信息</a>,用:<input type="button" onclick="
49、self.location=' user.php?uid=1’>" value="會(huì)員信息" />替換。</p><p> 問(wèn)題二,遵循數(shù)據(jù)庫(kù)規(guī)范:</p><p> 從遵循規(guī)范性出發(fā),sql語(yǔ)句要盡量嚴(yán)密且符合數(shù)據(jù)庫(kù)的要求,比如在下面的例子中,兩句sql語(yǔ)句的作用是一樣的,語(yǔ)句的區(qū)別只是有無(wú)一對(duì)單引號(hào),但是沒(méi)有單引號(hào)就給了攻擊者更多發(fā)
50、揮的空間,有單引號(hào)不僅符合數(shù)據(jù)庫(kù)的規(guī)范,同時(shí)也讓攻擊者不方便拼接sql語(yǔ)句。</p><p><b> <?php</b></p><p> echo"<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";&
51、lt;/p><p><b> $uid=1;</b></p><p> $sql="select * from yuser where uid=$uid";//不嚴(yán)密的編寫(xiě)</p><p> //$sql="select * from yuser where uid=’$uid’";嚴(yán)密的編寫(xiě)</
52、p><p> require_once("DB.php"); </p><p> $result=array();</p><p> $result = returnarray($sql);</p><p> echo $sql;</p><p> echo $result[0][1];<
53、;/p><p><b> ?></b></p><p> 問(wèn)題三,使用信息包裝器:</p><p> 比如,將 PHP 的內(nèi)置 mysql_real_escape_string() 函數(shù)用作任何用戶(hù)輸入的包裝器。這個(gè)函數(shù)對(duì)字符串中的字符進(jìn)行轉(zhuǎn)義,使字符串不可能傳遞撇號(hào)等特殊字符的同時(shí)讓 MySQL 根據(jù)特殊字符進(jìn)行操作,就可以避免用戶(hù)輸
54、入中的惡意 SQL 注入??聪旅娴睦樱?lt;/p><p> //對(duì)于下面的sql語(yǔ)句</p><p><b> <?php</b></p><p> $okay = 0;</p><p> $nm = $_POST['user'];</p><p> $pw = $
55、_POST['pw'];</p><p> $sql = "select count(*) as ctr from users where </p><p> username='".$nm."' and password='". $pw."' limit 1";</p&g
56、t;<p><b> ?></b></p><p> //例如,如果用戶(hù)輸入 yw 作為用戶(hù)名,輸入 ' or '1'='1 作為密碼,那么實(shí)際上會(huì)將以下字符串傳遞給 PHP,然后將查詢(xún)傳遞給 MySQL:$sql = "select count(*) as ctr from users where username=&
57、#39;yw' and password='' or '1'='1' limit 1";</p><p> //對(duì)于下面的sql語(yǔ)句</p><p><b> <?php</b></p><p> $okay = 0;</p><p> $n
58、m = $_POST['user'];</p><p> $pw = $_POST['pw'];</p><p> $sql = "select count(*) as ctr from users where </p><p> username='".mysql_real_escape_strin
59、g($nm)."' </p><p> and password='". mysql_real_escape_string($pw)."' limit 1";</p><p><b> ?></b></p><p> //例如,如果用戶(hù)輸入 yw 作為用戶(hù)名,輸入
60、39; or '1'='1 作為密碼,那么實(shí)際上會(huì)將以下字符串傳遞給 PHP,然后將查詢(xún)傳遞給 MySQL:select count(*) as ctr from users where username='yw' and password='\' or \'1\'=\'1' limit 1"</p><p><
61、;b> 九、JS代碼篇</b></p><p> 9.1、隨機(jī)新聞變換</p><p> 圖3.隨機(jī)新聞變換效果</p><p> 圖3是我用純JS編寫(xiě)一個(gè)隨機(jī)新聞變換效果,沒(méi)有用到Jquery,技術(shù)簡(jiǎn)單,同時(shí)支持?jǐn)?shù)據(jù)庫(kù)數(shù)據(jù)的綁定和新聞數(shù)量擴(kuò)展,我將代碼抽取出來(lái),做成運(yùn)用實(shí)例test.html,代碼如下:</p><p&
62、gt; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></p><p> <html xmlns="http://www.w3.org/1999/x
63、html"></p><p> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></p><p> <title>首 頁(yè)(j-box)</title></p><
64、p> <style type="text/css"></p><p> *{ font-size:12px; color:#999; }</p><p> body{ text-align:center; padding:0px; margin:0 auto;}</p><p> #all {width: 600px;}
65、</p><p> #newsimg,#newsimgto{ width:300px; height:200px; float:left;}</p><p> #newsimg{ border:1px solid #0CF;}</p><p> .titlered{ float:left; color:#F00; font-size:18px;}</p&
66、gt;<p> .newstitle{ width:298px; float:left; text-align:left;}</p><p> a:link, a:visited{ text-decoration: none;color:#999;cursor:pointer;}</p><p> a:hover {color:#090;}</p><
67、;p> </style></head></p><p> <body><div id="all"><div id="newsimg"><div id="newsimgto" ></div></p><p> </div> &
68、lt;span class="titlered">新聞瀏覽</span><div class="newstitle"><a id="n1" onmouseover="newschange('http://cimg21.163.com/cnews/2008/5/29/20080529063645633e1.jpg')&
69、quot; href="http://cimg21.163.com/cnews/2008/5/29/20080529063645633e1.jpg" name="http://cimg21.163.com/cnews/2008/5/29/20080529063645633e1.jpg" >○陜西災(zāi)區(qū)學(xué)生烈日下備戰(zhàn)高考</a></div> <div class=
70、"newstitle"><a id="n2" onmouseover="newschange('http://cimg21.163.com/cnews/2008/5/29/20080529042010e2865.jpg')" href="http://cimg21.163.com/cnews/2008/5/29/2</p>
71、<p> <script language="javascript" type="text/javascript"></p><p> //隨機(jī)自動(dòng)切換,以五張為例</p><p> function autonewschange()</p><p> {setTimeout("auto
72、newschange()",5000);</p><p><b> try{</b></p><p> var d="n"+(Math.round(Math.random()*4)+1);</p><p> for(i=1;i<=4;i++)</p><p> {if(&quo
73、t;n"+i==d)</p><p> document.getElementById(d).style.cssText="color:#090;";</p><p><b> else</b></p><p> document.getElementById("n"+i).style.c
74、ssText="color:#999;";</p><p><b> }</b></p><p> var c=document.getElementById(d).name;</p><p> newschange(c);</p><p><b> }</b></
75、p><p><b> catch(e)</b></p><p><b> { }</b></p><p><b> }</b></p><p><b> //新聞切換</b></p><p> function newscha
76、nge(d)</p><p><b> {</b></p><p> document.getElementById("newsimgto").innerHTML ='<img src="'+d+'" width="300" height="200" /&
77、gt;';</p><p><b> }</b></p><p> autonewschange();</p><p><b> </script></b></p><p> 9.2、JS實(shí)現(xiàn)簡(jiǎn)單驗(yàn)證碼</p><p> //首先:網(wǎng)頁(yè)中插入以下
78、JS代碼</p><p> <script language="javascript" type="text/javascript"></p><p> var code ; //定義驗(yàn)證碼(全局變量)</p><p> function createCode(){ </p><p>
79、 code = "";</p><p> var codeLength = 4;//驗(yàn)證碼的長(zhǎng)度</p><p> var checkCode = document.getElementById("checkCode");</p><p> checkCode.value = "";</p&g
80、t;<p> var selectChar = new Array(2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','J','K','L','M','N','P
81、','Q','R','S','T','U','V','W','X','Y','Z');</p><p> for(var i=0;i<codeLength;i++) {</p><p> var charIndex
82、 = Math.floor(Math.random()*32);</p><p> code +=selectChar[charIndex];</p><p><b> }</b></p><p> if(code.length != codeLength)</p><p> { createCode();}&l
83、t;/p><p> checkCode.value = code;</p><p> }</script></p><p> //其次:輸出驗(yàn)證碼:</p><p> <body onLoad="createCode();">//加載驗(yàn)證碼</p><p> 驗(yàn)證碼:&
84、lt;input id="vc" name="vc" type="text" maxlength="4" />*//輸入框</p><p> <input type="text" name="checkCode" id="checkCode" readonl
85、y="true" onClick="createCode()"/>//文本框輸出驗(yàn)證碼,單擊可變換</p><p><b> </body></b></p><p> //再次:判斷方法:</p><p> if(document.forml.vc.value=="&qu
86、ot;||document.forml.vc.value.toUpperCase()!=code)</p><p> alert(“驗(yàn)證碼錯(cuò)誤”);</p><p> 9.3、JS常用知識(shí)歸納</p><p> (1)、獲取標(biāo)簽的屬性值(如:var a=document.formu.em.value;var b=document.getElementById(
87、“name”).name;);</p><p> ?。?)、改變標(biāo)簽屬性值(如:document.getElementById("selectfrm").src="select.php?txt="+d; window.open("countadd.php?id="+d+"&table=2","newwindow&qu
88、ot;);self.location=”index.php”;);</p><p> (3)、插入html和設(shè)置css屬性(如:document.getElementById("error2").innerHTML = "*請(qǐng)輸入正確的手機(jī)號(hào)碼!*";document.getElementById(d).style.cssText="color:#999;&qu
89、ot;;);</p><p> ?。?)、 實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)切換效果,比如通過(guò)setTimeout("xxx",5000):5秒鐘后調(diào)用xxx函數(shù),然后就停止;通過(guò)setinterel("xxx",5000):每隔5秒就會(huì)調(diào)用一次XXX);</p><p><b> 十、php代碼騙</b></p><p>
90、; 10.1、簡(jiǎn)潔php數(shù)據(jù)庫(kù)操作類(lèi)</p><p> 在整個(gè)項(xiàng)目的代碼開(kāi)發(fā)過(guò)程中,反復(fù)地使用以下類(lèi)進(jìn)行數(shù)據(jù)的檢索、增加、修改和刪除,代碼很簡(jiǎn)潔,也很通用,當(dāng)然這完全依賴(lài)于php自帶的系統(tǒng)函數(shù),減輕了開(kāi)發(fā)人員的工作負(fù)擔(dān)。</p><p><b> //DB.php</b></p><p><b> <?php</b
91、></p><p> function connect()</p><p> {$con = mysql_connect("127.0.0.1","root","111");</p><p> mysql_select_db("test",$con);</p>
92、<p> mysql_set_charset("utf8",$con);</p><p> return $con;}</p><p> function returnnull($sql)</p><p> { $con = connect();</p><p> $res = mysql_query(
93、$sql);//mysql_query() 向與指定的連接標(biāo)識(shí)符關(guān)聯(lián)的服務(wù)器中的當(dāng)前活動(dòng)數(shù)據(jù)庫(kù)發(fā)送一條查詢(xún)。</p><p> $value=mysql_affected_rows();</p><p> mysql_close($con); //用來(lái)查看對(duì)應(yīng)于 DELETE,INSERT,REPLACE 或 UPDATE 。 </p><p><b>
94、; }</b></p><p> function returnarray($sql)</p><p> {$con= connect();</p><p> $res = mysql_query($sql,$con);//參數(shù)2:規(guī)定 SQL 連接標(biāo)識(shí)符。如果未規(guī)定,則使用上一個(gè)打開(kāi)的連接。</p><p> $arr
95、= array();</p><p> for($i=0;$i<mysql_num_rows($res);$i++)//mysql_num_rows()來(lái)查看對(duì)應(yīng)于 SELECT 語(yǔ)句返回了多少行</p><p> { $arr[$i]= mysql_fetch_array($res,MYSQL_NUM);}</p><p> mysql_free_r
96、esult($res);//處理完結(jié)果集后可以通過(guò)調(diào)用 mysql_free_result() 來(lái)釋放與之關(guān)聯(lián)的資源,盡管腳本執(zhí)行完畢后會(huì)自動(dòng)釋放內(nèi)存。</p><p> mysql_close($con);</p><p> return $arr;</p><p><b> }</b></p><p><
97、b> ?></b></p><p> 10.2、利用mysql的limit實(shí)現(xiàn)分頁(yè)</p><p> 在網(wǎng)上找了很多分頁(yè)類(lèi),要么復(fù)雜到看不懂,要么不是自己想要的效果,最后自己想著寫(xiě),用單獨(dú)的一個(gè)php文件設(shè)置頁(yè)碼,用另一個(gè)php文件顯示分頁(yè)信息,簡(jiǎn)單地實(shí)現(xiàn)了分頁(yè)功能,技術(shù)含量低,但思路簡(jiǎn)單,適合像我這樣的初學(xué)者使用。理解思路如下:</p><
98、;p> ?。?)看這句簡(jiǎn)單的查詢(xún)語(yǔ)句:$sql = "select * from notebook limit 0,15";,它向notebook表中第一行數(shù)據(jù)開(kāi)始取數(shù),共取15行數(shù)據(jù);假如我們每頁(yè)顯示15條信息,那么第一頁(yè)為:limit 0,15;第二頁(yè)為:limit 15,15;第三頁(yè)為:limit 30,15;……以此類(lèi)推。</p><p> ?。?)、為了判斷整個(gè)數(shù)據(jù)表共可以
99、分為幾頁(yè),我們首先需要查詢(xún)出總行數(shù),然后除以15,通過(guò)ceil()方法返回不小于總行數(shù)除以15的值的下一個(gè)整數(shù)(總頁(yè)數(shù))。如:ceil(45/15)=3,ceil(44/15)=3。</p><p> ?。?)引入變量$pageno作為頁(yè)碼,則所有頁(yè)都可以用limit $pageno*15,15表示。</p><p> (4)、點(diǎn)擊“首頁(yè)”時(shí),將$pageno設(shè)為0;點(diǎn)擊“下一頁(yè)”時(shí),判
100、斷有無(wú)下一頁(yè),有則$pageno++;點(diǎn)擊“上一頁(yè)”時(shí),判斷有無(wú)上一頁(yè),有則$pageno--;點(diǎn)擊“尾頁(yè)”,將$pageno設(shè)為總頁(yè)數(shù)。</p><p> ?。?)用$_SESSION['pageno']= $pageno;記錄當(dāng)前選中頁(yè)的頁(yè)碼,這樣用戶(hù)在刷新頁(yè)面的時(shí)候,頁(yè)碼也不會(huì)改變。</p><p> 用一個(gè)php文件設(shè)置頁(yè)碼:</p><p&g
101、t; // pageclass.php</p><p><b> <?php</b></p><p> $no = $_GET["noteno"];//獲取編號(hào)0:首頁(yè),1:下一頁(yè),2:上一頁(yè),3:尾頁(yè)</p><p> $sql = "select * FROM notebook ";&l
102、t;/p><p> require_once("DB.php");//引入數(shù)據(jù)庫(kù)操作類(lèi)</p><p> $sum =count( runquery($sql));//查出總行數(shù)</p><p> session_start();</p><p> $pageno=$_SESSION['pageno']
103、;</p><p> switch($no)</p><p><b> {</b></p><p> case 0:$pageno=0;break;</p><p> case 1:if(($pageno+1)*15<$sum){ $pageno++;} break;</p><p>
104、; case 2:if($pageno*15>=15){ $pageno--;} break;</p><p> case 3:$pageno=ceil($sum/15-1);break;</p><p> default :break;</p><p><b> }</b></p><p> $_SES
105、SION['pageno']=$pageno;</p><p> echo"<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";</p><p> echo "<script>self.locat
106、ion='notebook.php'</script>";</p><p><b> ?></b></p><p> 用另外一個(gè)php文件顯示分頁(yè)信息:</p><p> // notebook.php</p><p><b> <?php </b
107、></p><p> session_start();</p><p> if($_SESSION['pageno']==null)//假如首次首次瀏覽,頁(yè)碼為空</p><p> $_SESSION['pageno']=0;</p><p> $from=($_SESSION['page
108、no']*15);</p><p> $sql = "select * from notebook order by ndate desc limit ".$from.",15";</p><p> //……輸出數(shù)據(jù)……</p><p><b> ?></b></p>
109、<p><b> <div> </b></p><p> <a href="pageclass.php?noteno=0">首 頁(yè)</a></p><p> <a href="pageclass.php?noteno=1">下一頁(yè)</a></p&
110、gt;<p> <a href="pageclass.php?noteno=2">上一頁(yè)</a></p><p> <a href="pageclass.php?noteno=3">尾 頁(yè)</a></p><p><b> </div></b><
111、;/p><p> 10.3、通過(guò)郵件找回密碼</p><p> 會(huì)員通過(guò)自己的郵箱接收自己的密碼,這樣不但可以對(duì)用戶(hù)進(jìn)行身份認(rèn)證,同時(shí)密碼的保密性也好。mail()和sochet方式都可以發(fā)送郵件。</p><p> 作為新手會(huì)選擇系統(tǒng)自帶的mail(),認(rèn)為只要mail()的參數(shù)填寫(xiě)正確就可以發(fā)送郵件了,但結(jié)果常常大失所望,因?yàn)閙ail()還需要組件的支持,要使
112、郵件函數(shù)可用,PHP 需要已安裝且正在運(yùn)行的郵件系統(tǒng),配置方面相當(dāng)麻煩,而且服務(wù)器環(huán)境改變了后,我又要重新配置。</p><p> Socket的本質(zhì)是:傳一個(gè)遠(yuǎn)程主機(jī)地址,和服務(wù)端口號(hào),然后生成 一個(gè)socket對(duì)象,以供使用!發(fā)送電子郵件不需要任何配置,而且網(wǎng)上socket類(lèi)比較多,只要會(huì)使用socket類(lèi),那么發(fā)送郵件就不存在任何的問(wèn)題了。</p><p> 10.4、php常用
113、知識(shí)歸納</p><p> (1)、擅用系統(tǒng)自帶函數(shù),如:加密使用MD5()、時(shí)區(qū)設(shè)置date_default_timezone_set("prc"); $dt=date("Y-m-d H:i:s")等;</p><p> (2)、結(jié)合其他語(yǔ)言一起實(shí)現(xiàn)相應(yīng)功能,如:先通過(guò)JS判斷信息格式后再提交表單等;</p><p>
114、 (3)、將重復(fù)使用的代碼統(tǒng)一寫(xiě)成相應(yīng)的功能函數(shù)和方法,封裝成類(lèi),最后放于一個(gè)文件中,形成功能完整和通用性好的代碼工具。</p><p><b> 總結(jié)</b></p><p> 首先,通過(guò)整個(gè)小組成員的共同努力,我們完成了該系統(tǒng)。在完成的過(guò)程中讓我們對(duì)在校所學(xué)知識(shí)做了一個(gè)總結(jié),特別是本系統(tǒng)應(yīng)用到的相關(guān)知識(shí):JSP、JavaBean、Servlet、過(guò)濾器、XML
115、與DOM,HTML+DIV+CSS架構(gòu),Javascript + ajax;通過(guò)對(duì)以前知識(shí)的復(fù)習(xí)和鞏固,在此基礎(chǔ)上再學(xué)習(xí)一些新的知識(shí),還有涉及到數(shù)據(jù)庫(kù)的部分知識(shí),讓我們系統(tǒng)的學(xué)習(xí)了數(shù)據(jù)庫(kù)的相關(guān)知識(shí)。其次,我們6個(gè)同學(xué)一個(gè)小組,分不同的模塊設(shè)計(jì),幾個(gè)小組成員之間要相互配合,互相幫助,共同進(jìn)步;只要有其中的一個(gè)沒(méi)有按照約定完成自己的工作,那么我們的工作就不可能完成;所以,在這個(gè)過(guò)程中,不管是誰(shuí)的能力有多強(qiáng),如果他不和其他人合作,那么他做什么
116、都是多余的;總之,這次系統(tǒng)的完成我們最大的感受就是團(tuán)隊(duì)的力量是強(qiáng)大的,任何時(shí)候我們都必須記住:我們是一個(gè)團(tuán)隊(duì)。再次,我們?cè)谡麄€(gè)過(guò)程中遇到了很多困難,我們向其它同學(xué)朋友虛心的請(qǐng)教了,也從中認(rèn)識(shí)了不少朋友,也學(xué)習(xí)到了不少知識(shí),提高了我們的交流能力和自學(xué)能力。最后,不斷地和老師溝通和交流減少了我們?cè)谕瓿蛇^(guò)程中遇到的一些麻煩。</p><p><b> 致謝</b></p><
117、p> 本文的是在xx老師的指導(dǎo)下完成的。從開(kāi)題到構(gòu)思、包括最后的提煉,都得到了xx老師的細(xì)心指點(diǎn)和提攜。xx老師學(xué)術(shù)的認(rèn)真與嚴(yán)謹(jǐn)給我們留下了十分深刻的印象,同時(shí)也給予了我們莫大的幫助和鼓舞,僅在此獻(xiàn)上我們最真摯的敬佩與感激。</p><p> 并且在此感謝所有幫助過(guò)我的其它老師、同學(xué)以及朋友們。最后,向評(píng)審該論文及參加論文答辯的各位老師表示衷心的感謝和誠(chéng)摯的敬意。</p><p>
118、;<b> 參考文獻(xiàn)</b></p><p> 1《 PHP開(kāi)發(fā)入行真功夫》,三揚(yáng)科技,電子工業(yè)出版社,2009-07。</p><p> 2《 HTML網(wǎng)頁(yè)設(shè)計(jì)》,賈素玲、王強(qiáng), 清華大學(xué)出版社,2007-05。</p><p> 3《DIV+CSS網(wǎng)頁(yè)布局商業(yè)案例精粹》,覽眾、張曉景, 電子工業(yè)出版社,2007-12。</p&
119、gt;<p> 4《個(gè)性化電子商務(wù)網(wǎng)站的研究與實(shí)現(xiàn)》,于小紅。</p><p> 5《DIV+CSS網(wǎng)站布局從入門(mén)到精通》,朱印宏、鄧艷超, 石油工業(yè)出版社,2011-01。</p><p> 6《電子商務(wù)網(wǎng)站后臺(tái)數(shù)據(jù)庫(kù)的連接設(shè)計(jì)》,葉小榮。 </p><p> 7《JavaScript高級(jí)程序設(shè)計(jì)(第2版)》,(美)澤卡斯, 人民郵電出版社,
120、2010-07。</p><p> 8《深入淺出MySQL數(shù)據(jù)庫(kù)開(kāi)發(fā)、優(yōu)化與管理維護(hù)》,唐漢明,人民郵電出版社,2008-04。</p><p> 9《期刊論文》,梁春晶,B2C電子商務(wù)系統(tǒng)功能模塊的設(shè)置。</p><p> 10《學(xué)位論文》,李晶,電子商務(wù)拍賣(mài)網(wǎng)站的研究與設(shè)計(jì)實(shí)現(xiàn)。</p><p> 11《數(shù)據(jù)分析方法》,梅長(zhǎng)林、范
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)站建設(shè)畢業(yè)設(shè)計(jì)論文
- 網(wǎng)站建設(shè)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)論文 學(xué)校網(wǎng)站建設(shè)
- 企業(yè)網(wǎng)站建設(shè)畢業(yè)設(shè)計(jì)論文
- 旅游網(wǎng)站建設(shè)畢業(yè)設(shè)計(jì)論文
- 網(wǎng)站建設(shè)畢業(yè)設(shè)計(jì)論文 企業(yè)網(wǎng)站的規(guī)劃與建設(shè)
- 求職網(wǎng)站設(shè)計(jì)及建設(shè)畢業(yè)設(shè)計(jì)論文
- 求職網(wǎng)站設(shè)計(jì)及建設(shè)畢業(yè)設(shè)計(jì)論文
- 醫(yī)院網(wǎng)站建設(shè)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)——網(wǎng)站建設(shè)方案
- 個(gè)人網(wǎng)站的建設(shè)及實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(論文)
- 團(tuán)購(gòu)網(wǎng)站畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)論文 團(tuán)購(gòu)網(wǎng)站設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)個(gè)人網(wǎng)站設(shè)計(jì)
- 個(gè)人網(wǎng)站設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)----學(xué)校網(wǎng)站設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)----學(xué)校網(wǎng)站設(shè)計(jì)論文
- 商品購(gòu)物管理網(wǎng)站建設(shè)(doc畢業(yè)設(shè)計(jì)論文)
- 校園網(wǎng)站建設(shè)—畢業(yè)設(shè)計(jì)
- 企業(yè)網(wǎng)站建設(shè)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論