thinkphp5.0.3的驗證碼相比,thinkphp3,2,3,我覺得好用的多了,因為我下載的是thinkphp5.0.3核心板,為了
以后使用方便,我再次從官網下載了thinkphp5.0.2完整版,之后把think5.0.2下面的真個vendor問價夾拷貝到了
thinkphp5.0.3版本中,當然也可以用什么下載什么,我為了省事就直接拷貝了
第一步:使用驗證碼,
<img id="code_img" align="top" src="{:captcha_src()}" title="點擊切換驗證碼"> //這樣就可以了
//jquery 點擊改變驗證碼寫法
$('#code_img').click(function() {
var imgUrl = "{:captcha_src()}" //這種寫法,我發現除了谷歌瀏覽都不好使,請看下面補充說明
$(this).attr('src', imgUrl);
});
第二步:配置驗證碼,
config.php文件數組中加入驗證碼配置
//分頁配置
'paginate' => [
'type' => 'bootstrap',
'var_page' => 'page',
'list_rows' => 15,
],
//驗證碼配置
'captcha' => [
// 驗證碼字符集合
'codeSet' => '123456789abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
// 驗證碼字體大小(px)
'fontSize' => 24,
// 是否畫混淆曲線
'useCurve' => true,
// 驗證碼圖片高度
//'imageH' => 30,
// 驗證碼圖片寬度
//'imageW' => 100,
// 驗證碼位數
'length' => 4,
// 驗證成功后是否重置
'reset' => true
],
第三本:檢驗驗證碼
if (!captcha_check($captcha)) $this->error('驗證碼錯誤!'); //控制器檢驗方法
但是請注意:我遇到問題了!
不知道大家有沒有這樣的問題;我這樣寫出來的驗證碼,不切換驗證碼的時候是可以用的,但是一旦切換驗證碼
以后就一直提示我驗證碼錯誤;因為時間問題,我沒有去找具體的原因,這里我給出一個解決的辦法,如下
第一步:使用驗證碼,
<img id="code_img" align="top" src="{:captcha_src($id = 'code1')}" title="點擊切換驗證碼"> //這樣就可以了
//jquery 點擊改變驗證碼寫法
$('#code_img').click(function() {
var imgUrl = "{:captcha_src($id = 'code1')}" //code1為可變的,用在哪里就起醒目的名字
$(this).attr('src', imgUrl);
});
第二步:同上;
第三步:檢驗驗證碼
$captcha = input('post.code') ? input('post.code','','trim') : $this->error('請輸入驗證碼!');
if (!captcha_check($captcha, 'code1')) $this->error('驗證碼錯誤!');
這樣就完美的使用thinkphp5的驗證碼類了,如何切換能能正確驗證了
注意:點擊切換驗證碼補充寫法
$('#code_img').click(function() {
var imgUrl = "{:captcha_src($id = 'code1')}"
imgUrl = imgUrl.substr(imgUrl, imgUrl.indexOf('.html', imgUrl)) + '/' +Math.random()+'.html';
$(this).attr('src', imgUrl);
});