Thinkphp 3.2.2 验证码check_verify方法,只能验证一次
问题:
Thinkphp 3.2.2 验证码check_verify方法,只能验证一次。
function check_verify($code, $id = ''){
$verify = \Think\Verify();
return $verify->check($code, $id);
}
一般通常我们做的网站,验证码都会验证两次,一次是前台Ajax的提交验证,然后用户提交到后台再验证一次。但是用上面的check_verify第一次Ajax验证正确,但是提交到后台php再次调用函数check_verify,验证失败false。
js端验证code
function checkCode(oo){ var patt = /^\w{4}$/; if(!patt.test(oo.value)){ $('#errVer').html('验证码输入不对'); return false; }else{ //利用Ajax实现:验证码是否正确 var url = '/index.php/Home/User/checkVerify/verifyCode/'+oo.value; /*alert(url); */ $.get(url,function(res){ if(res==true){ $('#errVer').html(''); }else{ $('#errVer').html('验证码错误,请刷新验证码'); return true; } }); }
return false;
}
服务器端
<?php
namespace Home\Controller;
use Think\Controller;
use Think\Verify;
//生成验证码方法
public function verify(){
$Verify = new Verify();
$Verify->reset = true;
$Verify->length = 4;
$Verify->useNoise = false;
$Verify->entry();
}
}
//验证码是否正确
public function checkVerify(){
$Verify = new Verify();
$Verify->reset = false;
if($Verify->check(I('get.verifyCode'))){
echo 1;
}else{
echo 0;
}
}
学习的热情不因季节的变化而改变