最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

thinkphp3.2點(diǎn)擊刷新生成驗(yàn)證碼

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

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

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

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)前項(xiàng)目下,如 Lib/ORG 下,則可以以:

import("@.Util.Image");

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

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

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

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

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

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

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

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

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

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

/** 
 * 
 * 驗(yàn)證碼生成 
 */ 
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(); 
} 

二、前臺(tái)需要生成驗(yàn)證碼的圖片src屬性指向

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • php數(shù)組轉(zhuǎn)成json格式的方法

    php數(shù)組轉(zhuǎn)成json格式的方法

    這篇文章主要介紹了php數(shù)組轉(zhuǎn)成json格式的方法,實(shí)例分析了php操作數(shù)組及json格式數(shù)據(jù)的方法,需要的朋友可以參考下
    2015-03-03
  • php內(nèi)嵌函數(shù)用法實(shí)例

    php內(nèi)嵌函數(shù)用法實(shí)例

    這篇文章主要介紹了php內(nèi)嵌函數(shù)用法,實(shí)例分析了php內(nèi)嵌函數(shù)的調(diào)用方法與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • php判斷是否為ajax請(qǐng)求的方法

    php判斷是否為ajax請(qǐng)求的方法

    這篇文章主要介紹了php判斷是否為ajax請(qǐng)求的方法,結(jié)合實(shí)例形式分析了ajax請(qǐng)求的原理及后臺(tái)針對(duì)ajax請(qǐng)求的判斷技巧,需要的朋友可以參考下
    2016-11-11
  • php批量縮放圖片的代碼[ini參數(shù)控制]

    php批量縮放圖片的代碼[ini參數(shù)控制]

    php有專門處理圖片的函數(shù),對(duì)于一些要求較高的圖片縮放,php也能做到。
    2011-02-02
  • PHP實(shí)現(xiàn)表單提交時(shí)去除斜杠的方法

    PHP實(shí)現(xiàn)表單提交時(shí)去除斜杠的方法

    這篇文章主要介紹了PHP實(shí)現(xiàn)表單提交時(shí)去除斜杠的方法,涉及php針對(duì)頁面表單提交元素過濾操作的相關(guān)技巧,需要的朋友可以參考下
    2016-12-12
  • PHP輸出時(shí)間差函數(shù)代碼

    PHP輸出時(shí)間差函數(shù)代碼

    在學(xué)習(xí)PHP 的時(shí)候,經(jīng)常會(huì)用到獲取現(xiàn)在之前或之后,某個(gè)時(shí)間段的日期。現(xiàn)在已經(jīng)進(jìn)行收集,大家同時(shí)也可以進(jìn)行擴(kuò)展豐富
    2013-01-01
  • yii框架源碼分析之創(chuàng)建controller代碼

    yii框架源碼分析之創(chuàng)建controller代碼

    我們可以看到有時(shí)會(huì)使用protected目錄下的controller,有時(shí)會(huì)使用module中controller,具體是如何處理的呢,請(qǐng)看如下的分析
    2011-06-06
  • php隨機(jī)取mysql記錄方法小結(jié)

    php隨機(jī)取mysql記錄方法小結(jié)

    這篇文章主要介紹了php隨機(jī)取mysql記錄方法,實(shí)例分析了幾種常見的隨機(jī)獲取mysql數(shù)據(jù)的方法,是非常實(shí)用的技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • Zend Framework中的簡(jiǎn)單工廠模式 圖文

    Zend Framework中的簡(jiǎn)單工廠模式 圖文

    某天又然后想到好久沒復(fù)習(xí)設(shè)計(jì)模式了。綜合一下,復(fù)習(xí)一個(gè)設(shè)計(jì)模式之后在ZF中找一下使用這模式的源碼吧,不讀所有源碼,讀讀比較”高級(jí)”的部分吧,要說模式,暫時(shí)不知道是不是所有模式ZF里面都有,但是應(yīng)該有足夠的模式夠我最近看了,在說可以找找其他開源的軟件來找模式
    2012-07-07
  • thinkphp5.1 框架鉤子和行為用法實(shí)例分析

    thinkphp5.1 框架鉤子和行為用法實(shí)例分析

    這篇文章主要介紹了thinkphp5.1 框架鉤子和行為用法,結(jié)合實(shí)例形式分析了thinkphp5.1 框架鉤子和行為基本功能、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05

最新評(píng)論

册亨县| 鄢陵县| 永仁县| 林芝县| 崇左市| 黑水县| 丹阳市| 沙坪坝区| 旅游| 合水县| 汉沽区| 灵山县| 正定县| 康平县| 纳雍县| 关岭| 乌审旗| 平昌县| 弥勒县| 繁峙县| 繁昌县| 施秉县| 仁寿县| 滨海县| 永定县| 建宁县| 合江县| 岑巩县| 吴川市| 清丰县| 甘南县| 馆陶县| 香港 | 当阳市| 贵港市| 蒙城县| 深州市| 玛多县| 宁阳县| 西青区| 东莞市|