示例#1
0
 /**
  * 修改密码提交处理(支持 ajax).
  * status: 0 旧密码项, 1: 密码项, 2:确认密码项, 8:修改失败, 9:修改成功
  *
  * @access public
  * @return void
  * @author Liuping <*****@*****.**>
  */
 public function changeLoginPasswdAction()
 {
     $pattern = '/^.{6,20}$/';
     $result = [];
     $oldPwd = I('post.oldPasswd', '');
     $passwd = I('post.passwd', '');
     $rePasswd = I('post.repasswd', '');
     if (empty($oldPwd)) {
         $result['status'] = 0;
         $result['msg'] = L('CONTROLLER_MSG12');
     } elseif (empty($passwd)) {
         $result['status'] = 1;
         $result['msg'] = L('CONTROLLER_MSG13');
     } elseif (empty($rePasswd)) {
         $result['status'] = 2;
         $result['msg'] = L('CONTROLLER_MSG14');
     } elseif ($passwd != $rePasswd) {
         $result['status'] = 2;
         $result['msg'] = L('CONTROLLER_MSG15');
     } elseif (!preg_match($pattern, $passwd)) {
         $result['status'] = 1;
         $result['msg'] = L('CONTROLLER_MSG16');
     } else {
         $model = new UserModel();
         $username = session('username');
         $info = $model->checkLogin($username, $oldPwd);
         if (!$info) {
             // 旧密码不正确
             $result['status'] = 0;
             $result['msg'] = L('CONTROLLER_MSG17');
         } else {
             if (FALSE !== $model->resetPasswd($username, $passwd)) {
                 $result['status'] = 9;
                 $result['msg'] = L('CONTROLLER_MSG18');
                 $result['url'] = U('Home/User/login');
                 $this->logout();
             } else {
                 $result['status'] = 8;
                 $result['msg'] = L('CONTROLLER_MSG19');
             }
         }
     }
     if (IS_AJAX) {
         $this->ajaxReturn($result, 'json');
     } elseif ($result['status'] == 9) {
         $this->success($result['msg'], $result['url']);
     } else {
         $this->error($result['msg']);
     }
 }