在控制器中使用下面的代码进行验证码生成:
<?php
namespace app\index\controller;
use think\captcha\Captcha;
class Index
{
public function verify()
{
$captcha = new Captcha();
return $captcha->entry();
}
}
然后访问下面的地址就可以显示验证码:
http://你的域名/index/index/verify
输出效果如图:
在模板中就可以使用下面的代码显示验证码图片
<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 ))
{
// 验证失败
}
实例化传入参数:
$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();