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

thinkphp3.2點擊刷新生成驗證碼

 更新時間:2016年02月16日 15:34:55   投稿:lijiao  
這篇文章主要介紹了thinkphp3.2點擊刷新生成驗證碼的相關(guān)資料,需要的朋友可以參考下

再介紹thinkphp3.2驗證碼的使用方法之前,先為大家詳細(xì)介紹ThinkPHP 驗證碼,具體內(nèi)容如下

ThinkPHP 內(nèi)置了驗證碼的支持,可以直接使用。要使用驗證碼,需要導(dǎo)入擴(kuò)展類庫中的 ORG.Util.Image 類庫和 ORG.Util.String 類庫。
驗證碼方法
我們通過在在模塊類中增加一個 verify 方法來用于顯示驗證碼,最簡單的例子:

Public function verify(){
  // 導(dǎo)入Image類庫
  import("ORG.Util.Image");
  Image::buildImageVerify();
}

import 方法是 ThinkPHP 內(nèi)置的類庫和文件導(dǎo)入方法,上例導(dǎo)入的文件為 ThinkPHP 系統(tǒng)目錄下 Lib/ORG/Util/Image.class.php 文件。如果已經(jīng)將 Image 類庫拷貝到了當(dāng)前項目下,如 Lib/ORG 下,則可以以:

import("@.Util.Image");

import 方法是 ThinkPHP 內(nèi)置的類庫和文件導(dǎo)入方法,上例導(dǎo)入的文件為 ThinkPHP 系統(tǒng)目錄下 Lib/ORG/Util/Image.class.php 文件。
訪問驗證碼
可以直接在瀏覽器里訪問該驗證碼方法以確定驗證碼是否能正常顯示:
http://127.0.0.1/index.php/Public/verify
如果一切正常,顯示驗證碼如下所示:

表單中使用驗證碼
在表單頁面中使用驗證碼,是以 html img標(biāo)簽 來調(diào)用:

<input type="text" name="verify">
<img id="verifyImg" src="-Article-verify" onClick="changeVerify()" title="點擊刷新驗證碼" />

src 屬性值即為驗證碼方法訪問地址,視實際情況不同而不同。
驗證碼刷新
當(dāng)點擊驗證碼圖片時,觸發(fā) JavaScript changeVerify() 函數(shù)重新讀取驗證碼,從而實現(xiàn)驗證碼刷新。該函數(shù)參考如下:

<script language="JavaScript">
function changeVerify(){
 var timenow = new Date().getTime();
 document.getElementById('verifyImg').src='-Article/verify/'+timenow; 
}
</script>

驗證碼驗證
在調(diào)用驗證碼 verify 的時候,buildImageVerify 會記錄本次驗證碼的 MD5 信息。在表單驗證操作里,以如下方法來檢查驗證碼是否正確:

if($_SESSION['verify'] != md5($_POST['verify'])) {
  $this->error('驗證碼錯誤!');
}

其中 $_SESSION['verify'] 中的 verify 名稱為 buildImageVerify 方法默認(rèn) SESSION 注冊名稱,具體見 buildImageVerify 語法。
上面例子演示了最簡單的 ThinkPHP 驗證碼的使用方法。上面的例子驗證碼是 4 位數(shù)字,如果想使用更多風(fēng)格的驗證碼以及中文驗證碼,參見本節(jié)其余部分內(nèi)容:《ThinkPHP 使用不同風(fēng)格及中文的驗證碼》。
驗證碼不顯示原因
如下發(fā)現(xiàn)無法顯示驗證碼,可能的原因如下:
1、PHP 是否已經(jīng)安裝 GD 庫支持。
2、輸出之前是否有任何的輸出(尤其是 UTF8 的 BOM 頭信息輸出)。
3、Image 類庫是否正確導(dǎo)入。
4、如果是表單頁面,請查看是否正確調(diào)用了驗證碼顯示方法。

下面就為大家介紹 thinkphp3.2 驗證碼生成和點擊刷新驗證碼的實現(xiàn)方法,具體內(nèi)容如下

一、實例化生成驗證碼的類(該方法放到IndexController里面便于訪問)

/** 
 * 
 * 驗證碼生成 
 */ 
public function verify_c(){ 
  $Verify = new \Think\Verify(); 
  $Verify->fontSize = 18; 
  $Verify->length  = 4; 
  $Verify->useNoise = false; 
  $Verify->codeSet = '0123456789'; 
  $Verify->imageW = 130; 
  $Verify->imageH = 50; 
  //$Verify->expire = 600; 
  $Verify->entry(); 
} 

二、前臺需要生成驗證碼的圖片src屬性指向

<p class="top15 captcha" id="captcha-container"> 
 <input name="verify" width="50%" height="50" class="captcha-text" placeholder="驗證碼" type="text">         
 <img width="30%" class="left15" height="50" alt="驗證碼" src="{:U('Home/Index/verify_c',array())}" title="點擊刷新"> 
</p> 

三、寫完上面的后,頁面初始化的驗證碼就可以出現(xiàn)了,下面要寫的就是點擊驗證碼圖片后,刷新出新的驗證碼圖片(通過jquery修改圖片的src屬性來完成,請求的處理函數(shù)一樣,只是在請求后加一個隨機(jī)數(shù),區(qū)別上一張圖片的請求)

