验证码
验证码功能由 ginkgo\Captcha
完成。
生成验证码
在控制器中使用下面的代码进行验证码生成:
namespace app\index\ctrl;
use ginkgo\Captcha;
class Index {
public function verify() {
$captcha = Captcha::instance();
$captcha->set();
return $captcha->create();
}
}
访问下如下地址就可以显示验证码
在模板中可以使用如下代码显示验证码
<div><img src="http://server/index.php/index/index/verify" alt="captcha"></div>
如果要在一个页面中生成多个验证码,create
方法可以传入标识信息(数字或字符串),例如:
namespace app\index\ctrl;
use ginkgo\Captcha;
class Index {
public function verify() {
$captcha = Captcha::instance();
$captcha->set();
return $captcha->create(1);
}
}
可以用 Captcha
类的 check
方法检测验证码是否正确
if (!$captcha->check($value)) {
// 验证失败
}
如果页面上同时生成了多个验证码,则可以使用
$value 为用户输入的验证码,$id 为验证码标识
if (!$captcha->check($value, $id)) {
// 验证失败
}
验证码的配置参数
Captcha
类带有默认的配置参数,支持自定义配置。这些参数包括:
参数 | 描述 | 默认 |
---|---|---|
length | 长度 | 4 |
expire | 过期时间 | 1800 |
font_file | 字体路径 | 空 随机从字体文件夹读取 |
font_size | 字号 | 20 |
width | 图片宽度 | 0 为自动计算 |
height | 图片高度 | 0 为自动计算 |
reset | 验证成功后是否重置 | true |
noise | 是否加入干扰 | true |
实例化传入参数:
$config = array(
'font_size' => 30, // 验证码字体大小
'length' => 3, // 验证码位数
'noise' => false, // 关闭验证码杂点
);
$captcha = Captcha::instance($config);
验证码字体
默认情况下,验证码的字体是随机使用
ginkgo/captcha/font
目录下面的字体文件,我们可以指定验证码的字体,例如:$config = array(
'font_file' => GK_PATH_CORE . 'captcha/font/5.ttf', // 验证码字体路径
);
$captcha = Captcha::instance($config);