单元测试
未知
2019-04-10 11:14:04
0

 

首先使用Composer安装think-captcha扩展包:

composer require topthink/think-captcha

官方的5.0版本的扩展库版本号都是1.*2.0版本均为ThinkPHP5.1版本专用。

验证码的简单用法

扩展包内定义了一些常见用法方便使用,以下示例说明

注意:需要开启URL路由。

模版内验证码的显示

<div>{:captcha_img()}</div>

或者

<div><img src="{:captcha_src()}" alt="captcha" /></div>

上面两种的最终效果是一样的,根据需要调用即可。

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

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

或者手动验证

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

验证码的自定义用法

如果项目未开启路由,或者有实际需求可自行调用Captcha类操作

验证码的生成:

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

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

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

验证码的验证:
可以用Captcha类的check方法检测验证码的输入是否正确,例如,下面是封装的一个验证码检测的函数:

// 检测输入的验证码是否正确,$code为用户输入的验证码字符串,$id多个验证码标识
function check_verify($code, $id = ''){
    $captcha = new Captcha();
    return $captcha->check($code, $id);
}

验证码的配置参数

Captcha类带有默认的配置参数,支持自定义配置。这些参数包括:

如果使用了扩展内置的方法,务必在应用配置文件中配置,5.0.1及以上支持者在应用配置目录下面extra子目录内配置captcha.php文件

参数 描述 默认
codeSet 验证码字符集合
expire 验证码过期时间(s) 1800
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

参数设置使用两种方式。
实例化传入参数:

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

或者采用动态设置的方式,如:

$captcha = new Captcha();
$captcha->fontSize = 30;
$captcha->length   = 3;
$captcha->useNoise = false;
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();

默认的验证码字符已经剔除了易混淆的1l0o等字符

 
 

上一篇:文件处理

下一篇:函数

相关内容

单元测试
首先使用 Composer 安装 think-captcha 扩展...
2019-04-10 11:14:04

热门资讯

安装ThinkPHP ThinkPHP5 的环境要求如下: PHP = 5.4.0 PDO PHP Extension M...
日志写入 日志写入 版本 新增功能 5.0.16 增加文件日志自动清理功能支持 5.0.13 增加单文件日志写...
行为 概述 版本 新增功能 5.0.4 行为类的方法采用驼峰法命名 行为绑定支持绑定到类的方法 行为(Be...
验证码 首先使用 Composer 安装 think-captcha 扩展包: composer requi...
升级指导 升级指导 从V5.0.23升级到V5.0.24 从V5.0.22升级到V5.0.23 从V5.0.2...
模板引擎 内置模板引擎 视图的模板文件可以支持不同的解析规则,默认情况下无需手动初始化模板引擎。 可以通过下面...
查询数据 基本查询 查询一个数据使用: // table方法必须指定完整的数据表名 Db : : table ...
连接数据库 ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操...
路由参数 路由参数 路由参数是指可以设置一些路由匹配的条件参数,主要用于验证当前的路由规则是否有效,主要包括:...
Workerman Workerman Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框...