ThinkPHP8默认没有验证码,安装验证码可以使用composer来安装验证码
一、安装验证码
执行composer安装验证码
composer require topthink/think-captcha
二、使用方法
1、在目录app\middleware.php中开启session
\think\middleware\SessionInit::class
2、配置验证码
安装好验证码会在应用的config目录下面生成captcha.php文件,我们可以在里面进行配置我们的验证码
<?php
// +----------------------------------------------------------------------
// | Captcha配置文件
// +----------------------------------------------------------------------
return [
//验证码位数
'length' => 4,
// 验证码字符集合
'codeSet' => '0123456789',
// 验证码过期时间
'expire' => 1800,
// 是否使用中文验证码
'useZh' => false,
// 是否使用算术验证码
'math' => false,
// 是否使用背景图
'useImgBg' => false,
//验证码字符大小
'fontSize' => 25,
// 是否使用混淆曲线
'useCurve' => true,
//是否添加杂点
'useNoise' => true,
// 验证码字体 不设置则随机
'fontttf' => '',
//背景颜色
'bg' => [243, 251, 254],
// 验证码图片高度
'imageH' => 0,
// 验证码图片宽度
'imageW' => 0,
// 添加额外的验证码设置
// verify => [
// 'length'=>4,
// ...
//],
];
验证码其他参数介绍:
codeSet 验证码字符集合 略
expire 验证码过期时间(s) 默认1800
math 使用算术验证码 默认false
useZh 使用中文验证码 默认false
zhSet 中文验证码字符串 略
useImgBg 使用背景图片 默认false
fontSize 验证码字体大小(px) 25
useCurve 是否画混淆曲线 默认true
useNoise 是否添加杂点 默认true
imageH 验证码图片高度,设置为0为自动计算 默认0
imageW 验证码图片宽度,设置为0为自动计算 默认0
length 验证码位数 默认5
fontttf 验证码字体,不设置是随机获取 默认 空
bg 背景颜色 默认 [243, 251, 254]
reset 验证成功后是否重置 默认true置
3、在模板视图文件中使用验证码
<div>{:captcha_img()}</div>
或
<div><img src="{:captcha_src()}" alt="captcha" /></div>
或实现点击图片刷新验证码
<img name="captcha" src="{:captcha_src()}" alt="captcha" onclick="this.src='{:captcha_src()}'+Math.random()">
4、后端框架中验证验证码
if(!captcha_check($captcha)){
// 验证失败
};
三、结果展示: