當前位置:名人名言大全網 - 短信平臺 - 如何解決thinkphp5中驗證碼常見問題

如何解決thinkphp5中驗證碼常見問題

在項目目錄下面生成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= '沒有輸入驗證碼';

}

}

照以上做沒有任何問題