ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

tp5.0框架手机短信验证码

2021-06-29 21:02:53  阅读:306  来源: 互联网

标签:tp5.0 code return phone 验证码 手机短信 time data


1.获取前端验证码按钮值

$('#dyMobileButton').click(function () {
        var phone=$('#phone').val();
        var time=60;//产生一个时间60秒
        var timer=setInterval(function () {//setInterval倒计时
              time--;
              if (time>0){
                  $('#dyMobileButton').html(time+'后重新发送');
                  $('#dyMobileButton').prop('disabled',true);//开启禁用此按钮
              }else{
                  clearInterval(timer);//清除计时任务
                  $('#dyMobileButton').html('发送验证码');
                  $('#dyMobileButton').prop('disabled',false);//disabled禁用
              }
        },1000)
        $.ajax({
            url:"{:url('/code')}",
            type:"GET",
            data:{"phone":phone},
            dataType:"json",
            success:function (res) {
                console.log(res)
            }
        })
    })

2.短信宝

<?php
$statusStr = array(
"0" => "短信发送成功",
"-1" => "参数不全",
"-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
"30" => "密码错误",
"40" => "账号不存在",
"41" => "余额不足",
"42" => "帐户已过期",
"43" => "IP地址限制",
"50" => "内容含有敏感词"
);
$smsapi = "http://api.smsbao.com/";
$user = "***"; //短信平台帐号
$pass = md5("****"); //短信平台密码
$content="短信内容";//要发送的短信内容
$phone = "*****";//要发送短信的手机号码
$sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
$result =file_get_contents($sendurl) ;
echo $statusStr[$result];
?>

3.在控制器中写一个方法

   /**
     * @return \think\response\Json
     * 手机发送短信方法
     */
    public function code()
    {
        if (time()-Cache::get('time')<60){
            return json(['code'=>1,'msg'=>'1分钟内不能重复获取验证码','data'=>'']);
        }
        $tel=input('phone');
        $statusStr = array(
            "0" => "短信发送成功",
            "-1" => "参数不全",
            "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
            "30" => "密码错误",
            "40" => "账号不存在",
            "41" => "余额不足",
            "42" => "帐户已过期",
            "43" => "IP地址限制",
            "50" => "内容含有敏感词"
        );
        $smsapi = "http://api.smsbao.com/";
        $user = "****"; //短信平台帐号
        $pass = md5("****"); //短信平台密码
        $rand=rand(1000,9999);  //产生一组4为随机验证码
        Cache::set('code',$rand,300);//缓存产生一组4为随机验证码 三分钟后过期
        Cache::set('time',time(),60); //记录时间  一分钟内不能重复发送
        $content = "今天学废了吗".$rand;//把产生的4位随机码放到要发送的信息内
        $phone = $tel;//要发送短信的手机号码
        $sendurl = $smsapi . "sms?u=" . $user . "&p=" . $pass . "&m=" . $phone . "&c=" . urlencode($content);
        $result = file_get_contents($sendurl);
        if ($result!=0){
            return json(['code'=>1,'msg'=>$statusStr[$result],'data'=>null]);
        }
        return json(['code'=>0,'msg'=>'短信发送成功','data'=>$rand]);
    }

4.在注册方法中判断客户输入的验证码是否和缓存当中的验证码相同

/**
     * @return \think\response\Json
     * 注册方法
     */

    public function Add()
    {
        $data=input();
        $validate = Loader::validate('Login');//调用独立验证器
        if(!$validate->check($data)){
          return  json(['code'=>1,'info'=>$validate->getError(),'data'=>'']);
        }

        if ($data['code']!=Cache::get('code')){//在注册的时候判断你输入的验证码是否和存在缓存当中验证码相同
            return json(['code'=>1,'info'=>'验证码不正确','data'=>'']);
        }

        $res=\app\common\model\Register::Add($data);
        if ($res){
            return json(['code'=>0,'info'=>'注册成功','data'=>'']);
        }else{
            return json(['code'=>1,'info'=>'注册失败','data'=>'']);
        }
    }

5.模型的注册

/**
     * @param $data
     * @return bool|false|int
     * 模型的注册
     */
    public static function Add($data)
    {
        $res=new Register();
        return $res->allowField(true)->save($data);//allowField过滤字段
    }

标签:tp5.0,code,return,phone,验证码,手机短信,time,data
来源: https://blog.csdn.net/weixin_54804804/article/details/118343610

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有