示例#1
0
 /**
  * 忘记密码发送重置邮件(支持 ajax).
  * status: 0 用户名, 1 邮箱, 2 验证码, 8 发送失败, 9 发送成功
  *
  * @access public
  * @return void
  * @author Liuping <*****@*****.**>
  */
 public function forgotPasswdSendEmail()
 {
     $verifyCode = I('post.code', '');
     $username = I('post.username', '');
     $email = I('post.email', '');
     $result = [];
     $vcode = new Verify();
     if (empty($username)) {
         $result['status'] = 0;
         $result['msg'] = L('CONTROLLER_MSG25');
     } elseif (empty($email)) {
         $result['status'] = 1;
         $result['msg'] = L('CONTROLLER_MSG1');
     } elseif (empty($verifyCode)) {
         $result['status'] = 2;
         $result['msg'] = L('CONTROLLER_MSG1');
     } elseif (IS_AJAX && !$vcode->check($verifyCode)) {
         $result['status'] = 2;
         $result['msg'] = L('CONTROLLER_MSG27');
     } else {
         // 验证用户与邮箱是否匹配
         $model = new UserModel();
         if (!$model->checkUserAndEmail($username, $email)) {
             $result['status'] = 1;
             $result['msg'] = L('CONTROLLER_MSG36');
         } else {
             // 用户名和邮箱匹配发送邮件
             if (!IS_AJAX && IS_POST) {
                 // 如果能 post 提交代表已经 ajax 请求该方法已验证验证码了
                 if ($this->sendResetPwdEmail($username, $email)) {
                     $result['status'] = 9;
                     $result['msg'] = L('CONTROLLER_MSG23');
                     $result['url'] = U('Home/Index/index');
                 } else {
                     $result['status'] = 8;
                     $result['msg'] = L('CONTROLLER_MSG24');
                 }
             } else {
                 $result['status'] = 9;
                 $result['msg'] = L('CONTROLLER_MSG48');
             }
         }
     }
     if (IS_AJAX) {
         $this->ajaxReturn($result, 'json');
     } elseif ($result['status'] == 9) {
         //$this->success($result['msg'], $result['url']);
         // 发送成功, 显示邮箱验证提示页面
         $this->assign('jumpUrl', $result['url']);
         $this->display('successSendEmail');
     } else {
         $this->error($result['msg']);
     }
 }