AccountAction::doModifyPassword PHP Method

doModifyPassword() public method

修改登录用户账号密码操作
public doModifyPassword ( ) : json
return json 返回操作后的JSON信息数据
    public function doModifyPassword()
    {
        $_POST['oldpassword'] = t($_POST['oldpassword']);
        $_POST['password'] = t($_POST['password']);
        $_POST['repassword'] = t($_POST['repassword']);
        // 验证信息
        if ($_POST['oldpassword'] === '') {
            $this->error('请填写原始密码');
        }
        if ($_POST['password'] === '') {
            $this->error('请填写新密码');
        }
        if ($_POST['repassword'] === '') {
            $this->error('请填写确认密码');
        }
        if ($_POST['password'] != $_POST['repassword']) {
            $this->error(L('PUBLIC_PASSWORD_UNSIMILAR'));
            // 新密码与确认密码不一致
        }
        if (strlen($_POST['password']) < 6) {
            $this->error('密码太短了,最少6位');
        }
        if (strlen($_POST['password']) > 15) {
            $this->error('密码太长了,最多15位');
        }
        if ($_POST['password'] == $_POST['oldpassword']) {
            $this->error(L('PUBLIC_PASSWORD_SAME'));
            // 新密码与旧密码相同
        }
        $user_model = model('User');
        $map['uid'] = $this->mid;
        $user_info = $user_model->where($map)->find();
        if ($user_info['password'] == $user_model->encryptPassword($_POST['oldpassword'], $user_info['login_salt'])) {
            $data['login_salt'] = rand(11111, 99999);
            $data['password'] = $user_model->encryptPassword($_POST['password'], $data['login_salt']);
            $res = $user_model->where("`uid`={$this->mid}")->save($data);
            $info = $res ? L('PUBLIC_PASSWORD_MODIFY_SUCCESS') : L('PUBLIC_PASSWORD_MODIFY_FAIL');
            // 密码修改成功,密码修改失败
        } else {
            $info = L('PUBLIC_ORIGINAL_PASSWORD_ERROR');
            // 原始密码错误
        }
        return $this->ajaxReturn(null, $info, $res);
    }