## think-captcha 验证码校验
* 方案一:captcha\_check() 函数验证
* 参考TP6.0官方手册:`扩展库`\-`验证码`章节[点击进入](https://ihavenolimitations.xyz/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
- 安装
- 自定义函数
- 任务类
- 带有日志的任务类