/** * 修改用户邮箱发送邮箱验证码. * * @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']); } }