ThinkPHP5验证码的自定义用法

Alien| 阅读:2750 发表时间:2018-04-12 15:37:09 PHP开发

如果需要自己独立生成验证码,可以调用Captcha类(think\captcha\Captcha)操作。

在控制器中使用下面的代码进行验证码生成:

<?php
namespace app\index\controller;

use think\captcha\Captcha;

class Index 
{
    public function verify()
    {
        $captcha = new Captcha();
        return $captcha->entry();    
    }
}

然后访问下面的地址就可以显示验证码:

http://你的域名/index/index/verify

输出效果如图:

dcbf30b119dc2bb7ec6f41d943b5646c_250x62

在模板中就可以使用下面的代码显示验证码图片

<div><img src="{:url('index/verify')}" alt="captcha" /></div>

如果你需要在一个页面中生成多个验证码的话,entry方法需要传入可标识的信息(数字或者字符串),例如:

$captcha = new Captcha();
return $captcha->entry(1);

可以用Captcha类的check方法检测验证码的输入是否正确

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串
$captcha = new Captcha();
if( !$captcha->check($value))
{
   // 验证失败
}

或者直接调用封装的一个验证码检测的函数captcha_check

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串
if( !captcha_check($value ))
{
   // 验证失败
}

如果你在页面上同时生成了多个验证码,则可以使用

// 检测输入的验证码是否正确,$value为用户输入的验证码字符串,$id为验证码标识
if( !captcha_check($value, $id ))
{
    // 验证失败
}

验证码的自定义配置参数

QQ图片20180412153158

实例化传入参数:

$config =    [
    // 验证码字体大小
    'fontSize'    =>    30,    
    // 验证码位数
    'length'      =>    3,   
    // 关闭验证码杂点
    'useNoise'    =>    false, 
];
$captcha = new Captcha($config);
return $captcha->entry();

默认情况下,验证码的字体是随机使用扩展包内 think-captcha/assets/ttfs目录下面的字体文件,我们可以指定验证码的字体,例如:

$captcha = new Captcha();
$captcha->fontttf = '5.ttf'; 
return $captcha->entry();

支持验证码背景图片功能,可以如下设置:

$captcha = new Captcha();
// 开启验证码背景图片功能 随机使用扩展包内`think-captcha/assets/bgs`目录下面的图片
$captcha->useImgBg = true; 
return $captcha->entry();

如果要使用中文验证码,可以设置:

$captcha = new Captcha();
// 使用中文验证码(字体使用扩展包内`think-captcha/assets/zhttfs`字体文件)
$captcha->useZh = true; 
return $captcha->entry();

指定验证码的字符,可以设置:

$captcha = new Captcha();
// 设置验证码字符为纯数字
$captcha->codeSet = '0123456789'; 
return $captcha->entry();

如果是中文验证码,可以使用zhSet参数设置,例如:

$captcha = new Captcha();
$captcha->useZh = true;
// 设置验证码字符
$captcha->zhSet = '们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这'; 
return $captcha->entry();
本文标签: PHPthinkphp验证码
*本文由Alien发表并编辑,转载此文章请附上出处及本页链接。如有侵权,请联系本站删除。

热门推荐