




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù)五163郵箱注冊(cè)功能實(shí)現(xiàn)簡(jiǎn)單注冊(cè)功能實(shí)現(xiàn)使用圖片驗(yàn)證碼(圖片驗(yàn)證碼地創(chuàng)建,插入,刷新與驗(yàn)證過(guò)程)操作mysql數(shù)據(jù)庫(kù)(創(chuàng)建數(shù)據(jù)庫(kù)與數(shù)據(jù)表,數(shù)據(jù)庫(kù)地導(dǎo)入與導(dǎo)出,PHP文件訪問(wèn)MySQL數(shù)據(jù)庫(kù))使用數(shù)據(jù)庫(kù)保存注冊(cè)信息5.2.3圖片驗(yàn)證碼地插入與刷新需要解決地問(wèn)題:1.怎樣在頁(yè)面插入驗(yàn)證碼圖片2.如何使用腳本地自定義函數(shù)完成驗(yàn)證碼地刷新操作在zhuce.html文件插入驗(yàn)證碼圖片驗(yàn)證碼是以文件地形式保存地,此處使用地文件名稱是yzm.php,但是其內(nèi)容是一幅寬100px,高25px地圖片,所以使用代碼<imgsrc="yzm.php"name="yzm"id="yzm"/>插入到頁(yè)面文件zhuce.html相應(yīng)位置即可,圖片元素地name與id至少要定義其一個(gè)。插入圖片驗(yàn)證碼后,頁(yè)面效果驗(yàn)證碼左側(cè)地文本框位置下移,與驗(yàn)證碼沒(méi)有對(duì)齊,需要如何調(diào)整?需要在圖片標(biāo)記<img>設(shè)置align="top",這樣可以控制與驗(yàn)證碼圖片在同一行地文本框useryzm能夠與圖片地頂端對(duì)齊,使得頁(yè)面比較美觀。如何刷新zhuce.html地驗(yàn)證碼圖片驗(yàn)證碼地刷新需要借助于javaScript函數(shù)來(lái)實(shí)現(xiàn)。在zhuce.js腳本文件增加函數(shù)yzmupdate()地定義,輸入圖所示地代碼函數(shù)yzmupdate()代碼地解釋yzm是圖片元素地name,使用document.yzm可以獲取到表示驗(yàn)證碼地圖片元素,然后設(shè)置該元素地src屬性即可修改所顯示地圖片內(nèi)容;代碼"yzm.php?"+Math.random()地作用是每次點(diǎn)擊"看不清楚?換一張"時(shí)都重新加載yzm.php文件,加載過(guò)程通過(guò)Math.random()函數(shù)隨機(jī)產(chǎn)生地?cái)?shù)字激活yzm.php文件地重新運(yùn)行,從而獲得新地驗(yàn)證碼字符并輸出函數(shù)yzmupdate()地調(diào)用調(diào)用函數(shù)yzmupdate()是在用戶點(diǎn)擊"看不清楚?換一張"文本時(shí)進(jìn)行地,該文本使用了<span>...</span>標(biāo)記控制,而點(diǎn)擊操作激活地是onclick,所以需要在頁(yè)面文件zhuce.html代碼"<span>看不清楚?換一張</span>"地<span>標(biāo)記內(nèi)部增加onclick="yzmupdate();",即可完成函數(shù)地調(diào)用過(guò)程。問(wèn)題地提出用戶在zhuce.html界面地文本框useryzm輸入圖片驗(yàn)證碼地字符,點(diǎn)擊提交按鈕之后系統(tǒng)需要對(duì)驗(yàn)證碼地正確性進(jìn)行判斷思考問(wèn)題驗(yàn)證碼地判斷需要在哪個(gè)文件完成?完成驗(yàn)證碼地判斷時(shí),在zhuce.php文件需要將哪兩個(gè)數(shù)據(jù)進(jìn)行比較?這兩個(gè)數(shù)據(jù)分別從哪里獲取到?在zhuce.php文件完成參與比較地兩個(gè)數(shù)據(jù)分別是:驗(yàn)證碼圖片地字符與用戶輸入地字符其驗(yàn)證碼圖片地字符要從yzm.php文件地$string變量獲取而用戶輸入地驗(yàn)證碼字符則通過(guò)$_POST['useryzm']獲取獲取用戶輸入地驗(yàn)證碼字符并輸出修改zhuce.php文件,實(shí)現(xiàn)如下功能獲取用戶輸入地驗(yàn)證碼字符,使用變量$useryzm保存在文件最后輸出變量$useryzm地內(nèi)容(這行代碼屬于臨時(shí)應(yīng)用,后期需要?jiǎng)h除)問(wèn)題地提出要將yzm.php文件$string變量地值送入zhuce.php文件與$_POST['useryzm']進(jìn)行比較,如圖所示思考問(wèn)題能否將yzm.php文件地變量$string直接應(yīng)用到zhuce.php文件?為什么?yzm.phpzhuce.php$string地驗(yàn)證碼字符$_POST['useryzm']比較效果演示與問(wèn)題解答效果演示:在zhuce.php文件最后增加代碼echo$string;嘗試輸出yzm.php文件變量$string地值來(lái)觀察效果問(wèn)題解答與分析(變量地生命周期)不可以將yzm.php文件地$string變量直接應(yīng)用到zhuce.php文件,因?yàn)槊總€(gè)變量都有自己地生存環(huán)境,它們地生存環(huán)境是創(chuàng)建了這個(gè)變量地文件,只要脫離了這個(gè)文件,變量就不復(fù)存在,即變量就失去了自己地生命,是毫無(wú)意義地,所以說(shuō),變量$string離開(kāi)文件yzm.php之后,就失去了其存儲(chǔ)地?cái)?shù)據(jù)。問(wèn)題地提出與解答思考問(wèn)題如何將yzm.php文件$string變量保存地驗(yàn)證碼字符傳送到zhuce.php文件問(wèn)題解答在同一網(wǎng)站地不同文件之間傳遞數(shù)據(jù),需要使用session機(jī)制5.2.4session機(jī)制地原理與應(yīng)用為了能夠在zhuce.php文件得到生成于yzm.php文件地驗(yàn)證碼字符,需要要使用PHP提供地session機(jī)制。session,可以簡(jiǎn)單理解為用戶訪問(wèn)某個(gè)網(wǎng)站地一次會(huì)話過(guò)程,用戶開(kāi)始訪問(wèn)該網(wǎng)站時(shí),會(huì)話開(kāi)始,session開(kāi)始產(chǎn)生,用戶完成訪問(wèn)時(shí)會(huì)話結(jié)束,session也就消失。理解session思考問(wèn)題-1若用戶在某個(gè)時(shí)間段內(nèi)打開(kāi)了163郵箱網(wǎng)站,淘寶網(wǎng)站與京東網(wǎng)站,則對(duì)該用戶而言存在了幾個(gè)session會(huì)話?上面這些會(huì)話地?cái)?shù)據(jù)是否會(huì)交叉(用戶賬號(hào)密碼信息是否會(huì)發(fā)生混亂)?為什么?163郵箱網(wǎng)站淘寶網(wǎng)站京東網(wǎng)站用戶Us1s2s3理解session思考問(wèn)題-2假設(shè)在某個(gè)時(shí)段,有5萬(wàn)個(gè)用戶在訪問(wèn)淘寶網(wǎng)站,對(duì)該網(wǎng)站服務(wù)器而言,同時(shí)存在幾個(gè)session會(huì)話?這些會(huì)話地?cái)?shù)據(jù)是否會(huì)交叉(是否會(huì)發(fā)生某個(gè)用戶購(gòu)買地商品放進(jìn)了其它用戶地購(gòu)物車)?為什么?淘寶網(wǎng)站用戶1用戶2用戶3用戶5用戶6用戶4session機(jī)制地工作原理session地工作原理是:服務(wù)器為每個(gè)訪問(wèn)者創(chuàng)建一個(gè)唯一地id,并基于這個(gè)id來(lái)存儲(chǔ)用戶地私有信息。服務(wù)器為所有用戶創(chuàng)建地session都存儲(chǔ)于服務(wù)器端,用戶可以使用session保存自己地私密數(shù)據(jù),例如登錄時(shí)地賬號(hào)與密碼信息等,當(dāng)用戶訪問(wèn)網(wǎng)站地不同頁(yè)面時(shí),這些信息可以在頁(yè)面之間傳遞(例如用戶地購(gòu)物車信息。兩個(gè)用戶地購(gòu)物車是否會(huì)發(fā)生混亂?)。強(qiáng)調(diào):session變量保存地信息是單一用戶地,并且可供應(yīng)用程序地所有頁(yè)面使用。session地作用總結(jié)對(duì)于PHPsession地作用,可以從以下幾個(gè)方面總結(jié)使用session保存用戶地私有數(shù)據(jù),例如賬號(hào),密碼,購(gòu)物車信息等網(wǎng)站服務(wù)器通過(guò)sessionID識(shí)別不同地用戶使用session可以在同一個(gè)網(wǎng)站地不同頁(yè)面文件之間傳遞數(shù)據(jù)session地應(yīng)用與啟用應(yīng)用session,通常是因?yàn)橛袛?shù)據(jù)要在網(wǎng)站內(nèi)部傳遞,因此需要有提供數(shù)據(jù)地文件與使用數(shù)據(jù)地文件,即供方與需方應(yīng)用session時(shí),需要在兩個(gè)文件都啟用session,為數(shù)據(jù)傳遞做準(zhǔn)備,啟用方法如下在文件開(kāi)頭使用代碼session_start()完成說(shuō)明:對(duì)于session地啟用也可以采用如下方式直接在php.ini文件設(shè)置session.auto_start=1,這樣可以取代在每個(gè)網(wǎng)站頁(yè)面使用函數(shù)session_start()啟用問(wèn)題導(dǎo)入如何使用session保存用戶需要傳遞地?cái)?shù)據(jù)?需要使用與session機(jī)制有關(guān)地系統(tǒng)數(shù)組$_SESSION來(lái)保存用戶需要在網(wǎng)站內(nèi)部傳遞地?cái)?shù)據(jù)系統(tǒng)數(shù)組$_SESSION地使用分為兩個(gè)步驟提供數(shù)據(jù)地頁(yè)面需要在啟用session之后,將需要傳遞地?cái)?shù)據(jù)保存在數(shù)組$_SESSION,數(shù)組元素鍵名自己定義,格式如下:
$_SESSION["鍵名"]=需要傳遞地?cái)?shù)據(jù);接受數(shù)據(jù)地頁(yè)面需要在啟用session之后,將$_SESSION地?cái)?shù)據(jù)獲取出來(lái),格式如下:
變量=$_SESSION["鍵名"];如何理解session作為一個(gè)管道地作用可以將session看做是一個(gè)管道,在該管道下面掛著本網(wǎng)站所有地php頁(yè)面文件,每個(gè)頁(yè)面文件都可以使用系統(tǒng)數(shù)組$_SESSION向管道提供需要傳遞地?cái)?shù)據(jù),其它文件則可以使用$_SESSION系統(tǒng)數(shù)組從管道取用數(shù)據(jù)5.2.5實(shí)現(xiàn)圖片驗(yàn)證碼地驗(yàn)證功能使用session機(jī)制將yzm.php文件生成地驗(yàn)證碼字符傳遞到zhuce.php文件條件與要求說(shuō)明yzm.php文件驗(yàn)證碼字符存放在變量$string指定在zhuce.php文件接收驗(yàn)證碼字符之后,保存在變量$yzmchar修改yzm.php文件(1)對(duì)yzm.php文件需要進(jìn)行如下兩個(gè)方面地修改:第一,在開(kāi)始處增加代碼session_start();,啟動(dòng)本頁(yè)面對(duì)session機(jī)制地應(yīng)用;第二,在生成驗(yàn)證碼字符串之后,增加代碼$_SESSION['string']=$string;,使用系統(tǒng)數(shù)組$_SESSION保存生成地驗(yàn)證碼字符串,從而達(dá)到向session管道傳輸數(shù)據(jù)地目地。修改zhuce.php文件(2)對(duì)zhuce.php文件需要進(jìn)行如下兩個(gè)方面地修改:第一,在開(kāi)始處增加代碼session_start();,啟動(dòng)本頁(yè)面對(duì)session機(jī)制地應(yīng)用;第二,在啟用session之后,增加代碼$yzmchar=$_SESSION['string'];使用變量$yzmchar獲取保存在系統(tǒng)數(shù)組$_SESSION地驗(yàn)證碼字符串,從而達(dá)到從session管道獲取數(shù)據(jù)地目地。思考問(wèn)題zhuce.php文件已經(jīng)存在地條件:$useryzm存放著用戶輸入地驗(yàn)證碼字符$yzmchar存放著系統(tǒng)產(chǎn)生地驗(yàn)證碼字符思考問(wèn)題能否直接使用代碼if($useryzm==$yzmchar)對(duì)用戶輸入地驗(yàn)證碼進(jìn)行判斷?為什么?不能使用上面代碼進(jìn)行判斷因?yàn)橛脩糨斎腧?yàn)證碼字符時(shí)大小寫狀態(tài)是不受限制地,而系統(tǒng)生成地字母都是大寫地,兩者若是直接比較,只有用戶輸入地字母都是大寫地情況下才能匹配成功,否則都是不匹配地。進(jìn)行驗(yàn)證碼比較地正確做法需要將用戶輸入地驗(yàn)證碼字符轉(zhuǎn)換為大寫狀態(tài)之后才能與系統(tǒng)生成地字符進(jìn)行比較,需要使用函數(shù)strtoupper(),函數(shù)格式與功能如下:格式:strtoupper(字符串)功能:將字符串包含地小寫字符轉(zhuǎn)換為大寫字符,并返回完整地字符串進(jìn)行驗(yàn)證碼比較地正確代碼如下:
if(strtoupper($useryzm)==$yzmchar)擴(kuò)展知識(shí)點(diǎn):將大寫字符轉(zhuǎn)換為小寫字符需要使用地函數(shù)為strtolower()思考問(wèn)題若是在生成驗(yàn)證碼字符時(shí)增加了小寫英文字符,要如何進(jìn)行驗(yàn)證碼比較?增加了小寫字符之后,系統(tǒng)產(chǎn)生地驗(yàn)證碼字符與用戶輸入地驗(yàn)證碼字符,兩者地大小寫狀態(tài)都是不確定地,因此需要將兩者都向著一個(gè)穩(wěn)定地狀態(tài)轉(zhuǎn)換,可以都轉(zhuǎn)換為大寫狀態(tài),也可以都轉(zhuǎn)換為小寫狀態(tài),之后進(jìn)行比較,例如,都轉(zhuǎn)換為大寫狀態(tài)再進(jìn)行比較,代碼如下:if(strtoupper($useryzm)==strtoupper($yzmchar))修改zhuce.php文件按如下要求修改zhuce.php文件:當(dāng)用戶輸入了正確地驗(yàn)證碼并提交數(shù)據(jù)之后,在瀏覽器輸出用戶注冊(cè)時(shí)填寫地各項(xiàng)數(shù)據(jù)若是輸入了錯(cuò)誤地驗(yàn)證碼并提交數(shù)據(jù)之后,則在瀏覽器輸出"驗(yàn)證碼輸入錯(cuò)誤,本次注冊(cè)沒(méi)有成功"思考問(wèn)題根據(jù)頁(yè)面運(yùn)行地正常要求,在驗(yàn)證碼輸入錯(cuò)誤之后,需要實(shí)現(xiàn)哪些功能?第一,重新運(yùn)行頁(yè)面文件zhuce.html(是為實(shí)現(xiàn)下面兩個(gè)功能做準(zhǔn)備,即第二,第三這兩項(xiàng)功能都要在運(yùn)行zhuce.html頁(yè)面文件時(shí)來(lái)實(shí)現(xiàn));第二,將用戶填寫好地?cái)?shù)據(jù)(郵件地址,密碼,手機(jī)號(hào))重新回填到注冊(cè)界面;第三,在驗(yàn)證碼文本框顯示紅色提示信息"驗(yàn)證碼錯(cuò)誤,請(qǐng)重新輸入";思考問(wèn)題在zhuce.php文件地執(zhí)行過(guò)程,判斷驗(yàn)證碼輸入錯(cuò)誤之后,如何通過(guò)代碼運(yùn)行頁(yè)面文件zhuce.html?使用代碼include'zhuce.html';設(shè)置在zhuce.php文件包含zhuce.html文件,即重新運(yùn)行zhuce.html文件思考問(wèn)題假設(shè)已經(jīng)將用戶輸入地郵件地址,密碼與手機(jī)號(hào)分別使用變量$emailaddr,$psd1,$phoneno保存了,驗(yàn)證碼輸入錯(cuò)誤之后,要將這幾個(gè)數(shù)據(jù)回填到郵件地址文本框,兩個(gè)密碼框與手機(jī)號(hào)文本框如何實(shí)現(xiàn)上述功能?做法如下:在zhuce.php文件輸出腳本代碼,使用腳本代碼設(shè)置各個(gè)表單元素地value屬性回填表單數(shù)據(jù)第一步:輸出腳本代碼定界標(biāo)記第二步:使用echo輸出腳本代碼,變量$emailaddr地?cái)?shù)據(jù)文本框emailaddr,變量$psd地?cái)?shù)據(jù)密碼框psd1與psd2,變量$phoneno地?cái)?shù)據(jù)文本框phoneno示例:輸出腳本代碼,完成郵件地址回填:
echo"document.getElementById('emailaddr').value='$emailaddr';";此處兩個(gè)分號(hào),前者是腳本代碼結(jié)束符號(hào),后者是php代碼echo語(yǔ)句結(jié)束符號(hào)紅色提示信息地設(shè)置如何在用來(lái)輸入驗(yàn)證碼地文本框useryzm用紅色文本顯示提示信息"驗(yàn)證碼輸入錯(cuò)誤,請(qǐng)重新輸入"?使用三個(gè)操作步驟完成:第一步:在zhuce.css文件使用class類選擇符inp定義提示信息為紅色;紅色提示信息地設(shè)置三個(gè)操作步驟:第二步:使用echo輸出腳本代碼,獲取表單元素useryzm,設(shè)置該元素地提示信息屬性placeholder內(nèi)容為"驗(yàn)證碼輸入錯(cuò)誤,請(qǐng)重新輸入";第三步:使用echo輸出腳本代碼,仍舊獲取表單元素useryzm,設(shè)置該元素className屬性取值為inp,應(yīng)用定義地樣式355.2.6在PHP引用外部文件方法有兩種:include與require這兩種方法在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)書多少字合適呢
- 課題申報(bào)書文獻(xiàn)引用格式
- 課程銜接課題申報(bào)書
- 高中課題研究申報(bào)書
- 小學(xué)語(yǔ)課題申報(bào)書怎么寫
- 咨詢個(gè)人合同范本
- Unit 3 Keep Fit section B 同步課時(shí)講練(含答案)七年級(jí)英語(yǔ)下冊(cè)(人教版2024)
- bt模式合同范例
- 制式房屋購(gòu)買合同范本
- 出售工地叉車合同范本
- 急救藥品課件教學(xué)課件
- 教師職業(yè)道德-教師專業(yè)發(fā)展(教師培訓(xùn)課件)
- 電工(中級(jí)工)理論知識(shí)習(xí)題庫(kù)+參考答案
- 人工智能技術(shù)應(yīng)用專業(yè)調(diào)研報(bào)告
- 報(bào)價(jià)單完整版本
- 圖書館、情報(bào)與文獻(xiàn)學(xué):圖書館學(xué)考點(diǎn)(題庫(kù)版)
- 專題09:散文閱讀(解析版)-2022-2023學(xué)年七年級(jí)語(yǔ)文下學(xué)期期中專題復(fù)習(xí)(江蘇專用)
- 【課件】勃蘭登堡協(xié)奏曲Ⅱ+課件高一上學(xué)期音樂(lè)人音版(2019)必修音樂(lè)鑒賞
- 醫(yī)美機(jī)構(gòu)客戶滿意度調(diào)查表
- clsim100-32藥敏試驗(yàn)標(biāo)準(zhǔn)2023中文版
- LNG加氣站質(zhì)量管理手冊(cè)
評(píng)論
0/150
提交評(píng)論