生成短信验证码的方法

来源:互联网 发布:知乎每周精选要qq密码 编辑:程序博客网 时间:2024/06/05 17:36


这里的博客停止维护了  ,大家访问我的新博客: www.0352bt.com


这里的博客停止维护了  ,大家访问我的新博客: www.0352bt.com


这里的博客停止维护了  ,大家访问我的新博客: www.0352bt.com



$expire_time = 20;      //验证码过期时间/秒

生成短信验证码的方法,可以设置不同的长度

/*生成指定位数的验证码,用于短信,校验之类*/function verify_code($length = 4) {return str_pad(mt_rand(0, pow(10, $length) - 1), $length, '0', STR_PAD_LEFT);}

简单又实用,直接调用即可

存入session并且加上时间验证:

1、设置过期时长:

$expire_time = 20; //验证码过期时间/秒


2、添加短信验证到session,在发送时添加

$phone = $_POST['phone'];        $code = verify_code(4);        $_SESSION['verify_code'] = $code;        $_SESSION['verify_time'] = time();        $result = SendTemplateSMS($phone,array($code,10),1);

3、验证时先验证时间

if(time() - $_SESSION['verify_time'] > $expire_time) {            //验证码过期            echo "验证码已经过期  请重新请求";            unset($_SESSION['verify_code']);            unset($_SESSION['verify_time']);            return false;        }


再验证是否正确

if($verify_code == $_SESSION['verify_code']){            echo "验证成功";        } else {            echo "验证失败";        }


备注:使用的是容联云通信,比较好用,自己改造了一下发送方式,可以当成接口来使用

发送方法改造如下:

其中注释的部分是原来的代码


function sendTemplateSMS($to,$datas,$tempId){     $msg = array();     // 初始化REST SDK     global $accountSid,$accountToken,$appId,$serverIP,$serverPort,$softVersion;     $rest = new REST($serverIP,$serverPort,$softVersion);     $rest->setAccount($accountSid,$accountToken);     $rest->setAppId($appId);         // 发送模板短信     //echo "Sending TemplateSMS to $to <br/>";     $result = $rest->sendTemplateSMS($to,$datas,$tempId);     if($result == NULL ) {         //echo "result error!";         $msg['code'] = 1;         $msg['msg'] = 'result error!';         break;     }     if($result->statusCode!=0) {         //echo "error code :" . $result->statusCode . "<br>";         //echo "error msg :" . $result->statusMsg . "<br>";         $msg['code'] = 2;         $msg['msg'] = 'error code :' . $result->statusCode . ' And ' . 'error msg : ' . $result->statusMsg;         //TODO 添加错误处理逻辑     }else{         //echo "Sendind TemplateSMS success!<br/>";         $msg['code'] = '200';         $msg['msg'] = 'Sendind TemplateSMS success!';         // 获取返回信息         //$smsmessage = $result->TemplateSMS;         //echo "dateCreated:".$smsmessage->dateCreated."<br/>";         //echo "smsMessageSid:".$smsmessage->smsMessageSid."<br/>";         //TODO 添加成功处理逻辑     }    echo json_encode($msg);}




0 0
原创粉丝点击