验证码现在是用户登录、支付等很多环节的必备元素,ThinkPHP5&5.1给我们提供了验证码的生成方式,也是非常的简单,在这里写一个完整的验证码验证的使用方法,供大家参考。
前台用户在登录时候需要验证码验证才能登录。首先使用Composer安装think-captcha扩展包:
composer require topthink/think-captcha
在需要显示验证码的地方:
<tr>
<th>请输入验证码:</th>
<td>
<input type="text" name="captcha" class="inp01"/>
<img src="{:url('index/login/verify')}" alt="验证码加载中" id="captcha"/>
</td>
</tr>
其中verify是生成验证码的方法:
public function verify()
{
$config = [
// 验证码字体大小
'fontSize' => 15,
// 验证码位数
'length' => 3,
// 关闭验证码杂点
'useNoise' => false,
];
$captcha = new \think\captcha\Captcha($config);
return $captcha->entry();
}
其中$config是验证码的配置项,具体有哪些配置内容可以参考手册。
使用Ajax或者jquery-validate进行验证码的验证,也可以提交以后进行验证:
public function checkcapcha()
{
$captcha = new \think\captcha\Captcha();
if( !$captcha->check(input('post.captcha')))
{
return false;
}else{
return true;
}
}
为了实现点击验证码刷新的功能,还要写js代码:
$("#captcha").click(function(event) {
this.src = "{:url('index/login/verify')}?"+Math.random();
});
这样就实现了验证码的验证功能,是不是非常简单?