## think-captcha 驗證碼校驗
* 方案一:captcha\_check() 函數驗證
* 參考TP6.0官方手冊:`擴展庫`\-`驗證碼`章節[點擊進入](http://www.hmoore.net/manual/thinkphp6_0/1246402)
* 方案一適合只返回驗證`成功和失敗`或`在模型中校驗驗證碼`的情況
* 方案二和方案三更加靈活, 可以返回不同的驗證碼錯誤信息,但是必須在控制器中使用
* 方案二:基礎控制器的數據驗證功能
* $this->validate() 執行數據驗證
* \\think\\exception\\ValidateException 捕獲拋出的異常錯誤信息
* 方案三:基礎控制器和驗證器進行校驗
* 定義驗證器
* $this->validate() 執行數據驗證
* \\think\\exception\\ValidateException 捕獲拋出的異常錯誤信息
> 校驗 think-captcha 驗證碼的前提條件
#### 必須開啟 Session 否則即使驗證碼輸入正確也無法校驗成功
#### 開啟Session:在全局中間件定義文件`app/middleware.php`中取消`Session初始化`的注釋

> 方案一:captcha\_check() 函數驗證
~~~
// $captcha 用戶輸入的驗證碼
// captcha_check($captcha) 成功 true 失敗 false
if(!captcha_check($captcha)){
// think-capthca 驗證碼校驗失敗
}
~~~
> 方案二:基礎控制器的數據驗證功能
~~~
try {
$this->validate([
'vercode' => '用戶輸入的驗證碼'
], [
'vercode|驗證碼' => 'require|min:4|captcha'
], [
'vercode.min' => '驗證碼長度不能低于4位',
'vercode.captcha' => '您輸入的驗證碼有誤',
]);
} catch (\think\exception\ValidateException $e) {
return $e->getError();
}
~~~
> 方案三:基礎控制器和驗證器進行校驗
* 定義驗證器
~~~
<?php
namespace app\admin\validate;
use think\Validate;
class Admin extends Validate
{
protected $rule = [
'vercode|驗證碼'=>'require|min:4|captcha'
];
protected $message = [
'vercode.min' => '驗證器提示您:驗證碼長度不能低于4位',
'vercode.captcha' => '驗證器提示您:您輸入的驗證碼有誤',
];
}
~~~
* 執行校驗
~~~
try {
$this->validate(input('post.'), 'app\admin\validate\Admin');
} catch (\think\exception\ValidateException $e) {
return $e->getError();
}
~~~
- 搭建ThinkPHP6的開發環境
- 配置ThinkPHP6
- 必要的基礎知識(basic)
- MVC開發模式
- 控制器(controller)
- 數據庫(database)
- 模型(model)
- 模型關聯(relation)
- 視圖(view)
- Session
- Cookie
- 緩存(cache)
- 上傳(upload)
- 驗證器(validate)
- 驗證碼(captcha)
- 命令行(command)
- 服務器部署(deploy)
- 數據備份(backup)
- 數據同步(synchronization)
- 訂閱服務(subscribe)
- PHP 易混淆知識點
- 助手函數
- MySQL規范
- Redis 規范
- office插件 phpoffice
- 拼音插件 pinyin
- 日期插件 datetime
- 消息插件 amqp
- 產品部署環境的搭建
- PDF 等雜項處理
- 文件上傳
- 常用擴展
- flc/dysms
- 使用示例 ①
- 使用示例 ②
- qiniu/php-sdk
- 簡介
- 使用示例
- 使用示例 2 ②
- liliuwei/thinkphp-jump
- 擴展介紹
- 下載擴展
- 使用方法
- topthink/think-captcha
- 安裝擴展
- 驗證碼顯示
- 更換驗證碼
- 驗證碼校驗
- 驗證碼配置
- 自定義驗證碼
- phpoffice/phpspreadsheet
- 數據寫入表格
- 讀取表格數據
- topthink/think-queue
- 安裝
- 自定義函數
- 任務類
- 帶有日志的任務類