在項目目錄下面生成captcha擴展 (需要安裝composer來安裝)
composer require topthink/think-captcha
2 安裝完成之後會呈現如上的目錄。captcha擴展安裝完成之後,就可以進行下壹步操作
配置comfig.php文件:在comfig.php下面加個擴展
//驗證碼
'captcha'=> [
//字符集合
'codeset'=>'23456780qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM',
//字體大小
'fontSize' => 18,
//是否花混淆曲線
'useCurve' => true,
//圖片高度
'imageH' => 40,
//圖片寬度
'imageW' => 130,
//位數
'length' => 4,
//驗證成功後是否重置
'reset' => true,
],
3.刷新驗證碼功能 ?src路徑在這裏可以用框架自帶的也可以直接訪問img方法
<img id="captcha_img" src="{:captcha_src()}" alt="驗證碼" onclick="refreshVerify()"><a
href="javascript:refreshVerify()">點擊刷新</a>
在js《script》標簽部分加上刷新事件
function refreshVerify()
{
var ts = Date.parse(new Date() )/1000;
console.log(ts);
$('#captcha_img').attr('src','/captcha?id='+ts);
}
4.在控制器裏用TP驗證自帶的方法
在妳的登錄的控制器裏面加入
4.1在頭部引入 use think\captcha\Captcha;
//該方法引入img圖像 ?寬高可以再img用css直接控制!
public function img() {
$captcha = new Captcha();
return $captcha->entry();
}
// 檢測輸入的驗證碼是否正確,$code為用戶輸入的驗證碼字符串,$id多個驗證碼標識
function check_verify($code, $id = ''){
$captcha = new Captcha();
return $captcha->check($code, $id);
}這個方法下面的驗證要用到
在妳的form驗證碼值發送的方法裏加入 post提交 GET提交就把post改成get ?表單驗證碼name是code
$request=request();
if ($request->isPost()){
if($request->post('code')){
if($this->check_verify($request->post('code'))){
$message= '驗證成功';
}else{
$message= '驗證錯誤';
}
}else{
$message= '沒有輸入驗證碼';
}
}
照以上做沒有任何問題