Уничтожение сессии Codeigniter в браузере не работает

0

Я использую Codeigniter 2.2.0, пытаясь установить сеанс, чтобы уничтожить сеанс, когда браузер закрыт. В моем application/config/config.php я установил

 $config['sess_use_database']   = TRUE;
 $config['sess_expire_on_close']    = TRUE;

но это не сработает. Сеанс, который хранится в базе данных, не уничтожается. Я пытаюсь сделать это:

$this->session->set_userdata(array('user'=>'user1','login'=>TRUE));

и сеанс хранится в базе данных с сериализацией user_data. Затем я закрою браузер и снова открою браузер и запустил тот же код выше. Поскольку первый сеанс не удаляется из таблицы, теперь я получил 2 записи в таблице сеансов с тем же значением в столбце user_data, но с другим значением session_id. Все, что я хочу, это первый сеанс, который должен быть уничтожен, а также удален из базы данных.

Как я могу исправить эту проблему? Любое предложение?

Теги:
session
codeigniter-2

1 ответ

0

Почему бы вам не попробовать ajax-запрос для истечения срока действия сеанса:

var sessionExpire = function(e){
        //here ajax request to expire session
  };
window.unload = sessionExpire;
  • 0
    В прошлый раз я пытался добавить javascript, чтобы проверить, когда окно закрыто, используя функцию unload , но похоже, что теперь он также работает, потому что, когда страница перезагружается, функция unload запускает скрипт. На моей странице я использую функцию setInterval() для перезагрузки страницы каждые 5 секунд. Так что, если я использую функцию unload , я могу получить доступ к своей странице только 5 секунд.
  • 0
    Это должно работать для вас. У меня тоже работает

Ещё вопросы

Сообщество Overcoder
Наверх
Меню