给手机号发送验证码设置密码

该博客内容涉及手机验证码在设置支付密码过程中的应用。首先通过`editPwd()`函数接收手机号、支付密码和验证码,检查验证码的有效性和过期时间,然后更新用户密码。`verify_mobile()`函数验证手机号格式,确保其正确。`PayScode()`函数生成随机验证码并保存到数据库,再发送短信通知用户。整个流程确保了支付密码设置的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//设置支付密码
public function editPwd(){
    $userId=addslashes(I('post.userId'));
    //支付密码
    $loginPwd = addslashes(I('post.PayPwd'));
    //手机号
    $condition['userPhone'] =addslashes(I('post.userPhone'));
    $condition['userId'] =$userId;
    //验证码
    $verification=addslashes(I('post.verification'));
    $list = M('users')->where('userId='.$userId)->find();
    $time1= $list['time'];
    $time = time()-strtotime($time1);
    //过期时间
    $n=intval($time/60);
    $note=$list['num'];
    //设置时间
    if($verification!=$note || $n>10){
        $response = array(
            'code'  => 202,
            'message' => '验证码不正确!',
        );
    }else{
        $data1=array(
            'lastTime'=>date("Y-m-d H;i:s"),
            'payPwd'=>md5($loginPwd.$list['loginSecret']),
        );
        $list = M('users')->where($condition)->save($data1);
        if($list){
            $response = array(
                'code'  => 200,
                'message' => '设置密码成功',
            );
        }else{
            $response = array(
                'code'  => 201,
                'message' => '设置密码失败',
            );
        }
    }
    echo json_encode($response);
}

// 手机号基础验证
public function verify_mobile($mobile){
    if(!$mobile){
        echo   $this->callback.'('.json_encode(array(
            'code' => 1,
            'status' => '手机号不能为空!'
        )).')';exit;
    }

    $pattern = "/^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$|14[5|7]{1}[0-9]{8}$|17[3|6|7|8]{1}[0-9]{8}$/";
    $match = preg_match($pattern,$mobile);
    if(!$match){
        echo   $this->callback.'('.json_encode(array(
            'code' => 2,
            'status' => '手机号格式不正确!'
        )).')';exit;
    }
}

//获取短信验证码
public function PayScode(){
    //获取手机号
    $loginPhone =18810980234;
    $num= rand(1000, 9999);//设置随机数
    //查询手机号
    $m=M('users');
    $condition['userPhone'] =$loginPhone;
    $time=date('Y-m-d H:i:s');
    $data=array(
        'time'=>$time,
        'num'=>$num,
    );
    $re=$m->where($condition)->save($data);
    if($re){
        $note=$m->where($condition)->find();
        //短信验证码
        $num1=$note['num'];
        $sendAPI =  new \Think\SendAPI();
        $data = array(
            'content'  => '您的验证码: '.$num1.';本验证码10分钟内有效',//短信内容
            'mobile'   =>  $loginPhone,//手机号码
            'xh'      => ''//小号
        );
        $sendAPI->data = $data;//初始化数据包
        $re=$sendAPI->sendSMS('POST');//GET or POST
        if($re){
            $response = array(
                'code'  => 200,
                'message' => '验证码发送成功',
            );
        }else{
            $response = array(
                'code'  => 201,
                'message' => '验证码发送失败',
            );
        }

    }else{
        $response = array(
            'code'  => 202,
            'message' => '手机号不存在',
        );
    }
    echo json_encode($response);
}

http://pan.baidu.com/s/1gf6C9rH    密码 ngtj



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值