tp5配置验证码相关问题
一、验证码背景图片及tp中文验证码
5.0.1及以上支持者在应用配置目录(application)下面 extra 子目录内配置captcha.php文件;
配置参数如下:
'2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
// 验证码字体大小(px)
'fontSize' => 15,
// 是否画混淆曲线
'useCurve' => false,
// 验证码图片高度
'imageH' => 50,
// 验证码图片宽度
'imageW' => 150,
// 验证码位数
'length' => 5,
// 中文验证码
'useZh' =>true,
// 是否使用背景图片
'useImgBg' =>true,
// 是否使用杂点
'useNoise'=>false,
// 背景颜色
'bg'=>[222, 231, 132],
// 验证成功后是否重置
'reset' => true,
//验证码过期时间(秒),默认为1800秒
'expire' =>1800,
];
1,开启验证码背景图片功能(必须是开启验证码背景图片功能), 在扩展包内`think-captcha/src`目录下新建verify目录,然后再在zaiverify目录下面新建bgs目录,将背景图片放入bgs目录中。(官方指定的目录与程序代码的目录不符合)。
官方给定代码如下:
read())) {
if ('.' != $file[0] && substr($file, -4) == '.jpg') {
$bgs[] = $path . $file;
}
}
$dir->close();
$gb = $bgs[array_rand($bgs)];
list($width, $height) = @getimagesize($gb);
// Resample
$bgImage = @imagecreatefromjpeg($gb);
@imagecopyresampled($this->_image, $bgImage, 0, 0, 0, 0, $this->imageW, $this->imageH, $width, $height);
@imagedestroy($bgImage);
}
2,如果要使用中文验证码,验证码字体使用扩展包内`think-captcha/assets/zhttfs`目录下面的字体文件。
二、引用及验证
1,引用:
{:captcha_img()}
或者
2,验证:
使用TP5的内置验证功能,添加captcha验证规则即可
$this->validate($data,[ 'captcha|验证码'=>'require|captcha' ]);
或者手动验证
if(!captcha_check($captcha)){ //验证失败 };