TP6.0验证码
composer 安装captcha
composer require topthink/think-captcha
配置验证码
验证码配置文件在config目录下的captcha.php文件,下面是复制TPdemo配置
return [
//验证码位数
'length' => 5,
// 验证码字符集合
'codeSet' => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
// 验证码过期时间
'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,
// ...
//],
];
获取验证码
id参数就是一段随机数字,可以使用时间戳
http://www.demo.com/captcha?id=1595409964
验证验证码
验证验证码只需要在验证器中添加一个验证规则就可以
protected $rule = [
'captcha|验证码' => 'require|captcha',
];
如果这样还来不起,检查一下Session是否开启,开启全局Session在app目录下的middleware.php文件,打开最后一行的注释即可。
如果找不到该文件,直接创建即可。
<?php
// 全局中间件定义文件
return [
// 全局请求缓存
// \think\middleware\CheckRequestCache::class,
// 多语言加载
// \think\middleware\LoadLangPack::class,
// Session初始化
\think\middleware\SessionInit::class
app\middleware\Check::class,
];
在配置验证码中遇到这么一个问题,网址配置了https,但是主机并没有强制跳转https,这样也会导致session来不起