1. 程式人生 > 程式設計 >thinkphp5.1驗證碼及驗證碼驗證功能的實現詳解

thinkphp5.1驗證碼及驗證碼驗證功能的實現詳解

注:由於thinkphp5.1沒有自帶驗證碼,所以需要通過composer安裝think-captcha 擴充套件包才能實現驗證碼

一、安裝composer

https://www.jb51.net/article/178346.htm

二、通過composer安裝think-captcha 擴充套件包

開啟命令視窗,進入vendor/topthink輸入指令即可,也可以安裝shift鍵再右擊滑鼠開啟命令視窗可以直接進入當前資料夾位置

composer require topthink/think-captcha

三、在控制器裡寫驗證碼的方法,要在名稱空間引入use think\captcha\Captcha;然後在網址中輸入該方法的路由地址就可以出來驗證碼

//驗證碼
  public function verify()
  {
    $captcha = new Captcha();
    return $captcha->entry();
  }

四、驗證碼在模板中輸出

在檢視中加入以下程式碼:

<img src="{:url('user/verify')}" alt="captcha" />

src裡填寫verify方法的路由地址

五、驗證輸入的驗證碼是否正確

1、可以用 Captcha 類的 check 方法檢測驗證碼的輸入是否正確

// 檢測輸入的驗證碼是否正確,$value為使用者輸入的驗證碼字串
$captcha = new Captcha();
if( !$captcha->check($value))
{
// 驗證失敗
}

2、或者直接呼叫封裝的一個驗證碼檢測的函式 captcha_check

/ 檢測輸入的驗證碼是否正確,$value為使用者輸入的驗證碼字串
if( !captcha_check($value ))
{
// 驗證失敗
}

六、自定義驗證碼的引數

//驗證碼
  public function verify()
  {
    $config = [
       // 驗證碼字型大小
      'fontSize' => 30,// 驗證碼位數
      'length' => 4,// 關閉驗證碼雜點
      'useNoise' => true,// 驗證碼圖片高度
      'imageH'  => 60,// 驗證碼圖片寬度
      'imageW'  => 200,// 驗證碼過期時間(s)
      'expire'  => 1800,];
    $captcha = new Captcha($config);
    return $captcha->entry();
  }

在vendor\topthink\think-captcha\src目錄下的Captcha.php中也可以配置

七、以下是我測試登入的程式碼部分截圖

控制器裡的verify()方法

這裡寫圖片描述

控制器裡的驗證登入的loginCheck()方法

這裡寫圖片描述

檢視層裡的驗證碼顯示

這裡寫圖片描述

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。