热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php短信验证码30分钟,php下发短信验证码60秒简单验证

下发短信验证码,除了注册就是验证手机号简单实现原理就是用手机号和一个键作为key存到缓存里,用户请求的时候,验证这个手机号是不是已经申请过

下发短信验证码,除了注册就是验证手机号

简单实现原理就是

用手机号和一个键作为key存到缓存里,

用户请求的时候,验证这个手机号是不是已经申请过key*(即已手机号为缓存的key有没有,)如果有,并且当前时间与当时请求时间在60秒之内,那就不要在请求发送短信接口了。

另外,如果发送成功了,要设置一个验证码的时间有效期,一般10分钟。

然后在去对应的找回密码或者是注册中调用一下这个对应的memkey就可以。

下发代码如下。

if(is_numeric($mobile) && strlen($mobile)==11){

$sendtimekey = "Sendsmscode_mobile_sendtime_".$mobile;

$lastsendtime = (int) Mem($sendtimekey);

$now = time();

if($now - $lastsendtime <60){

Error(&#39;请勿频繁下发验证码&#xff0c;两次验证码发送时间不能小于60秒&#xff01;&#39;,-2003);

}

switch($action){

case &#39;register&#39;:

$this->checkRegister($mobile,$type) &#61;&#61;&#61; true ? Error(&#39;您的手机号码注册过&#xff0c;请勿重复注册&#xff0c;谢谢&#xff01;&#39;,-2001) : null;

break;

case &#39;findpassword&#39;:

$this->checkRegister($mobile,$type) &#61;&#61;&#61; false ? Error(&#39;您的手机号码尚未注册过&#xff01;&#39;,-2002) : null;

break;

default:

break;

}

$code &#61; rand(1111,9999);

$content &#61; "验证码&#xff1a;$code (任何索取行为均为诈骗)&#xff0c;10分钟之内有效&#xff0c;请确保仅在登录时亲自填入&#xff0c;不告知他人。";

$data &#61; sendsms($mobile,$content);

if($data!&#61;&#61;false){

$key &#61; "Sendsmscode_mobile_".$mobile;

Mem($key,$code,600);//缓存10分钟

Mem($sendtimekey,$now,60);

// Success(&#39;短信验证码下发成功&#xff01;短信验证码是 &#39;.$code,1001);

Success(&#39;短信验证码下发成功&#xff01;&#39;,1001);

}else{

Error(&#39;短信下发失败&#xff01;&#39;,-2001);

}

}找回代码如下

$key &#61; "Sendsmscode_mobile_".$mobile;

$mobilevercode &#61; Mem($key);

if(empty($mobilevercode) || ($mobilevercode!&#61;$vercode)){

Error(&#39;手机号或验证码错误&#xff01;&#39;,-2003);



推荐阅读
author-avatar
hahah
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有