成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP+Ajax實現驗證碼的實時驗證
全站頭部文字 我要出現在這里
PHP+Ajax實現驗證碼的實時驗證 769 2024-01-29   

PHP的圖像處理功能強大,做一張驗證碼圖片也是非常簡單的,但是,在實現實時驗證時,確遇到了一個難題:
我用nat123對我的電腦上的網站進行端口映射,實現了在外網訪問,本來是采用cookie的方式用js對驗證碼進行驗證,但是經檢驗發現nat123雖然使我的網站可以通過一個自定義的網址進行訪問,但是產生驗證碼的php文件在網絡上的位置竟然和其它頁面不在一個域,經查詢得知,因為輸出圖片的緣故,被作為緩存文件映射在了某個文件夾內,所以——其他頁面在我的網址下,產生驗證碼的頁面又在另一個網址里,所以它們的cookie不能共用,不管怎么設置path和domain都不管用,于是我只好采用session存儲驗證碼了,因為session存在于服務器,也就是在我本地網址中都可以存取。
接下來是重頭戲,之前只是粗略了解過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獲取驗證碼了。
然后把驗證過程封裝在一定條件觸發的函數里,即可實時驗證。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持綠夏網。



主站蜘蛛池模板: 黄视频在线免费| 《两座山》俄剧| 误判电影什么时候上映| 嗯~啊~快点死我男男视频| 小马宝莉名字对照图片| 在线观看xx| 美女绳奴隶| 儿子结婚请帖邀请函电子版| 我的父亲是板凳 电视剧| 我的孩子我的家三观尽毁| 变形金刚1免费完整版在线观看 | 世界赋予我的 二声部合唱谱| 欢乐的牧童钢琴谱| 李修蒙出生年月| 番金连| 汪俊个人资料简介| 地理填充图册| 李洋演员个人简介图片| teen porn| 都市频道节目表| 电影《地狱天堂》鬼片| 热带夜| 维京人电影| 北京 北京 汪峰歌曲| 社会主义道德原则| 欧美日韩欧美日韩| 雪狐影视| 男生变女生tg动画变身| 电影《重生》| 电影百度百科| 能哥| 电视剧《繁华》免费观看全集| 美女污视频网站| 刘禹| 吻胸摸激情床激烈视频| 肉丸3| 女生宿舍2在线| 白事专用歌曲100首| 陈诗雅韩国| 龙的传人第四季| 冲出堕落城完整高清版|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103