Почему сеанс не может быть сброшен и уничтожен? - PullRequest
2 голосов
/ 26 мая 2019

У меня на сайте почти работающая система регистрации, единственная отсутствующая часть - это функция выхода из системы. Он запускает сеанс, но, похоже, не разрушает его, поэтому предыдущий сеанс всегда активен. Правильно ли я уничтожаю сеанс или делаю что-то совсем не так?

Сначала я просто попытался установить пользовательские данные и затем сбросить их один за другим, прежде чем уничтожать сеанс, но это не сработало. Так что теперь я установил пользовательские данные с помощью простых строк, прежде чем уничтожать их, опять же, похоже, не работает.

ссылка на выход из системы выглядит следующим образом:

<a href="http://localhost/dir/dir1/dir2/index.php/Controller/logout">logout</a>

В моем контроллере у меня есть это:

public function logout() {


    $this->load->helper('url');
    $this->load->library('session');

    $session_data = array(
      'data' =>  'data',
      'data' => 'data',
      'data' =>  'data',
      'data' =>  'data',
      'data' =>  'data',
      'data' => 'data',
      'data' => 'data',
      'data' => 'data',
      'data' => 'data',
      'data' =>  'data',
      'data' =>  'data',
      'data' =>  'data',
      'data' =>  'data',
      'data' =>  'data'
    );
    $this->session->set_userdata($session_data);

        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');
        $this->session->unset_userdata('data');

    $this->session->sess_destroy();
    redirect('http://localhost/dir/dir1/dir2/index.php/Controller/loginview', 'refresh');
}

Я ожидаю, что сеанс будет уничтожен до того, как он будет перенаправлен (что он и делает), но когда я ввожу новые учетные данные для входа, он все равно показывает те, что были в предыдущем сеансе, вместо этого он должен показывать новые.

Ответы [ 2 ]

2 голосов
/ 26 мая 2019

Возможно, вам потребуется реализовать ob_start() и ob_clean(), как предложено Сессия не уничтожается в codeigniter .Следовательно, это может быть дубликатом одного и того же.

1 голос
/ 06 июня 2019

Я просто забыл указать параметры сеанса, в любом случае проблема решена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...