首页 > 代码库 > php 给app写短信验证码 使用memcache缓存验证码
php 给app写短信验证码 使用memcache缓存验证码
废话不多说 直接上代码 直接使用session 储存短信验证码,app 那边一直说获取不到 注册的时候一直提示空 后面想想还是用缓存吧 上代码:
//发送验证码方法 public function sendSMSCodeOp(){ require_once(BASE_ROOT_PATH.DS.‘api/framework/function/sms.php‘); require_once(BASE_ROOT_PATH.DS.‘api/framework/function/common.php‘); $sms = new sms(); $_code = rand(100000, 999999); $_mobile = $_POST[‘mobile‘]; $_content = "【百城网】欢迎注册百城网,您的验证码为" . $_code; if(empty($_mobile)){ $this->_message(CODE_ERROR,‘手机号码不能空‘); }else{ if(!isMobile($_mobile)){ $this->_message(CODE_ERROR,‘手机号码格式有误‘); }else{ if($sms->sendSMS($_content, $_mobile)){ // $_SESSION[‘SMS_Code‘] = $_code; //$_SESSION[‘mobile‘] = $_mobile; //这一步写入缓存,由于服务器没有安装memcache,就用框架带的缓存机制来存储 $cache = Cache::getInstance(C(‘cache.type‘)); $code_info = array(); $code_info[‘last_access‘] = time(); $code_info[‘sms_mobile‘] = $_mobile; $code_info[‘sms_mobile_code‘] = $_code; $cache->set($_mobile,$code_info); $this->_printJson(CODE_SUCCESS,array("success"=>1),‘短信验证码发送成功‘); }else{ $this->_message(CODE_ERROR,‘验证码发送失败‘); } } } }
/** * @param $mobile * @param $mobile_code * 验证验证码是否正确 */ private function checkCode($mobile,$mobile_code){ $obj_cache = Cache::getInstance(C(‘cache.type‘)); $obj = $obj_cache->get($mobile); if(empty($obj)){ return array(‘error‘ => ‘您还未发送验证码‘); }else{ if(!isset($obj[‘last_access‘])||(time()-$obj[‘last_access‘])>180*1000){ return array(‘error‘ => ‘验证码已经失效‘); }else{ if($mobile_code==$obj[‘sms_mobile_code‘] && $mobile==$obj[‘sms_mobile‘] ){ return array("success"=>‘验证通过‘); }else{ return array(‘error‘ => ‘验证码错误‘); } } } }
php 给app写短信验证码 使用memcache缓存验证码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。