为了实现短信验证的效果,在jq中,我请求了一次接口,代码如下:
checked:1,
send:function(){
var numbers = /^1\d{10}$/;
var val = $('#mobile').val().replace(/\s+/g,""); //获取输入手机号码
if($('.yzm').find('span').length == 0 && $('.yzm a').attr('class') == 'send1'){
if(!numbers.test(val) || val.length ==0){
$('.yzm').append('<span class="error01">手机格式错误</span>');
return false;
}
}
if(numbers.test(val)){
var time = 60;
$('.yzm span').remove();
function timeCountDown(){
if(time==0){
clearInterval(timer);
$('.yzm a').addClass('send1').removeClass('send0').html("发送验证码");
sends.checked = 1;
return true;
}
$('.yzm a').html(time+"S后再次发送");
time--;
return false;
sends.checked = 0;
}
//jq中的方位接口 得到一个验证码
var url = "http://192.144.1.168/MJS/user/verificationSign"+"?userAccounts="+$("#mobile").val();
$.get(url,function(data){
// alert(data);
});
$('.yzm a').addClass('send0').removeClass('send1');
timeCountDown();
var timer = setInterval(timeCountDown,1000);
}
然后再php页面中,用curl获取接口返回值,又请求了一次,代码如下:
//在php页面中请求接口
$url = 'http://192.144.1.168/MJS/user/verificationSign?userAccounts='.$userAccounts; //我们统一用的是JSON格式
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$contents = curl_exec($ch);
curl_close($ch);
$body = json_decode ($contents, TRUE);
if($mcod != $body['code'])
{
echo "验证码不正确,请输入正确的验证码";
这样就又有一个验证码生成,$mcod != $body['code']一直不会相同,请问大神 这怎么解决
用session等方式保存最后一次生成的验证码用来和用户输入作比对...