['except'=>'getverify,login,logout,regist,toregist,checklogin,getphoneverifycode,checkloginkey,checkemail,checkfindkey,protocol,forgetpass,forgetpasst,resetpass,forgetpasss,forgetpassf,findpass,getfindphone,checkfindphone,getfindemail,tologinbox'] ]; /** * 去登录 */ public function login(){ $USER = session('WST_USER'); //如果已经登录了则直接跳去用户中心 if(!empty($USER) && !empty($USER['userId'])){ $this->redirect("users/index"); } $loginName = cookie("loginName"); if(!empty($loginName)){ $this->assign('loginName',cookie("loginName")); }else{ $this->assign('loginName',''); } return $this->fetch('user_login'); } /** * 用户退出 */ public function logout(){ session('WST_USER',null); setcookie("loginPwd", null); session('WST_HO_CURRENTURL', null); hook('afterUserLogout'); return WSTReturn("退出成功",1); } /** * 用户注册 * */ public function regist(){ $USER = session('WST_USER'); //如果已经登录了则直接跳去用户中心 if(!empty($USER) && $USER['userId']!=''){ $this->redirect("users/index"); } $loginName = cookie("loginName"); if(!empty($loginName)){ $this->assign('loginName',cookie("loginName")); }else{ $this->assign('loginName',''); } return $this->fetch('regist'); } /** * 新用户注册 */ public function toRegist(){ $m = new MUsers(); $rs = $m->regist(); $rs['url'] = session('WST_HO_CURRENTURL'); return $rs; } /** * 验证登录 * */ public function checkLogin(){ $m = new MUsers(); $rs = $m->checkLogin(); $rs['url'] = session('WST_HO_CURRENTURL'); return $rs; } /** * 获取验证码 */ public function getPhoneVerifyCode(){ $userPhone = input("post.userPhone"); $rs = array(); if(!WSTIsPhone($userPhone)){ return WSTReturn("手机号格式不正确!"); exit(); } $m = new MUsers(); $rs = $m->checkUserPhone($userPhone,(int)session('WST_USER.userId')); if($rs["status"]!=1){ return WSTReturn("手机号已存在!"); exit(); } $phoneVerify = rand(100000,999999); $rv = ['status'=>-1,'msg'=>'短信发送失败']; $tpl = WSTMsgTemplates('PHONE_USER_REGISTER_VERFIY'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['MALL_NAME'=>WSTConf("CONF.mallName"),'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]]; $m = new LogSms(); $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerify',$phoneVerify); } if($rv['status']==1){ session('VerifyCode_userPhone',$phoneVerify); session('VerifyCode_userPhone_Time',time()); } return $rv; } /** * 判断手机或邮箱是否存在 */ public function checkLoginKey(){ $m = new MUsers(); if(input("post.loginName"))$val=input("post.loginName"); if(input("post.userPhone"))$val=input("post.userPhone"); if(input("post.userEmail"))$val=input("post.userEmail"); $userId = (int)session('WST_USER.userId'); $rs = WSTCheckLoginKey($val,$userId); if($rs["status"]==1){ return array("ok"=>""); }else{ return array("error"=>$rs["msg"]); } } /** * 判断邮箱是否存在 */ public function checkEmail(){ $data = $this->checkLoginKey(); if(isset($data['error']))$data['error'] = '对不起,该邮箱已存在'; return $data; } /** * 判断用户名是否存在/忘记密码 */ public function checkFindKey(){ $m = new MUsers(); $userId = (int)session('WST_USER.userId'); $rs = WSTCheckLoginKey(input("post.loginName"),$userId); if($rs["status"]==1){ return array("error"=>"该用户不存在!"); }else{ return array("ok"=>""); } } /** * 跳到用户注册协议 */ public function protocol(){ return $this->fetch("user_protocol"); } /** * 用户中心 */ public function index(){ session('WST_MENID0',0); session('WST_MENUID30',0); // 待付款 待收货 待评价 $info = model('home/Users')->getStatusNum(); $this->assign($info); $m = new MUsers(); $data = $m->getById((int)session('WST_USER.userId')); $this->assign('data',$data); return $this->fetch('users/index'); } /** * 跳去修改个人资料 */ public function edit(){ $m = new MUsers(); //获取用户信息 $userId = (int)session('WST_USER.userId'); $data = $m->getById($userId); $this->assign('data',$data); return $this->fetch('users/user_edit'); } /** * 跳去修改密码页 */ public function editPass(){ $m = new MUsers(); //获取用户信息 $userId = (int)session('WST_USER.userId'); $data = $m->getById($userId); $this->assign('data',$data); return $this->fetch('users/security/user_pass'); } /** * 修改密码 */ public function passedit(){ $userId = (int)session('WST_USER.userId'); $m = new MUsers(); $rs = $m->editPass($userId); return $rs; } /** * 修改 */ public function toEdit(){ $m = new MUsers(); $rs = $m->edit(); return $rs; } /** * 安全设置页 */ public function security(){ //获取用户信息 $m = new MUsers(); $data = $m->getById((int)session('WST_USER.userId')); if($data['userPhone']!='')$data['userPhone'] = WSTStrReplace($data['userPhone'],'*',3); if($data['userEmail']!='')$data['userEmail'] = WSTStrReplace($data['userEmail'],'*',2,'@'); $this->assign('data',$data); return $this->fetch('users/security/index'); } /** * 修改邮箱页 */ public function editEmail(){ hook('homeControllerUsersEditEmail'); //获取用户信息 $userId = (int)session('WST_USER.userId'); $m = new MUsers(); $data = $m->getById($userId); if($data['userEmail']!='')$data['userEmail'] = WSTStrReplace($data['userEmail'],'*',2,'@'); $this->assign('data',$data); $process = 'One'; $this->assign('process',$process); if($data['userEmail']){ return $this->fetch('users/security/user_edit_email'); }else{ return $this->fetch('users/security/user_email'); } } /** * 发送验证邮件/绑定邮箱 */ public function getEmailVerify(){ $userEmail = input('post.userEmail'); if(!$userEmail){ return WSTReturn('请输入邮箱!',-1); } $code = input("post.verifyCode"); $process = input("post.process"); if(!WSTVerifyCheck($code)){ return WSTReturn('验证码错误!',-1); } $rs = WSTCheckLoginKey($userEmail,(int)session('WST_USER.userId')); if($rs["status"]!=1){ return WSTReturn("邮箱已存在!"); exit(); } $code = rand(0,999999); $sendRs = ['status'=>-1,'msg'=>'邮件发送失败']; $tpl = WSTMsgTemplates('EMAIL_BIND'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}']; $replace = [session('WST_USER.loginName'),date('Y-m-d H:i:s'),$code,30]; $sendRs = WSTSendMail($userEmail,'绑定邮箱',str_replace($find,$replace,$tpl['content'])); } if($sendRs['status']==1){ // 绑定的邮箱 session('email.val',$userEmail); // 验证码 session("email.key", $code); // 发起绑定邮箱的时间; session('email.time',time()); return WSTReturn("发送成功",1); }else{ return WSTReturn($sendRs['msg'],-1); } } /** * 绑定邮箱 */ public function emailEdit(){ $USER = session('WST_USER'); if(empty($USER) && $USER['userId']==''){ $this->redirect("home/users/login"); } $bindTime = session('email.time'); $code = session('email.key'); $bindEmail = session('email.val'); if(time()>floatval($bindTime)+30*60)$this->error('验证码已失效!'); $rs = WSTCheckLoginKey($bindEmail,(int)session('WST_USER.userId')); if($rs["status"]!=1){ $this->error('邮箱已存在!'); exit(); } $secretCode = input('secretCode'); if($code!=$secretCode)return WSTReturn('校验码错误',-1); $m = new MUsers(); $rs = $m->editEmail((int)session('WST_USER.userId'),$bindEmail); if($rs['status'] == 1){ // 清空session session('email',null); return WSTReturn('验证通过',1); } $this->error('绑定邮箱失败'); } /** * 完成邮箱绑定 */ public function doneEmailBind(){ $this->assign('process','Three'); return $this->fetch('users/security/user_email'); } /** * 发送验证邮件/修改邮箱 */ public function getEmailVerifyt(){ $m = new MUsers(); $data = $m->getById(session('WST_USER.userId')); $userEmail = $data['userEmail']; if(!$userEmail){ return WSTReturn('请输入邮箱!',-1); } $code = input("post.verifyCode"); if(!WSTVerifyCheck($code)){ return WSTReturn('验证码错误!',-1); } $code = rand(0,999999); $sendRs = ['status'=>-1,'msg'=>'邮件发送失败']; $tpl = WSTMsgTemplates('EMAIL_EDIT'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}']; $replace = [session('WST_USER.loginName'),date('Y-m-d H:i:s'),$code,30]; $sendRs = WSTSendMail($userEmail,'绑定邮箱',str_replace($find,$replace,$tpl['content'])); } if($sendRs['status']==1){ // 修改的用户 session('email.uId',(int)session('WST_USER.userId')); // 绑定的邮箱 session('email.val',$userEmail); // 验证码 session("email.key", $code); // 发起绑定邮箱的时间; session('email.time',time()); return WSTReturn("发送成功",1); }else{ return WSTReturn($sendRs['msg'],-1); } } /** * 修改邮箱 */ public function emailEditt(){ $USER = session('WST_USER'); if(empty($USER) && $USER['userId']!=''){ $this->redirect("home/users/login"); } $bindTime = session('email.time'); $code = session('email.key'); $bindEmail = session('email.val'); $uId = (int)session('email.uId'); if(time()>floatval($bindTime)+30*60)$this->error('验证码已失效!'); $rs = WSTCheckLoginKey($bindEmail,(int)session('WST_USER.userId')); if($rs["status"]!=1){ $this->error('邮箱已存在!'); exit(); } $secretCode = input('secretCode'); if($code!=$secretCode)return WSTReturn('校验码错误',-1); $m = new MUsers(); $data = $m->getById($uId); if($data['userId']==session('WST_USER.userId')){ return WSTReturn('验证通过',1); } $this->error('无效的用户!'); } /** * 修改邮箱第二步 */ public function editEmail2(){ $this->assign('process','Two'); return $this->fetch('users/security/user_edit_email'); } /** * 修改邮箱第三步 */ public function editEmail3(){ $this->assign('process','Three'); return $this->fetch('users/security/user_edit_email'); } /** * 修改手机页 */ public function editPhone(){ //获取用户信息 $userId = (int)session('WST_USER.userId'); $m = new MUsers(); $data = $m->getById($userId); if($data['userPhone']!='')$data['userPhone'] = WSTStrReplace($data['userPhone'],'*',3); $this->assign('data',$data); $process = 'One'; $this->assign('process',$process); if($data['userPhone']){ return $this->fetch('users/security/user_edit_phone'); }else{ return $this->fetch('users/security/user_phone'); } } /** * 跳到发送手机验证 */ public function toApply(){ return $this->fetch("user_verify_phone"); } /** * 绑定手机/获取验证码 */ public function getPhoneVerifyo(){ $userPhone = input("post.userPhone"); if(!WSTIsPhone($userPhone)){ return WSTReturn("手机号格式不正确!"); exit(); } $rs = array(); $m = new MUsers(); $rs = WSTCheckLoginKey($userPhone,(int)session('WST_USER.userId')); if($rs["status"]!=1){ return WSTReturn("手机号已存在!"); exit(); } $data = $m->getById(session('WST_USER.userId')); $phoneVerify = rand(100000,999999); $rv = ['status'=>-1,'msg'=>'短信发送失败']; $tpl = WSTMsgTemplates('PHONE_EDIT'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]]; $m = new LogSms(); $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyo',$phoneVerify); } if($rv['status']==1){ $USER = []; $USER['userPhone'] = $userPhone; $USER['phoneVerify'] = $phoneVerify; session('Verify_info',$USER); session('Verify_userPhone_Time',time()); return WSTReturn('短信发送成功!',1); } return $rv; } /** * 绑定手机 */ public function getPhoneVerifyb(){ $userPhone = input("post.userPhone"); if(!WSTIsPhone($userPhone)){ return WSTReturn("手机号格式不正确!"); exit(); } $rs = array(); $m = new MUsers(); $rs = WSTCheckLoginKey($userPhone,(int)session('WST_USER.userId')); if($rs["status"]!=1){ return WSTReturn("手机号已存在!"); exit(); } $data = $m->getById(session('WST_USER.userId')); $phoneVerify = rand(100000,999999); $rv = ['status'=>-1,'msg'=>'短信发送失败']; $tpl = WSTMsgTemplates('PHONE_BIND'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]]; $m = new LogSms(); $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyb',$phoneVerify); } if($rv['status']==1){ $USER = []; $USER['userPhone'] = $userPhone; $USER['phoneVerify'] = $phoneVerify; session('Verify_info',$USER); session('Verify_userPhone_Time',time()); return WSTReturn('短信发送成功!',1); } return $rv; } /** * 绑定手机 */ public function phoneEdito(){ $phoneVerify = input("post.Checkcode"); $process = input("post.process"); $timeVerify = session('Verify_userPhone_Time'); if(!session('Verify_info.phoneVerify') || time()>floatval($timeVerify)+10*60){ return WSTReturn("地址已失效,请重新验证身份!"); exit(); } if($phoneVerify==session('Verify_info.phoneVerify')){ $m = new MUsers(); $rs = $m->editPhone((int)session('WST_USER.userId'),session('Verify_info.userPhone')); if($process=='Two'){ $rs['process'] = $process; }else{ $rs['process'] = '0'; } return $rs; } return WSTReturn("校验码不一致,请重新输入!"); } public function editPhoneSu(){ $pr = input("get.pr"); $process = 'Three'; $this->assign('process',$process); if($pr == 'Two'){ return $this->fetch('users/security/user_edit_phone'); }else{ return $this->fetch('users/security/user_phone'); } } /** * 修改手机/获取验证码 */ public function getPhoneVerifyt(){ $m = new MUsers(); $data = $m->getById(session('WST_USER.userId')); $userPhone = $data['userPhone']; $phoneVerify = rand(100000,999999); $rv = ['status'=>-1,'msg'=>'短信发送失败']; $tpl = WSTMsgTemplates('PHONE_EDIT'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]]; $m = new LogSms(); $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyt',$phoneVerify); } if($rv['status']==1){ $USER = []; $USER['userPhone'] = $userPhone; $USER['phoneVerify'] = $phoneVerify; session('Verify_info2',$USER); session('Verify_userPhone_Time2',time()); return WSTReturn('短信发送成功!',1); } return $rv; } /** * 修改手机 */ public function phoneEditt(){ $phoneVerify = input("post.Checkcode"); $timeVerify = session('Verify_userPhone_Time2'); if(!session('Verify_info2.phoneVerify') || time()>floatval($timeVerify)+10*60){ return WSTReturn("校验码已失效,请重新发送!"); exit(); } if($phoneVerify==session('Verify_info2.phoneVerify')){ return WSTReturn("验证成功",1); } return WSTReturn("校验码不一致,请重新输入!",-1); } public function editPhoneSut(){ $process = 'Two'; $this->assign('process',$process); if(session('Verify_info2.phoneVerify')){ return $this->fetch('users/security/user_edit_phone'); } $this->error('地址已失效,请重新验证身份'); } /** * 处理图像裁剪 */ // public function editUserPhoto(){ // $imageSrc = trim(input('post.photoSrc'),'/'); // $image = \image\Image::open($imageSrc); // $x = (int)input('post.x'); // $y = (int)input('post.y'); // $w = (int)input('post.w',150); // $h = (int)input('post.h',150); // $rs = $image->crop($w, $h, $x, $y, 150, 150)->save($imageSrc); // if($rs){ // return WSTReturn('',1,$imageSrc); // exit; // } // return WSTReturn('发生未知错误.',-1); // } /** * 处理图像裁剪 修改适应oss mark 201080612 by zl */ public function editUserPhoto(){ $imageSrc = trim(input('post.photoSrc'),'/'); //判断图片是否缩放了 $res = strpos($imageSrc,'?x-oss-process='); $x = (int)input('post.x'); $y = (int)input('post.y'); $w = (int)input('post.w',150); $h = (int)input('post.h',150); //判断是否缩放 如果缩放了就不加'?x-oss-process=' if($res){ $imageSrc=$imageSrc.',image/crop,x_'.$x.',y_'.$y.',w_'.$w.',h_'.$h.',image/resize,w_150,h_150'; }else{ $imageSrc=$imageSrc.'?x-oss-process=image/crop,x_'.$x.',y_'.$y.',w_'.$w.',h_'.$h.',image/resize,w_150,h_150'; } return WSTReturn('',1,$imageSrc); } /****************************************************** 忘记密码 **********************************************************/ /** * 忘记支付密码 */ public function backPayPass(){ $m = new MUsers(); $userId = (int)session('WST_USER.userId'); $user = $m->getById($userId); $userPhone = $user['userPhone']; $user['userPhone'] = WSTStrReplace($user['userPhone'],'*',3); $user['phoneType'] = empty($userPhone)?0:1; $backType = (int)session('Type_backPaypwd'); $timeVerify = session('Verify_backPaypwd_Time'); $process = 'One'; $this->assign('data', $user); $this->assign('process', $process); return $this->fetch('users/security/user_edit_pay'); } /** * 忘记支付密码:发送短信 */ public function getphoneverifypay(){ $m = new MUsers(); $data = $m->getById(session('WST_USER.userId')); $userPhone = $data['userPhone']; $phoneVerify = rand(100000,999999); $rv = ['status'=>-1,'msg'=>'短信发送失败']; $tpl = WSTMsgTemplates('PHONE_FOTGET_PAY'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]]; $m = new LogSms(); $rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyt',$phoneVerify); } if($rv['status']==1){ $USER = []; $USER['userPhone'] = $userPhone; $USER['phoneVerify'] = $phoneVerify; session('Verify_backPaypwd_info',$USER); session('Verify_backPaypwd_Time',time()); return WSTReturn('短信发送成功!',1); } return $rv; } /** * 忘记支付密码:验证 */ public function payEditt(){ $payVerify = input("post.Checkcode"); $timeVerify = session('Verify_backPaypwd_Time'); if(!session('Verify_backPaypwd_info.phoneVerify') || time()>floatval($timeVerify)+10*60){ return WSTReturn("校验码已失效,请重新发送!"); exit(); } if($payVerify==session('Verify_backPaypwd_info.phoneVerify')){ return WSTReturn("验证成功",1); } return WSTReturn("校验码不一致,请重新输入!",-1); } public function editPaySut(){ $process = 'Two'; $this->assign('process',$process); if(session('Verify_backPaypwd_info.phoneVerify')){ return $this->fetch('users/security/user_edit_pay'); } $this->error('地址已失效,请重新验证身份'); } /** * 忘记支付密码:设置 */ public function payEdito(){ $process = input("post.process"); $timeVerify = session('Verify_backPaypwd_Time'); if(!session('Verify_backPaypwd_info.phoneVerify') || time()>floatval($timeVerify)+10*60){ return WSTReturn("地址已失效,请重新验证身份!"); exit(); } $m = new MUsers(); $rs = $m->resetbackPay(); if($process=='Two'){ $rs['process'] = $process; }else{ $rs['process'] = '0'; } return $rs; } /** * 忘记支付密码:完成 */ public function editPaySu(){ $pr = input("get.pr"); $process = 'Three'; $this->assign('process',$process); if($pr == 'Two'){ return $this->fetch('users/security/user_edit_pay'); }else{ return $this->fetch('users/security/user_pay_pass'); } } /** * 忘记密码 */ public function forgetPass(){ return $this->fetch('forget_pass'); } public function forgetPasst(){ if(time()getById($userId); if($info['userPhone']!='')$info['userPhone'] = WSTStrReplace($info['userPhone'],'*',3); if($info['userEmail']!='')$info['userEmail'] = WSTStrReplace($info['userEmail'],'*',2,'@'); $this->assign('forgetInfo',$info); return $this->fetch('forget_pass2'); }else{ $this->error('页面已过期!'); } } // 重置密码 public function resetPass(){ if(!session('findPass')){ $this->error('连接已失效!',url('home/users/index')); } if(time()>floatval(session('REST_Time'))+30*60)$this->error('连接已失效!'); return $this->fetch('forget_pass3'); } // 验证校验码 public function forgetPasss(){ if(!session('findPass')){ $this->error('连接已失效!'); } if(time()>floatval(session('REST_Time'))+30*60)$this->error('连接已失效!'); $USER = session('findPass'); if(empty($USER) && $USER['userId']!=''){ $this->error('请在同一浏览器操作!'); } $USER = session('findPass'); if(empty($USER) && $USER['userId']!=''){ $this->expire('请在同一浏览器操作!'); } $uId = session('findPass.userId'); $key = session("findPass.key"); // 验证邮箱中的验证码 $secretCode = input('secretCode'); if($key==$secretCode){ session('REST_userId',$uId); session('REST_success','1'); return WSTReturn('验证成功',1); }else{ return WSTReturn('校验码错误',-1); } } public function forgetPassf(){ return $this->fetch('forget_pass4'); } /** * 找回密码 */ public function findPass(){ //禁止缓存 header('Cache-Control:no-cache,must-revalidate'); header('Pragma:no-cache'); $code = input("post.verifyCode"); $step = input("post.step/d"); switch ($step) { case 1:#第一步,验证身份 if(!WSTVerifyCheck($code)){ return WSTReturn('验证码错误!',-1); } $loginName = input("post.loginName"); $rs = WSTCheckLoginKey($loginName); if($rs["status"]==1){ return WSTReturn("用户名不存在!"); exit(); } $m = new MUsers(); $info = $m->checkAndGetLoginInfo($loginName); if ($info != false) { session('findPass',array('userId'=>$info['userId'],'loginName'=>$loginName,'userPhone'=>$info['userPhone'],'userEmail'=>$info['userEmail'],'loginSecret'=>$info['loginSecret'],'findTime'=>time())); return WSTReturn("操作成功",1); }else return WSTReturn("用户名不存在!"); break; case 2:#第二步,验证方式 if (session('findPass.loginName') != null ){ if(input("post.modes")==1){ if ( session('findPass.userPhone') == null) { return WSTReturn('你没有预留手机号码,请通过邮箱方式找回密码!',-1); } $phoneVerify = input("post.Checkcode"); if(!$phoneVerify){ return WSTReturn('校验码不能为空!',-1); } return $this->checkfindPhone($phoneVerify); }else{ if (session('findPass.userEmail')==null) { return WSTReturn('你没有预留邮箱,请通过手机号码找回密码!',-1); } if(!WSTVerifyCheck($code)){ return WSTReturn('验证码错误!',-1); } return $this->getfindEmail(); } }else $this->error('页面已过期!'); break; case 3:#第三步,设置新密码 $resetPass = session('REST_success'); if($resetPass != 1)$this->error("页面已失效!"); $loginPwd = input("post.loginPwd"); $repassword = input("post.repassword"); $decrypt_data = WSTRSA($loginPwd); $decrypt_data2 = WSTRSA($repassword); if($decrypt_data['status']==1 && $decrypt_data2['status']==1){ $loginPwd = $decrypt_data['data']; $repassword = $decrypt_data2['data']; }else{ return WSTReturn('设置失败'); } if ($loginPwd == $repassword) { $m = new MUsers(); $rs = $m->resetPass(); if($rs['status']==1){ return $rs; }else{ return $rs; } }else return WSTReturn('两次密码不同!',-1); break; default: $this->error('页面已过期!'); break; } } /** * 手机验证码获取 */ public function getfindPhone(){ session('WST_USER',session('findPass.userId')); if(session('findPass.userPhone')==''){ return WSTReturn('你没有预留手机号码,请通过邮箱方式找回密码!',-1); } $phoneVerify = rand(100000,999999); session('WST_USER',null); $rv = ['status'=>-1,'msg'=>'短信发送失败']; $tpl = WSTMsgTemplates('PHONE_FOTGET'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $params = ['tpl'=>$tpl,'params'=>['VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]]; $m = new LogSms(); $rv = $m->sendSMS(0,session('findPass.userPhone'),$params,'getPhoneVerify',$phoneVerify); } if($rv['status']==1){ // 记录发送短信的时间,用于验证是否过期 session('REST_Time',time()); $USER = []; $USER['phoneVerify'] = $phoneVerify; $USER['time'] = time(); session('findPhone',$USER); return WSTReturn('短信发送成功!',1); } return $rv; } /** * 手机验证码检测 * -1 错误,1正确 */ public function checkfindPhone($phoneVerify){ if(!session('findPhone.phoneVerify') || time()>floatval(session('findPhone.time'))+10*60){ return WSTReturn("校验码已失效,请重新发送!"); exit(); } if (session('findPhone.phoneVerify') == $phoneVerify ) { $fuserId = session('findPass.userId'); if(!empty($fuserId)){ session('REST_userId',$fuserId); session('REST_success','1'); $rs['status'] = 1; $rs['url'] = url('home/users/resetPass'); return $rs; } return WSTReturn('无效用户',-1); } return WSTReturn('校验码错误!',-1); } /** * 发送验证邮件/找回密码 */ public function getfindEmail(){ $code = rand(0,999999); $sendRs = ['status'=>-1,'msg'=>'邮件发送失败']; $tpl = WSTMsgTemplates('EMAIL_FOTGET'); if( $tpl['tplContent']!='' && $tpl['status']=='1'){ $find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}']; $replace = [session('findPass.loginName'),date('Y-m-d H:i:s'),$code,30]; $sendRs = WSTSendMail(session('findPass.userEmail'),'密码重置',str_replace($find,$replace,$tpl['content'])); } if($sendRs['status']==1){ $uId = session('findPass.userId'); session("findPass.key", $code); // 发起重置密码的时间; session('REST_Time',time()); return WSTReturn("发送成功",1); }else{ return WSTReturn($sendRs['msg'],-1); } } /** * 加载登录小窗口 */ public function toLoginBox(){ return $this->fetch('box_login'); } /** * 跳去修改支付密码页 */ public function editPayPass(){ $m = new MUsers(); //获取用户信息 $userId = (int)session('WST_USER.userId'); $data = $m->getById($userId); $this->assign('data',$data); return $this->fetch('users/security/user_pay_pass'); } /** * 修改支付密码 */ public function payPassEdit(){ $userId = (int)session('WST_USER.userId'); $m = new MUsers(); $rs = $m->editPayPass($userId); return $rs; } /** * 获取用户金额 */ public function getUserMoney(){ $m = new MUsers(); $rs = $m->getFieldsById((int)session('WST_USER.userId'),'userMoney,lockMoney,rechargeMoney,payPwd'); $rs['isSetPayPwd'] = ($rs['payPwd']=='')?0:1; $rs['isDraw'] = ((float)WSTConf('CONF.drawCashUserLimit')<=$rs['userMoney'])?1:0; unset($rs['payPwd']); return WSTReturn('',1,$rs); } }