ThinkPHP版本6.1,验证码功能是外置的,安装后通过简单的配置后即可使用,十分方便。
目录
1. 使用composer 安装
composer require topthink/think-captcha
2.开启session
全局中间件App/middleware.php
开启session
// 全局中间件定义文件
return [
// 全局请求缓存
// \think\middleware\CheckRequestCache::class,
// 多语言加载
// \think\middleware\LoadLangPack::class,
// Session初始化
\think\middleware\SessionInit::class
];
3.验证码显示
<div>{:captcha_img()}</div>
或者
<div>
<img src="{:captcha_src()}" alt="captcha"
onclick='this.src="/captcha.html?"+Math.random();' />
</div>
4. 表单设置
创建一个模版页面,设置一个验证码和文本框提交比对;
<form action="{:url('admin/check')}" method="post">
<div>{:captcha_img()}<input type="text" name="captcha"></div>
<input type="hidden" name="__token__" value="{:token()}">
<input type="submit" value="确定">
</form>
5. 使用验证器检测
// 验证码验证规则
$validate = Validate::rule([
'captcha' => 'require|captcha'
]);
// 验证码和表单对比
$result = $validate->check([
'captcha' => input('post.captcha')
]);
if (!$result) {
dump($validate->getError());die;
}
dump('验证通过');die;
6. 使用助手函数验证
if(!captcha_check(input('post.captcha'))){
dump('验证失败');die;
}
dump('验证通过');die;
7.验证码配置文件修改
验证码的配置文件位于config/captcha.php中,可按需修改。
修改字符为4个
/验证码位数
'length' => 4,
改为中文验证码
// 是否使用中文验证码
'useZh' => true,
8.自定义验证器
创建一个 verify 方法
namespace app\admin\controller;
use think\captcha\facade\Captcha;
class AdminCaptcha
{
public function verify()
{
return Captcha::create();
}
}
添加路由验证
Route::get('captcha', 'AdminCaptcha/verify)->name('captcha');
访问路由
效果
添加额外的验证码设置
Config/captcha.php中间添加
// 添加额外的验证码设置
'verify' => [
'length' => 4,
'math' => true,
],
方法添加配置
public function verify()
{
return Captcha::create('verify');
}
效果
总结
主要通过composer安装think-captcha三方封装的验证码来实现。