php下发短信验证码60秒简单验证

来源:互联网 发布:人物绘画教程软件下载 编辑:程序博客网 时间:2024/04/27 17:14

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

简单实现原理就是

用手机号和一个键作为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('请勿频繁下发验证码,两次验证码发送时间不能小于60秒!',-2003);}switch($action){case 'register':$this->checkRegister($mobile,$type) === true  ? Error('您的手机号码注册过,请勿重复注册,谢谢!',-2001) : null;break;case 'findpassword':$this->checkRegister($mobile,$type) === false  ? Error('您的手机号码尚未注册过!',-2002) : null;break;default:break;}$code = rand(1111,9999);$content = "验证码:$code (任何索取行为均为诈骗),10分钟之内有效,请确保仅在登录时亲自填入,不告知他人。";$data = sendsms($mobile,$content);if($data!==false){$key = "Sendsmscode_mobile_".$mobile;Mem($key,$code,600);//缓存10分钟Mem($sendtimekey,$now,60);//                Success('短信验证码下发成功!短信验证码是 '.$code,1001);                Success('短信验证码下发成功!',1001);}else{Error('短信下发失败!',-2001);}}
找回代码如下

$key = "Sendsmscode_mobile_".$mobile;$mobilevercode = Mem($key);if(empty($mobilevercode) || ($mobilevercode!=$vercode)){Error('手机号或验证码错误!',-2003);



0 1
原创粉丝点击