這篇文章將為大家詳細講解有關怎么在PHP中利用Ajax實現一個驗證碼功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
function getHTTPObject(){
if(typedef XMLHttpRequest == "undefined")
XMLHttpRequest = function(){
try{ return new ActiveXObject("Msxml2.XMLHTTP.6.0");}
catch(e){}
try{ return new ActiveXObject("Msxml2.XMLHTTP.3.0");}
catch(e){}
try{ return new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){}
return false;
}
return new XMLHttpRequest();
}
function getNewContent(){
var request = getHTTPObject();
if(request){
request.open("GET","TEST.txt",true);
request.onreadystateschange = function(){
alert(request.responseText);
}
}else{
alert("no support XMLHttpRequest!");
}
}其中的關鍵是:
request.open("GET","TEST.txt",true);
request.onreadystateschange =function(){
alert(request.responseText);
}這三句指定了GET請求發向的頁面和XMLHttpRequest對象送回響應的時候觸發的處理函數,而數據正是通過request.responseText獲取的。
--------------------------------------------------------------------------------
可是我要獲取的數據是后臺php文件產生的驗證碼,怎么讓后臺發送驗證碼?
無論GET還是POST方式都是把數據發送到后臺,ajax從哪里取回后臺的數據呢?
百思不得其解之下,我又查詢了另一本資料,找到一個示例:
其中XMLHttpRequest對象送回響應的處理語句是:
request.onreadystateschange=alertContent;
function alertContent(){
...
alert(request.responseText);
...
}請求的文件為check.php
其中有這么幾句條件輸出:
if($info){
echo "你的用戶名可以使用";
}else {
echo "該用戶名已被注冊";
}而運行實例效果圖中赫然在靜態頁面彈出消息框,內容如check.php頁面的輸出?。?!
也就是說ajax能請求到一個php頁面的輸出內容,于是,接下來簡單多了,因為圖片也是驗證碼頁面的輸出,所以不能直接ajax驗證碼頁面,不然就把圖片的數據也獲取了。
新建一個php頁面:
sission_start(); $code=""; if(!empty($_session['check']))$code=$_session['check']; echo $code;
再在前端用ajax向這個頁面GET一個請求,就能用request.responseText獲取驗證碼了。
然后把驗證過程封裝在一定條件觸發的函數里,即可實時驗證。
關于怎么在PHP中利用Ajax實現一個驗證碼功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。