ThinkPHP5.0.20验证码背景图片

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()}

或者

captcha

2,验证:

使用TP5的内置验证功能,添加captcha验证规则即可

$this->validate($data,[ 'captcha|验证码'=>'require|captcha' ]);

或者手动验证

if(!captcha_check($captcha)){ //验证失败 };

你可能感兴趣的:(PHP)