Я использую 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. Все, что я хочу, это первый сеанс, который должен быть уничтожен, а также удален из базы данных.
Как я могу исправить эту проблему? Любое предложение?
Почему бы вам не попробовать ajax-запрос для истечения срока действия сеанса:
var sessionExpire = function(e){
//here ajax request to expire session
};
window.unload = sessionExpire;
unload
, но похоже, что теперь он также работает, потому что, когда страница перезагружается, функцияunload
запускает скрипт. На моей странице я использую функциюsetInterval()
для перезагрузки страницы каждые 5 секунд. Так что, если я использую функциюunload
, я могу получить доступ к своей странице только 5 секунд.