

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p><b> 第一章 緒論3</b></p><p><b> 1.1背景3</b></p><p> 1.1.1劍川繡花鞋的生產經營狀況3</p><p> 1.1.2目前的銷售模式4</p>
2、;<p> 1.1.3 提出的策略4</p><p> 1.2 電子商務的現狀和好處5</p><p> 1.2.1 中國電子商務的現狀5</p><p> 1.2.2 電子商務的優(yōu)點5</p><p> 1.3 開展劍川繡花鞋文化宣傳網的必要性5</p><p> 1.3.1 劍川
3、繡花鞋面臨的沖擊6</p><p> 1.3.2 開展劍川繡花鞋電子商務網站的必要性6</p><p> 1.4 研究結果6</p><p> 第二章 劍川繡花鞋文化宣傳網的基本設計原則6</p><p> 2.1劍川繡花鞋文化宣傳網的設計目標6</p><p> 2.2劍川繡花鞋文化宣傳網設計的基
4、本原則7</p><p> 2.3劍川繡花鞋文化宣傳網系統(tǒng)的開發(fā)7</p><p> 第三章 劍川繡花鞋文化宣傳網開發(fā)技術8</p><p> 3.1 網站開發(fā)編程語言8</p><p> 3.1.1 php簡介8</p><p> 3.1.2 php的特點8</p><p
5、> 3.1.1 腳本語言9</p><p> 第四章 劍川繡花鞋文化宣傳網的模塊架構9</p><p> 4.1 B2C電子商務網站架構的研究步驟10</p><p> 4.2 劍川繡花鞋文化宣傳網架構模型11</p><p> 第五章 劍川繡花鞋文化宣傳網的具體功能11</p><p&g
6、t; 5.1 前臺設計11</p><p> 5.2 后臺設計12</p><p> 5.3 數據庫設計12</p><p> 第六章 “劍川繡花鞋文化宣傳網”的優(yōu)缺點13</p><p> 6.1“劍川繡花鞋文化宣傳網”的優(yōu)點13</p><p> 6.1.1、無限延伸13</p>
7、<p> 6.1.2、低成本14</p><p> 6.1.3、多功能14</p><p> 6.2 網站系統(tǒng)尚存在的一些缺陷和弱點14</p><p> 6.2.1.線上付款的安全性14</p><p><b> 第七章 總結14</b></p><p>
8、第八章 致謝15</p><p><b> 摘要</b></p><p> 大理州劍川縣繡花鞋在1999年以前年產量不超過6000雙,而到2005年,產量就達23.6萬雙。然而由于當地條件的限制,劍川繡花鞋并未被廣大消費者所認知,只在旅游景點和為數不多的店鋪有銷售,網上銷售更是寥寥無幾。</p><p> 隨著信息技術的發(fā)展,信息的傳
9、遞已突破了時間和地域的局限,電子商務交易能夠在網上完成產供銷全部業(yè)務流程的電子商務虛擬市場。從封閉的銀行電子金融系統(tǒng)到開放式的網絡電子銀行,電子商務以其獨特的運作模式,大大提高了商業(yè)運作的效率,并有效地降低了成本。電子商務以更為方便和快捷的方式,把企業(yè)的產品及服務等信息,通過信息網絡快速直觀的呈現在用戶面前,讓用戶接受并迅速的達成相關的意向。</p><p> 關鍵字:繡花鞋,電子商務</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、傳網介紹</p><p> 劍川繡花鞋文化宣傳網是一個結合信息服務型、廣告型和交易型的綜合型電子商務網站。其前臺功能包括:繡花鞋文化宣傳、公司形象宣傳、產品展示、廣告宣傳、商品訂購、網上支付、網絡客戶服務和會員實時互動,其后臺功能包括:產品管理、會員管理、新聞管理、論壇管理、廣告管理和系統(tǒng)設置。</p><p> 劍川繡花鞋文化宣傳網采用B2C的模式,網站的設計和開發(fā)需要圍繞以下原則:
14、</p><p> ?。?)、充分展示產品信息、文化信息、廣告信息和企業(yè)信息;</p><p> ?。?)、方便客戶查找商品、在線訂購和網上支付;</p><p> ?。?)、方便企業(yè)與客戶以及客戶與客戶的交流和互動;</p><p> (4)、方便管理和更新信息;</p><p> ?。?)、確保網站安全;<
15、/p><p> (6)、優(yōu)化網站訪問速度;</p><p> 二、我的開發(fā)任務介紹</p><p> 圖1:通過php代碼把網頁與數據庫關聯(lián)起來</p><p> 結合小組的實際情況,為了充分利用好和發(fā)揮好小組的人力資源,經過開發(fā)小組的討論和協(xié)商,我們把整個項目的開發(fā)任務分為:數據庫開發(fā)、靜態(tài)網頁開發(fā)和動態(tài)網頁開發(fā)。</p>
16、<p> 在開發(fā)過程中,我負責整個項目的動態(tài)網頁編寫(圖1黃色虛線框),通過設計和編寫php代碼將其嵌入到靜態(tài)網頁中,控制網頁顯示信息和接收信息,操縱數據庫查詢和更新信息,使網頁與數據庫緊密地關聯(lián)起來,形成功能完善的動態(tài)信息管理系統(tǒng)。</p><p> 從圖1中可以看出我的開發(fā)任務緊扣了其他成員的開發(fā)任務,因此我所編寫的代碼:必須確保與靜態(tài)網頁功能的一致性;必須確保與數據庫結構的一致性;必須確保整
17、個項目的系統(tǒng)性。</p><p><b> 三、語言工具的選擇</b></p><p> 為了實現功能的友好銜接,我必須保持與其他成員的溝通和交流,同時需要讀懂和理解他們的工作成果,因此我需要掌握的語言包括:PHP、HTML、JavaScript、CSS和MySQL。</p><p> 3.1PHP+Apache+MySQL</p&
18、gt;<p> 通過PHP代碼可以搭建起信息的傳輸橋梁,開辟出從靜態(tài)網頁到數據庫的高速數據通道,選擇其作為開發(fā)語言的理由主要為:</p><p> (1)、運用PHP開發(fā)項目,程序開發(fā)快,運行快,和其它技術相比,PHP本身免費,所有的PHP源代碼事實上都可以得到,技術本身學習快。</p><p> ?。?)、PHP可以嵌入HTML語言,它相對于其他語言,編輯簡單,實用性強
19、;用PHP做出的動態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標記的CGI要高許多;</p><p> ?。?)、PHP還可以執(zhí)行編譯后代碼,編譯可以達到加密和優(yōu)化代碼運行,使代碼運行更快。</p><p> (4)、PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統(tǒng)。</p>
20、;<p> ?。?)、PHP+Apache+MySQL是一個完全免費的、性能優(yōu)異的Web服務器應用開發(fā)組合,已經成為絕大多數中小型網站的應用解決方案。</p><p> 3.2、DIV+CSS(層疊樣式表)</p><p> DIV控制了網頁的模塊和數量,CSS讓各個DIV穿上漂亮的衣裳,讓網頁看上去得體和漂亮,同時得到各種瀏覽器的接受和認可。另外,div+css 作為網
21、頁的一種布局方法,它有別于傳統(tǒng)的HTML網頁設計語言中的表格(table)定位方式,真正地達到了w3c內容與表現相分離。其具備的優(yōu)勢主要包括:頁面載入更快、降低流量費用、修改設計時更有效率和更好地被搜索引擎收錄。</p><p> 3.3、JavaScript</p><p> JS代碼插入到HTML中,讓本來靜止不動的網頁開始翩翩起舞,主動地展示出數據信息,同時使得網頁和用戶之間建立
22、起了一種實時性的、動態(tài)的、交互性的關系,這樣的網頁便包含了更多活躍的元素和更加精彩的內容。</p><p> 四、功能分析和技術代碼劃分</p><p> 劍川繡花鞋文化宣傳網的功能復雜,開發(fā)人員必須結合各種開發(fā)方法,整體上把握全局的同時逐一擊破。如果不考利項目的整體功能效果,將導致網站失去功能的連貫性;如果不細心分析,將導致網站功能的遺漏和不足;如果不對功能進行歸類,將導致工期源長且
23、不便于管理。</p><p> 避開網站各個功能的連貫性,從技術角度出發(fā),以信息和數據作為管理對象,網站的代碼僅需要實現:信息的查詢功能、信息的添加功能、信息的修改功能、信息的刪除功能、信息的分頁顯示功能、文件的上傳和下載功能、郵件的發(fā)生功能和在線支付功能等等。只要掌握了以上技術,將其寫成能功能完善的操作類,并且可以靈活調用,那么系統(tǒng)的開發(fā)便變成了功能組織的過程,哪里需要功能,需要什么樣的功能,相應的操作類就出
24、現在哪里,通過靈活地調用和組織,開發(fā)人員可以更為輕松地實現并聯(lián)系起各個功能。</p><p> 五、淺談表單提交方式</p><p> 5.1、get方式與post方式的特點比較</p><p> (1)、get方式是從服務器上獲取數據,post方式是向服務器傳送數據;</p><p> (2)、get方式提交數據時,用戶可以在瀏覽器
25、上直接看到提交的數據,一些系統(tǒng)內部消息將會一同顯示在用戶面前,而post的所有操作對用戶來說都是不可見的;</p><p> ?。?)、get方式傳送的數據量較小,不能大于2KB。Post方式傳送的數據量較大,一般被默認為不受限制。但理論上,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方式要差些,包含機密信息的時候,我選擇post
27、數據提交方式;</p><p> ?。?)、 post方式容量大,安全性高,我便用于數據的添加、修改或刪除,get方式的提交提交速度快,我就用于數據的查詢;</p><p> ?。?)、 get方式提交數據時候,如果處理技術不到家,我建議最好不要提交中文的數據,避免出現亂碼等錯誤,當然數字和字母是不會出現問題的; </p><p> 六、MD5(消息摘要算法)加密
28、密碼</p><p> 任何人都有自己獨一無二的指紋,這常常成為公安機關鑒別罪犯身份最值得信賴的方法;與之類似,通過MD5不可逆的字符串變換算法,MD5可以為任何文件(不管其大小、格式、數量)產生一個等長度(32位)的獨一無二的“數字指紋”,如果任何人對文件做了任何改動,其MD5值也就是對應的“數字指紋”都會發(fā)生變化。</p><p> 在php開發(fā)過程中,我使用了MD5對密碼進行加密
29、,php自帶的md5()函數,使我輕松解決了密碼加密問題,使用方法如下:</p><p><b> <?php</b></p><p> $str=”password”;</p><p> $password=md5($str);</p><p><b> ?></b></
30、p><p><b> 七、sql注入說明</b></p><p> Web安全紛繁復雜,危害最嚴重的當屬SQL注入。SQL Injection,中文名稱為“SQL 注射”,是一種數據庫攻擊手段,也是WEB應用程序漏洞存在的一種表現形式,它的實際意義就是利用某些數據庫的外部接口把用戶數據插入到實際的數據庫操作語言當中,從而達到入侵數據庫乃至操作系統(tǒng)的目的。</p&
31、gt;<p><b> 八、雙重防護策略</b></p><p> 8.1、雙重防護策略介紹</p><p> 圖2:雙重過濾表單提交信息</p><p> 如果把表單關聯(lián)的JS文件和PHP文件作為表單的的左膀右臂(如圖2),充分發(fā)揮其職責,牢牢地守死信息輸入的關卡,那么畸形數據將永遠地拒之門外。策略一:信息格式匹配;策略
32、二:全方位防止sql注入。</p><p> 8.2、信息格式匹配</p><p> JS的引入,能夠滿足我需要的任何網頁交互效果,同時我通過JS可以實現信息的第一次過濾,其策略為:通過對輸入信息格式的判斷,以此檢測出輸入信息是否合法,如果格式不是指定的格式,那么表單將拒絕提交。方法如下:</p><p> 方法一,擅用正則表達式:</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+"請輸入正確的郵箱!"+msg2;//動態(tài)插入html錯誤提示信息</p><p> document.formu.em.focus(); //焦點移到錯誤位置</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+"請輸入正確的身份證號!"+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;//所有檢測通過才提交表單</p><p><b> }</b></p><p><b> //正則表達式</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;//手機號</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;無限擴展</p><p><b> default:</b></p><p> alert("未知輸入錯誤!");</p><p> return false;</p><p><b> }</b></p><p> return(
44、reyx.test(str));</p><p><b> }</b></p><p> 方法二,屏蔽鍵盤畸形輸入:</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" /><!—只能輸入整數--></p><p> 8.3、全方位防止sql注入</p><p> JS再厲害,也不過是唱獨角戲罷了,php才是信息的操縱者,它可以穿梭于服務器與客戶端之間,php傳遞的信息包裹在sql語
47、句里,因此sql語句才是數據庫的入場券,同時sql語句圣旨般的權利可以命令數據庫做任何數據操作。同時這也就說明,一旦偽造“圣旨”成功,則“君讓臣死,臣不得不死”也不是不可能的事情。因此養(yǎng)成良好的sql語句的編寫習慣,細心編寫代碼,是我們這些菜鳥的一門必修課。當然,道高一尺魔高一丈,只有更安全的策略,沒有決對安全的措施。對信息進行過濾的另一個策略為:全方位防止sql注入。下面我簡單列舉此次代碼開發(fā)過程中關注的幾個問題:</p>
48、<p> 問題一,選取安全的傳遞方式:</p><p> 從安全方式的選取出發(fā),涉及安全數據時:不選用get傳輸數據,因為從地址欄也可以注入sql攻擊,用post替代;不使用a標簽: <a href="user.php?uid=1">會員信息</a>,用:<input type="button" onclick="
49、self.location=' user.php?uid=1’>" value="會員信息" />替換。</p><p> 問題二,遵循數據庫規(guī)范:</p><p> 從遵循規(guī)范性出發(fā),sql語句要盡量嚴密且符合數據庫的要求,比如在下面的例子中,兩句sql語句的作用是一樣的,語句的區(qū)別只是有無一對單引號,但是沒有單引號就給了攻擊者更多發(fā)
50、揮的空間,有單引號不僅符合數據庫的規(guī)范,同時也讓攻擊者不方便拼接sql語句。</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";//不嚴密的編寫</p><p> //$sql="select * from yuser where uid=’$uid’";嚴密的編寫</
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> 問題三,使用信息包裝器:</p><p> 比如,將 PHP 的內置 mysql_real_escape_string() 函數用作任何用戶輸入的包裝器。這個函數對字符串中的字符進行轉義,使字符串不可能傳遞撇號等特殊字符的同時讓 MySQL 根據特殊字符進行操作,就可以避免用戶輸
54、入中的惡意 SQL 注入??聪旅娴睦樱?lt;/p><p> //對于下面的sql語句</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> //例如,如果用戶輸入 yw 作為用戶名,輸入 ' or '1'='1 作為密碼,那么實際上會將以下字符串傳遞給 PHP,然后將查詢傳遞給 MySQL:$sql = "select count(*) as ctr from users where username=&
57、#39;yw' and password='' or '1'='1' limit 1";</p><p> //對于下面的sql語句</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> //例如,如果用戶輸入 yw 作為用戶名,輸入
60、39; or '1'='1 作為密碼,那么實際上會將以下字符串傳遞給 PHP,然后將查詢傳遞給 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、隨機新聞變換</p><p> 圖3.隨機新聞變換效果</p><p> 圖3是我用純JS編寫一個隨機新聞變換效果,沒有用到Jquery,技術簡單,同時支持數據庫數據的綁定和新聞數量擴展,我將代碼抽取出來,做成運用實例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>首 頁(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" >○陜西災區(qū)學生烈日下備戰(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> //隨機自動切換,以五張為例</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實現簡單驗證碼</p><p> //首先:網頁中插入以下
78、JS代碼</p><p> <script language="javascript" type="text/javascript"></p><p> var code ; //定義驗證碼(全局變量)</p><p> function createCode(){ </p><p>
79、 code = "";</p><p> var codeLength = 4;//驗證碼的長度</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> //其次:輸出驗證碼:</p><p> <body onLoad="createCode();">//加載驗證碼</p><p> 驗證碼:&
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()"/>//文本框輸出驗證碼,單擊可變換</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(“驗證碼錯誤”);</p><p> 9.3、JS常用知識歸納</p><p> (1)、獲取標簽的屬性值(如:var a=document.formu.em.value;var b=document.getElementById(
87、“name”).name;);</p><p> ?。?)、改變標簽屬性值(如: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和設置css屬性(如:document.getElementById("error2").innerHTML = "*請輸入正確的手機號碼!*";document.getElementById(d).style.cssText="color:#999;&qu
89、ot;;);</p><p> ?。?)、 實現網頁自動切換效果,比如通過setTimeout("xxx",5000):5秒鐘后調用xxx函數,然后就停止;通過setinterel("xxx",5000):每隔5秒就會調用一次XXX);</p><p><b> 十、php代碼騙</b></p><p>
90、; 10.1、簡潔php數據庫操作類</p><p> 在整個項目的代碼開發(fā)過程中,反復地使用以下類進行數據的檢索、增加、修改和刪除,代碼很簡潔,也很通用,當然這完全依賴于php自帶的系統(tǒng)函數,減輕了開發(fā)人員的工作負擔。</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() 向與指定的連接標識符關聯(lián)的服務器中的當前活動數據庫發(fā)送一條查詢。</p><p> $value=mysql_affected_rows();</p><p> mysql_close($con); //用來查看對應于 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);//參數2:規(guī)定 SQL 連接標識符。如果未規(guī)定,則使用上一個打開的連接。</p><p> $arr
95、= array();</p><p> for($i=0;$i<mysql_num_rows($res);$i++)//mysql_num_rows()來查看對應于 SELECT 語句返回了多少行</p><p> { $arr[$i]= mysql_fetch_array($res,MYSQL_NUM);}</p><p> mysql_free_r
96、esult($res);//處理完結果集后可以通過調用 mysql_free_result() 來釋放與之關聯(lián)的資源,盡管腳本執(zhí)行完畢后會自動釋放內存。</p><p> mysql_close($con);</p><p> return $arr;</p><p><b> }</b></p><p><
97、b> ?></b></p><p> 10.2、利用mysql的limit實現分頁</p><p> 在網上找了很多分頁類,要么復雜到看不懂,要么不是自己想要的效果,最后自己想著寫,用單獨的一個php文件設置頁碼,用另一個php文件顯示分頁信息,簡單地實現了分頁功能,技術含量低,但思路簡單,適合像我這樣的初學者使用。理解思路如下:</p><
98、;p> ?。?)看這句簡單的查詢語句:$sql = "select * from notebook limit 0,15";,它向notebook表中第一行數據開始取數,共取15行數據;假如我們每頁顯示15條信息,那么第一頁為:limit 0,15;第二頁為:limit 15,15;第三頁為:limit 30,15;……以此類推。</p><p> ?。?)、為了判斷整個數據表共可以
99、分為幾頁,我們首先需要查詢出總行數,然后除以15,通過ceil()方法返回不小于總行數除以15的值的下一個整數(總頁數)。如:ceil(45/15)=3,ceil(44/15)=3。</p><p> ?。?)引入變量$pageno作為頁碼,則所有頁都可以用limit $pageno*15,15表示。</p><p> ?。?)、點擊“首頁”時,將$pageno設為0;點擊“下一頁”時,判
100、斷有無下一頁,有則$pageno++;點擊“上一頁”時,判斷有無上一頁,有則$pageno--;點擊“尾頁”,將$pageno設為總頁數。</p><p> ?。?)用$_SESSION['pageno']= $pageno;記錄當前選中頁的頁碼,這樣用戶在刷新頁面的時候,頁碼也不會改變。</p><p> 用一個php文件設置頁碼:</p><p&g
101、t; // pageclass.php</p><p><b> <?php</b></p><p> $no = $_GET["noteno"];//獲取編號0:首頁,1:下一頁,2:上一頁,3:尾頁</p><p> $sql = "select * FROM notebook ";&l
102、t;/p><p> require_once("DB.php");//引入數據庫操作類</p><p> $sum =count( runquery($sql));//查出總行數</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> 用另外一個php文件顯示分頁信息:</p><p> // notebook.php</p><p><b> <?php </b
107、></p><p> session_start();</p><p> if($_SESSION['pageno']==null)//假如首次首次瀏覽,頁碼為空</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> //……輸出數據……</p><p><b> ?></b></p>
109、<p><b> <div> </b></p><p> <a href="pageclass.php?noteno=0">首 頁</a></p><p> <a href="pageclass.php?noteno=1">下一頁</a></p&
110、gt;<p> <a href="pageclass.php?noteno=2">上一頁</a></p><p> <a href="pageclass.php?noteno=3">尾 頁</a></p><p><b> </div></b><
111、;/p><p> 10.3、通過郵件找回密碼</p><p> 會員通過自己的郵箱接收自己的密碼,這樣不但可以對用戶進行身份認證,同時密碼的保密性也好。mail()和sochet方式都可以發(fā)送郵件。</p><p> 作為新手會選擇系統(tǒng)自帶的mail(),認為只要mail()的參數填寫正確就可以發(fā)送郵件了,但結果常常大失所望,因為mail()還需要組件的支持,要使
112、郵件函數可用,PHP 需要已安裝且正在運行的郵件系統(tǒng),配置方面相當麻煩,而且服務器環(huán)境改變了后,我又要重新配置。</p><p> Socket的本質是:傳一個遠程主機地址,和服務端口號,然后生成 一個socket對象,以供使用!發(fā)送電子郵件不需要任何配置,而且網上socket類比較多,只要會使用socket類,那么發(fā)送郵件就不存在任何的問題了。</p><p> 10.4、php常用
113、知識歸納</p><p> (1)、擅用系統(tǒng)自帶函數,如:加密使用MD5()、時區(qū)設置date_default_timezone_set("prc"); $dt=date("Y-m-d H:i:s")等;</p><p> (2)、結合其他語言一起實現相應功能,如:先通過JS判斷信息格式后再提交表單等;</p><p>
114、 (3)、將重復使用的代碼統(tǒng)一寫成相應的功能函數和方法,封裝成類,最后放于一個文件中,形成功能完整和通用性好的代碼工具。</p><p><b> 總結</b></p><p> 首先,通過整個小組成員的共同努力,我們完成了該系統(tǒng)。在完成的過程中讓我們對在校所學知識做了一個總結,特別是本系統(tǒng)應用到的相關知識:JSP、JavaBean、Servlet、過濾器、XML
115、與DOM,HTML+DIV+CSS架構,Javascript + ajax;通過對以前知識的復習和鞏固,在此基礎上再學習一些新的知識,還有涉及到數據庫的部分知識,讓我們系統(tǒng)的學習了數據庫的相關知識。其次,我們6個同學一個小組,分不同的模塊設計,幾個小組成員之間要相互配合,互相幫助,共同進步;只要有其中的一個沒有按照約定完成自己的工作,那么我們的工作就不可能完成;所以,在這個過程中,不管是誰的能力有多強,如果他不和其他人合作,那么他做什么
116、都是多余的;總之,這次系統(tǒng)的完成我們最大的感受就是團隊的力量是強大的,任何時候我們都必須記?。何覀兪且粋€團隊。再次,我們在整個過程中遇到了很多困難,我們向其它同學朋友虛心的請教了,也從中認識了不少朋友,也學習到了不少知識,提高了我們的交流能力和自學能力。最后,不斷地和老師溝通和交流減少了我們在完成過程中遇到的一些麻煩。</p><p><b> 致謝</b></p><
117、p> 本文的是在xx老師的指導下完成的。從開題到構思、包括最后的提煉,都得到了xx老師的細心指點和提攜。xx老師學術的認真與嚴謹給我們留下了十分深刻的印象,同時也給予了我們莫大的幫助和鼓舞,僅在此獻上我們最真摯的敬佩與感激。</p><p> 并且在此感謝所有幫助過我的其它老師、同學以及朋友們。最后,向評審該論文及參加論文答辯的各位老師表示衷心的感謝和誠摯的敬意。</p><p>
118、;<b> 參考文獻</b></p><p> 1《 PHP開發(fā)入行真功夫》,三揚科技,電子工業(yè)出版社,2009-07。</p><p> 2《 HTML網頁設計》,賈素玲、王強, 清華大學出版社,2007-05。</p><p> 3《DIV+CSS網頁布局商業(yè)案例精粹》,覽眾、張曉景, 電子工業(yè)出版社,2007-12。</p&
119、gt;<p> 4《個性化電子商務網站的研究與實現》,于小紅。</p><p> 5《DIV+CSS網站布局從入門到精通》,朱印宏、鄧艷超, 石油工業(yè)出版社,2011-01。</p><p> 6《電子商務網站后臺數據庫的連接設計》,葉小榮。 </p><p> 7《JavaScript高級程序設計(第2版)》,(美)澤卡斯, 人民郵電出版社,
120、2010-07。</p><p> 8《深入淺出MySQL數據庫開發(fā)、優(yōu)化與管理維護》,唐漢明,人民郵電出版社,2008-04。</p><p> 9《期刊論文》,梁春晶,B2C電子商務系統(tǒng)功能模塊的設置。</p><p> 10《學位論文》,李晶,電子商務拍賣網站的研究與設計實現。</p><p> 11《數據分析方法》,梅長林、范
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網站建設畢業(yè)設計論文
- 網站建設畢業(yè)設計論文
- 畢業(yè)設計論文 學校網站建設
- 企業(yè)網站建設畢業(yè)設計論文
- 旅游網站建設畢業(yè)設計論文
- 網站建設畢業(yè)設計論文 企業(yè)網站的規(guī)劃與建設
- 求職網站設計及建設畢業(yè)設計論文
- 求職網站設計及建設畢業(yè)設計論文
- 醫(yī)院網站建設畢業(yè)設計
- 畢業(yè)設計——網站建設方案
- 個人網站的建設及實現畢業(yè)設計(論文)
- 團購網站畢業(yè)設計論文
- 畢業(yè)設計論文 團購網站設計
- 畢業(yè)設計(論文)個人網站設計
- 個人網站設計畢業(yè)設計論文
- 畢業(yè)設計----學校網站設計論文
- 畢業(yè)設計----學校網站設計論文
- 商品購物管理網站建設(doc畢業(yè)設計論文)
- 校園網站建設—畢業(yè)設計
- 企業(yè)網站建設畢業(yè)設計
評論
0/150
提交評論