tp5的验证码
2019-04-28 本文已影响0人
Maiiiiiiiiiiiid
tp5的验证码
[TOC]
安装captcha:
composer require topthink/think-captcha=1.*
验证码配置
$config = [
// 验证码字体大小
'fontSize' => 30,
// 验证码位数
'length' => 4,
// 关闭验证码杂点
'useNoise' => false,
]
图像的显示
模板文件:
<div class="validate">{:captcha_img()}</div>
视图能加载类库的方法,也可以加载application里面的common.php的全局方法
调用方法:
{:方法名()}
captcha_img()这个方法在:
"\vendor\topthink\think-captcha\src\helper.php"
使用js添加事件,使得点击一次刷新一次
$('.validate img').click(function () {
$(this).attr('src','./captcha.html?r='+Math.random()*5000);
})
数据的验证
表单:
<form action="{:url('check')}" method="post" role="form">
<input type="text" class="form-control" name="code" id="" placeholder="Input...">
<button type="submit" class="btn btn-primary">Submit</button>
<div class="validate">{:captcha_img()}</div>
</form>
跳转的check方法:
public function check($code=''){
$captcha = new \think\captcha\Captcha();//实例化
if($captcha->check($code)){
return $this->success();
}else{
return $this->error();
}
}
实际上每次刷新验证码都会*输出验证码并把验证码的值保存到session中,验证码保存到session的格式为: array('verify_code' => '验证码值', 'verify_time' => '验证码创建时间') 验证时从session获取值再拿来比较
助手函数: