前面提到驗證碼的使用,但是你會發現點擊切換驗證碼之后,會提示‘驗證碼錯誤’;這是因為tp5.0.2自帶的驗證碼類自大的參數$id,默認為空,但是當你點擊切換驗證碼后,$id參數會默認為0,而且會累加 ,所以會永遠匹配不上。這里我們也不用去修改框架本身的內容;只需坐這樣的修改就可以使用了;
index.php文件
<?php
namespace app\admin\controller;
class Index extends Common {
/*
* 首頁
*/
public function index(){
return view();
}
/*
* 登錄
*/
public function login(){
if (request()->isPost()) {
$captcha = input('post.code') ? input('post.code') : $this->error('請輸入驗證碼!');
if (!captcha_check($captcha, 'admin')) {
$this->error('驗證碼錯誤!');
} else {
$this->success('登錄成功', 'index');
}
} else {
return view();
}
}
}
login.html文件
//引用驗證碼,添加$id 識別admin;
<img id="code_img" align="top" src="{:captcha_src($id = 'admin')}">
<script>
//jquery,js點擊切換驗證碼
$(function() {
$('#code_img').click(function() {
var imgUrl = $(this).attr('src');
imgUrl = imgUrl.substr(imgUrl.indexOf('/captcha', imgUrl), 14) + '/' +Math.random()+'.html';
$(this).attr('src', imgUrl);
});
})
</script>
這樣,驗證碼類已經完美使用