欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP+Ajax實現(xiàn)驗證碼的實時驗證

 更新時間:2016年07月20日 14:44:16   作者:hhhzua  
這篇文章主要為大家詳細(xì)介紹了PHP+Ajax實現(xiàn)驗證碼的實時驗證,感興趣的小伙伴們可以參考一下

PHP的圖像處理功能強(qiáng)大,做一張驗證碼圖片也是非常簡單的,但是,在實現(xiàn)實時驗證時,確遇到了一個難題:
我用nat123對我的電腦上的網(wǎng)站進(jìn)行端口映射,實現(xiàn)了在外網(wǎng)訪問,本來是采用cookie的方式用js對驗證碼進(jìn)行驗證,但是經(jīng)檢驗發(fā)現(xiàn)nat123雖然使我的網(wǎng)站可以通過一個自定義的網(wǎng)址進(jìn)行訪問,但是產(chǎn)生驗證碼的php文件在網(wǎng)絡(luò)上的位置竟然和其它頁面不在一個域,經(jīng)查詢得知,因為輸出圖片的緣故,被作為緩存文件映射在了某個文件夾內(nèi),所以——其他頁面在我的網(wǎng)址下,產(chǎn)生驗證碼的頁面又在另一個網(wǎng)址里,所以它們的cookie不能共用,不管怎么設(shè)置path和domain都不管用,于是我只好采用session存儲驗證碼了,因為session存在于服務(wù)器,也就是在我本地網(wǎng)址中都可以存取。
接下來是重頭戲,之前只是粗略了解過ajax,對于它的用途和特性還是知道的,獲取后臺來的數(shù)據(jù)這個比較泛泛的概念具體的使用起來就不知道如何下手了。
首先,我分析了個例題的代碼,用途是獲取后臺的一個文本文件的內(nèi)容:

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!");
  }
}

其中的關(guān)鍵是:

  request.open("GET","TEST.txt",true);
    request.onreadystateschange =function(){
      alert(request.responseText);
    }

這三句指定了GET請求發(fā)向的頁面和XMLHttpRequest對象送回響應(yīng)的時候觸發(fā)的處理函數(shù),而數(shù)據(jù)正是通過request.responseText獲取的。

--------------------------------------------------------------------------------

可是我要獲取的數(shù)據(jù)是后臺php文件產(chǎn)生的驗證碼,怎么讓后臺發(fā)送驗證碼?
無論GET還是POST方式都是把數(shù)據(jù)發(fā)送到后臺,ajax從哪里取回后臺的數(shù)據(jù)呢?
百思不得其解之下,我又查詢了另一本資料,找到一個示例:
其中XMLHttpRequest對象送回響應(yīng)的處理語句是:

request.onreadystateschange=alertContent;
function alertContent(){
...
  alert(request.responseText);
...
}

請求的文件為check.php
其中有這么幾句條件輸出:

if($info){
  echo "你的用戶名可以使用";
}else {
  echo "該用戶名已被注冊";
}

而運(yùn)行實例效果圖中赫然在靜態(tài)頁面彈出消息框,內(nèi)容如check.php頁面的輸出?。?!
也就是說ajax能請求到一個php頁面的輸出內(nèi)容,于是,接下來簡單多了,因為圖片也是驗證碼頁面的輸出,所以不能直接ajax驗證碼頁面,不然就把圖片的數(shù)據(jù)也獲取了。
新建一個php頁面:

sission_start();
$code="";
if(!empty($_session['check']))$code=$_session['check'];
echo $code;

再在前端用ajax向這個頁面GET一個請求,就能用request.responseText獲取驗證碼了。
然后把驗證過程封裝在一定條件觸發(fā)的函數(shù)里,即可實時驗證。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • PHP中cookie和session的區(qū)別實例分析

    PHP中cookie和session的區(qū)別實例分析

    這篇文章主要介紹了PHP中cookie和session的區(qū)別,比較詳盡的分析了二者從創(chuàng)建、運(yùn)用到清除的各個流程的注意事項,需要的朋友可以參考下
    2014-08-08
  • laravel 框架執(zhí)行流程與原理簡單分析

    laravel 框架執(zhí)行流程與原理簡單分析

    這篇文章主要介紹了laravel 框架執(zhí)行流程與原理,結(jié)合實例形式分析了laravel框架基本執(zhí)行流程、原理及相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • Laravel實現(xiàn)用戶注冊和登錄

    Laravel實現(xiàn)用戶注冊和登錄

    本文詳細(xì)給我們展示了使用Laravel實現(xiàn)用戶注冊和登錄的方法和步鄹,需要的朋友可以參考下
    2015-01-01
  • TP3.2.3框架文件上傳操作實例詳解

    TP3.2.3框架文件上傳操作實例詳解

    這篇文章主要介紹了TP3.2.3框架文件上傳操作,結(jié)合實例形式詳細(xì)分析了thinkPHP3.2.3框架文件上傳相關(guān)原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2020-01-01
  • CI框架中cookie的操作方法分析

    CI框架中cookie的操作方法分析

    這篇文章主要介紹了CI框架中cookie的操作方法,實例分析了CI框架操作cookie的三種常見方法,以及自定義擴(kuò)展核心控制器類的實例加以分析說明,非常具有實用價值的技巧,需要的朋友可以參考下
    2014-12-12
  • 深入淺析安裝PhpStorm并激活的步驟詳解

    深入淺析安裝PhpStorm并激活的步驟詳解

    這篇文章主要介紹了深入淺析安裝PhpStorm并激活的步驟詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 微信自定義菜單的處理開發(fā)示例

    微信自定義菜單的處理開發(fā)示例

    在微信5.0以前,自定義菜單是作為一種內(nèi)測資格使用的,只有少數(shù)公眾帳號擁有菜單,因此出現(xiàn)很多企業(yè)為了弄到菜單不惜重金求購?,F(xiàn)如今,一大批帳號從訂閱號轉(zhuǎn)為服務(wù)號,很多都是奔著自定義菜單去的。今天我們就來簡單研究下微信自定義菜單的處理。
    2015-04-04
  • thinkphp3.2同時連接兩個數(shù)據(jù)庫的簡單方法

    thinkphp3.2同時連接兩個數(shù)據(jù)庫的簡單方法

    這篇文章主要給大家介紹了關(guān)于thinkphp3.2同時連接兩個數(shù)據(jù)庫的簡單方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用thinkphp3.2具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 關(guān)于PHP遞歸算法和應(yīng)用方法介紹

    關(guān)于PHP遞歸算法和應(yīng)用方法介紹

    PHP作為開發(fā)動態(tài)頁面WEB的首選技術(shù),對于它的基礎(chǔ)知識我們一定要牢記,這讓才能有助于編程。我們一起來看看PHP遞歸算法是怎么回事吧
    2013-04-04
  • php中smarty實現(xiàn)多模版網(wǎng)站的方法

    php中smarty實現(xiàn)多模版網(wǎng)站的方法

    這篇文章主要介紹了php中smarty實現(xiàn)多模版網(wǎng)站的方法,可實現(xiàn)smarty動態(tài)選擇模板的功能,需要的朋友可以參考下
    2015-06-06

最新評論