本文实例讲述了ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能。分享给大家供大家参考,具体如下:
验证码现在是用户登录、支付等很多环节的必备元素,ThinkPHP5&5.1给我们提供了验证码的生成方式,也是非常的简单,在这里写一个完整的验证码验证的使用方法,供大家参考。
前台用户在登录时候需要验证码验证才能登录。首先使用Composer安装think-captcha扩展包:
composer require topthink/think-captcha
在需要显示验证码的地方:
<div class="row cl">
<div class="formControls col-xs-8 col-xs-offset-3">
<input class="input-text size-L" type="text" placeholder="验证码" name="captcha" style="width:150px;">
<img src="{:url('Login/verify')}" class="reloadverify" >
</div>
</div>其中verify是生成验证码的方法:
public function verify()
{
$config = [
// 验证码字体大小
'fontSize' => 20,
// 验证码位数
'length' => 3,
// 关闭验证码杂点
'useNoise' => false,
];
$captcha = new Captcha($config);
return $captcha->entry();
} 点击验证码刷新:
<script src="/admin/lib/layer/2.4/layer.js"></script>
<script>// 刷新验证码
$(function() {
var verifyimg = $(".reloadverify").attr("src");
$(".reloadverify").click(function() {
if (verifyimg.indexOf('?') > 0) {
$(".reloadverify").attr("src", verifyimg + '&random=' + Math.random());
} else {
$(".reloadverify").attr("src", verifyimg.replace(/?.*$/, '') + '?' + Math.random());
}
});
$("#loginform").submit(function(e){
var res = $(this).serialize();
var url = "{:url('Login/verify')}";
$.ajax({
url: url,
data: res,
type: 'post',
success:function(data){
if (data.code == 1) {
layer.alert(data.msg,{icon:6},function (index) {
layer.close(index);
window.location.href = "{:url('Index/index')}";
});
} else{
layer.alert(data.msg,{icon:5},function (index) {
layer.close(index);
window.location.reload();
});
}
}
});
return false; // 阻止表单跳转
});
});
</script>