2011-01-30 7 views
1

Может кто-нибудь, пожалуйста, помогите мне в том, как отключить пользователя (с помощью сеансов) после 5 минут, независимо от того, как он простаивает или активен. Вам нужно кодирование в php и mysql в качестве базы данных.Отключить пользователя после 5 минут

+1

Через 5 минут после чего? –

+0

, чтобы уничтожить сеанс после 5 минут. Затем перенаправить его на домашнюю страницу – bsanneh

+0

mate дать нам дополнительную информацию или попробовать вам cookie или установить время окончания сеанса в php.ini –

ответ

3

Когда пользователь входит в систему, вы можете регистрировать переменную сеанса за время, каждый раз, когда страница загружается, проверьте, прошло ли 5 ​​минут с момента входа в систему. Например:

<?php 
session_start(); 
if($_SESSION["loggedin"] && ($_SESSION["timer"]<(time()-(5*60)))) { 
logout(); 

} 


function login() { 
//do login stuff 
$_SESSION["timer"]=time(); 
} 

function logout() { 
//do logout stuff 
} 

?> 
2

Использование session.gc-maxlifetime:

ini_set('session.gc-maxlifetime', 60*5); 

После выше строка считывается интерпретатором PHP, сеанс истекает через 5 минут.

+0

вам нужно установить 'session.gc_probability' и' session.gc_divisor'. См. Также мой комментарий к комментарию keatchs – levu

1

Вы можете сохранить временную метку последнего действия в массиве $_SESSION и сравнить $timestamp + 300 с текущим временем.

Просто установка времени сбора коллектора мусора на низкое значение не будет работать, потому что сборщик мусора не запускается на каждом запросе страницы.

+0

Таким образом, вы не полагаетесь на настройки конфигурации php. – keatch

+1

, так что :) Настройки конфигурации хороши, но для этих небольших временных интервалов, таких как 5 минут, они почти бесполезны, потому что gc пришлось запускать очень часто ... – levu

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