Eyoucms程序开发:验证码
首先使用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
等字符
相关文档
- 使用FancyBox弹出窗口插件实现图片/视频点击弹出层浏览
- 使用VenoBox弹出窗口灯箱插件实现图片相册功能
- 使用JavaScript代码实现页面下滑时顶部导航栏固定跟随页面...
- 迅睿cms使用全局表单制作证书查询功能
- 迅睿cms使用API接口实现主站统一管理多站点群友情链接
- 网站开启强制HTTPS后,弹窗提示请使用http模式访问
- 迅睿cms服务器CPU使用率及负载状态100%如何排查解决
- WordPress如何使用RSS订阅
- WordPress实现整站静态化 WP2Static使用教程
- WordPress使用区块管理器隐藏不需要的古腾堡区块
- 使用古腾堡可重用区块高效管理WordPress重复内容
- WordPress重新生成缩略图 Regenerate Thum...
- 让WordPress实现页面预加载 Instant.page使用...
- 如何让WordPress使用主题自带404页面而不是宝塔默认页面
- 为WordPress添加Google reCAPTCHA进行人机...
- 外贸网站URL链接伪静态化处理及使用关键词SEO优化
- 迅睿CMS:系统没有安装内容模块
- 迅睿CMS:为什么有些模块不能安装成共享
- 迅睿CMS:物流宝使用手册
- 迅睿CMS:火车头采集插件使用方法
上一篇: Eyoucms程序开发:上传
下一篇: Eyoucms程序开发:图像处理