// 驗證碼生成 
var captcha_img = $('#captcha-container').find('img') 
var verifyimg = captcha_img.attr("src"); 
captcha_img.attr('title', '點擊刷新'); 
captcha_img.click(function(){ 
  if( verifyimg.indexOf('?')>0){ 
    $(this).attr("src", verifyimg+'&random='+Math.random()); 
  }else{ 
    $(this).attr("src", verifyimg.replace(/\?.*$/,'')+'?'+Math.random()); 
  } 
}); 

四、校驗驗證碼輸入是否正確
a.在common目錄下的function.php里加入全局函數(shù)

/** 
 * 驗證碼檢查 
 */ 
function check_verify($code, $id = ""){ 
  $verify = new \Think\Verify(); 
  return $verify->check($code, $id); 
} 

b.在表單提交的controller對應(yīng)的處理方法里添加檢查代碼

// 檢查驗證碼 
$verify = I('param.verify',''); 
if(!check_verify($verify)){ 
  $this->error("親,驗證碼輸錯了哦!",$this->site_url,9); 
} 

到此tp3.2驗證碼的使用就可以了。
補(bǔ)充:我在寫的時候?qū)⑺牡腷步驟放到一個ajax里驗證,返回一次檢驗結(jié)果。然后再依據(jù)返回結(jié)果確定是否要提交表單,但是在驗證碼通過第一次的校驗后,第二次的就不可以了,目前還沒想明白原因。

這就是本文的全部內(nèi)容,文章最后還有一個小小的疑問,希望大家可以想出解決辦法,也希望本文對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • PHP入門教程之字符串處理技巧總結(jié)(轉(zhuǎn)換,過濾,解析,查找,截取,替換等)

    PHP入門教程之字符串處理技巧總結(jié)(轉(zhuǎn)換,過濾,解析,查找,截取,替換等)

    這篇文章主要介紹了PHP入門教程之字符串處理技巧,結(jié)合實例形式總結(jié)分析了php針對字符串的刪除空格、特殊字符轉(zhuǎn)換、過濾、解析、分割、查找、截取、替換、獲取、判斷、計算等操作技巧,需要的朋友可以參考下
    2016-09-09
  • 洪恩在線成語詞典小偷程序php版

    洪恩在線成語詞典小偷程序php版

    去年在學(xué)習(xí)用php做小偷程序時的一個練習(xí)之作,希望能給有同樣需求的朋友帶來些幫助,程序主要流程是獲取洪恩在線的成語詞典查詢結(jié)果并在當(dāng)前頁面顯示出來(俗稱小偷程序),使用語言為php
    2012-04-04
  • PHP簡潔函數(shù)(PHP簡單明了函數(shù)語法)

    PHP簡潔函數(shù)(PHP簡單明了函數(shù)語法)

    筆者由于碰到用戶多次修改頁面,所以在麻煩的情況下,改用php完成技術(shù)開發(fā),這篇文章主要記錄PHP簡潔函數(shù),講述PHP簡單明了函數(shù)語法,適合人群為對開源社區(qū)感興趣,對php感興趣,有一點時間了解下php,希望對讀者帶來快樂
    2012-06-06
  • php實現(xiàn)登陸模塊功能示例

    php實現(xiàn)登陸模塊功能示例

    這篇文章主要介紹了php實現(xiàn)登陸模塊的方法,結(jié)合實例形式分析了php實現(xiàn)登陸功能的步驟與相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • PHP實現(xiàn)的限制IP投票程序IP來源分析

    PHP實現(xiàn)的限制IP投票程序IP來源分析

    這篇文章主要介紹了PHP實現(xiàn)的限制IP投票程序,針對投票程序中客戶端IP的判斷方法進(jìn)行了深入分析,并給出了偽造IP的方法供大家參考了解,需要的朋友可以參考下
    2016-05-05
  • php 文件緩存函數(shù)

    php 文件緩存函數(shù)

    php 文件緩存函數(shù),需要的朋友可以參考下。
    2011-10-10
  • 8個PHP數(shù)組面試題

    8個PHP數(shù)組面試題

    這篇文章主要介紹了8個PHP數(shù)組面試題,例如寫函數(shù)創(chuàng)建長度為10的數(shù)組,數(shù)組中的元素為遞增的奇數(shù),首項為1、創(chuàng)建長度為10的數(shù)組,數(shù)組中的數(shù)為遞增的等比數(shù),比值為3,首項為等題目,需要的朋友可以參考下
    2015-06-06
  • PHP實現(xiàn)將Word文件保存到SQL Server數(shù)據(jù)庫

    PHP實現(xiàn)將Word文件保存到SQL Server數(shù)據(jù)庫

    這篇文章主要介紹了如何利用PHP實現(xiàn)將上傳的Word文件保存到SQL Server數(shù)據(jù)庫,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-02-02
  • php中return的用法實例分析

    php中return的用法實例分析

    這篇文章主要介紹了php中return的用法,實例分析了php中return的功能及常見的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • PHP微信支付結(jié)果通知與回調(diào)策略分析

    PHP微信支付結(jié)果通知與回調(diào)策略分析

    這篇文章主要介紹了PHP微信支付結(jié)果通知與回調(diào)策略,結(jié)合實例形式分析了php微信支付結(jié)果的回調(diào)處理相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01

最新評論