2015-04-14 5 views
0

У меня есть таблица 'пользователей' having 'is_login' column. Когда пользователь вошел в систему. 'is_login Изменения в 1' И при выходе из системы 'is_login изменяется на 0'.Необходимость обновления базы данных при истечении срока действия сеанса или закрытой браузера Codeigniter

Но если пользователь закрывает браузер, что «is_login» колонка остается 1.

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

Я попытался это, но не сделали: How to exec a function when codeigniter session expires

Я открыт для других предложений, а также.

ответ

0

Вы должны были бы использовать некоторый JavaScript/JQuery, чтобы поймать, когда браузер закрыт и сделать вызов AJAX для скрипта в вашем приложении, которое можно установить вошедший флаг 0. С помощью JQuery

$(window).unload(function() { 
    $.post('location/of/your/script.php',{'identifier':'identifier_val'}); 
}); 

Затем в script.php выберите все, что вы публикуете и действуете на нем.

Это довольно ненадежно в моем опыте, а не большой опыт для пользователя, поскольку это срабатывает, если они перезагружают страницу. Другой (столь же противный) способ - использовать метод heartbeat. По сути, ваш jQuery должен каждую минуту проверять ваш сервер. Затем вы запустите задание CRON, чтобы проверить любые записи пользователей, которые не получили пинг из jQuery более 2 минут (или, как вы считаете, верны), и установить, чтобы эти пользователи выходили из системы.

В противном случае вам необходимо открыть сокет-соединение с вашим сервером, что является правильным способом его выполнения.

+0

$ (окно) .unload не работает в моем случае. Любое другое решение? –

+0

Да, я упомянул еще 2 в своем ответе –

 Смежные вопросы

  • Нет связанных вопросов^_^