doyo开发短信验证码发送类

曹え 5811 发布于:2019-03-22 13:44:02

短信接口

不管是什么接口都只接收2个参数,一个是手机号,一个是验证码


session_start();
header('Content-Type: text/plain; charset=utf-8');
$mobile = $_POST['mobile']; // 获得手机号
$code = rand(1000,9999); // 随机验证码
$_SESSION['code'] = $code;
$response = SmsDemo::sendSms($mobile,$code);  // 发送短信


禁止重复发短信时间和次数

$code = rand(1000,9999);
$_SESSION['code'] = $code;
$smsok = $_COOKIE['smsok'];
$smsnum = $_COOKIE['smsnum'];
if(!$smsnum){
	$num = 1;
}
else
{
	$num = $smsnum;
	$num++;
}
 

if($smsok != $mobile || $num <=3){
	
	// 下面放执行发短信的函数
	$response = SmsDemo::sendSms($mobile,$code);  // 发送短信api
	
	// 下面是保存本次发短信的时间和次数
	$cookie_time = time()+120;
	setcookie('smsok', $mobile , $cookie_time); // 短信发送120秒
	setcookie('smsnum', $num , time()*3600*24);  // 今日发送次数
}
else
{
	echo '-1';
}




注册页面


头部js

<script src="{$GLOBALS['WWW']}include/js/dyfrom.js" type="text/javascript"></script>
<script type="text/javascript">
function postform(){
	value=$("#user").val();
	if(!dyfrom_null(value)||!dyfrom_max(value, 20)){
		alert('用户名不能为空,并且不能大于20个字符');return false;
	}
	if(dyfrom_ajax("{$GLOBALS['WWW']}index.php?c=member&a=rules","user="+value)=='false'){
		alert('用户名已被注册,请更换用户名');return false;
	}
	value=$("#pass1").val();
	if(!dyfrom_null(value)){
		alert('请输入密码');return false;
	}
	value=$("#pass2").val();
	if(!dyfrom_null(value)||!(value==$("#pass1").val())){
		alert('两次密码输入不同,请修改');return false;
	}
	value=$("#email").val();
	if(!dyfrom_email(value)){
		alert('请输入正确的email地址');return false;
	}
    value=$("#dz").val();
    if(!dyfrom_null(value)){
        alert('请填写地址');return false;
    }   

    value=$("#dw").val();
    if(!dyfrom_null(value)){
        alert('请填写单位');return false;
    }

        value=$("#yzm").val();
	value2=$("body").attr('rel');
	if(value!=value2){
		alert('验证码输入错误');return false;
	}

	return true;
}
</script>


html

 <dl><dt>手机:</dt><dd style="width:auto;"><input name="sj" id="sj" type="text" class="inp" value="" style="width:200px;" /></dd><dd class="m"><a href="javascript:;" class="abtn" id="js-sms">发送验证码</a></dd></dl>
 <dl><dt>短信验证码:</dt><dd><input name="yzm" id="yzm" type="text" class="inp" value="" style="width:80px;"/></dd></dl>


底部js

<script>
$(function(){
  $('#js-sms').click(function(){
    sj = $('#sj').val();

    if(sj && dyfrom_mobile(sj)){

        if(dyfrom_ajax("{$GLOBALS['WWW']}index.php?c=ajax&a=ismobile","mobile="+sj)=='false'){
            alert('该手机号已经注册过!请直接登录或更换手机号!');
            return false;
        }

      $('#js-sms').text('已发送').css('background-color','#ccc');
        url = "http://13.jianku.com.cn/alisms/api_demo/SmsDemo.php";
        str = dyfrom_ajax(url,"mobile="+sj);
        if(str=='-1'){
            alert('发送失败,请稍后再试!');
          $('#js-sms').text('发送验证码');
        }
        else{
            $('body').attr('rel',str);
            alert('验证码已发送到您的手机,请查收!');
            $('#js-sms').text('发送验证码').css('background-color','#1F66A8');
        }
    }
    else
    {
        alert('请填写正确的手机号!');
    }
  })
})
</script>



ajax.php 添加函数 

判断手机号是否注册过

    // 手机号是否注册过
    function ismobile(){
        $mo=syDB('member_field')->findAll(array('sj'=>$this->syArgs("mobile",1)));
        if($mo){
            echo 'false';
        }
        else
        {
            echo 'true';
        }
    }




觉得有用请点个赞吧!
0 497