示例#1
0
 /**
  * 修改用户邮箱发送邮箱验证码.
  *
  * @access public
  * @return void
  * @author Liuping <*****@*****.**>
  */
 public function changeInfoEmailEmailCode()
 {
     $lang = LANG_SET;
     // 标记是否是给新邮箱发邮件
     $newtag = isset($_POST['newtag']) ? TRUE : FALSE;
     // 没有提交邮箱, 表示给当前用户的邮箱发送信息
     $email = I('post.email', '');
     $email = empty($email) ? session('email') : $email;
     $result = [];
     $pattern = '/^\\w+@\\w+(?:\\.\\w+)+$/';
     $username = session('username');
     $userModel = new UserModel();
     $userInfo = $userModel->checkExistEmail($email);
     if (empty($email)) {
         $result['status'] = 0;
         $result['msg'] = L('CONTROLLER_MSG1');
     } elseif (!preg_match($pattern, $email)) {
         $result['status'] = 0;
         $result['msg'] = L('CONTROLLER_MSG5');
     } elseif ($newtag && $userInfo && $username != $userInfo['username']) {
         // 新邮箱已存在
         $result['status'] = 0;
         $result['msg'] = L('CONTROLLER_MSG6');
     } else {
         $title = '[ApplicationUK]Change Contact Email';
         $code = $this->getRandCode();
         // 获取模板内容.
         $cont = $this->tplChangeEmailEmailCode('email', $newtag);
         $message = isset($cont[$lang]) ? $cont[$lang] : $cont['en-us'];
         $_searches = ['%USER_NAME%', '%CODE%'];
         $_replaces = [$username, $code];
         $message = str_replace($_searches, $_replaces, $message);
         $model = new UserCaptchaModel();
         // 邮件发送成功时 commit, 发送失败 rollback
         $model->startTrans();
         $model->type = 2;
         // 1:手机 2:邮箱
         $model->account = $email;
         $model->code = $code;
         $model->createtime = time();
         $res = $model->add();
         $res1 = Mail::applySendEmail($email, $title, $message);
         if ($res && $res1) {
             $model->commit();
             $result['status'] = 9;
             $result['msg'] = L('CONTROLLER_MSG23');
         } else {
             $model->rollback();
             $result['status'] = 8;
             $result['msg'] = L('CONTROLLER_MSG24');
         }
     }
     if (IS_AJAX) {
         $this->ajaxReturn($result, 'json');
     } elseif ($result['status'] == 9) {
         $this->success($result['msg']);
     } else {
         $this->error($result['msg']);
     }
 }