Время жизни сессии php всегда равно 0

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

session_set_cookie_params(time()+120);
session_start();

и когда я print_r session_get_cookie_params я получаю это

Array ( [lifetime] => 1441447767 [path] => / [domain] => [secure] => [httponly] => )

Но сессия заканчивается сразу после закрытия веб-страницы, и когда я снова открываю ее, я перенаправляюсь на страницу входа. Итак, как правильно установить время жизни сеанса, которое учитывает новое время жизни, пока пользователь продолжает просматривать веб-сайт. Например, если продолжительность сеанса составляет 120 секунд, он не истекает, если пользователь не закрыл веб-страницу и не вернулся через 120 секунд, но если он вернулся на веб-сайт в течение этих 120 секунд, сеанс снова начинает считать новые 120 секунд.

0

Решение

Вам нужно проверить последнее время активности, обновляемое каждый раз, когда кто-то посещает страницу:

if(($_SESSION['lastActivity'] + 120) < time()) {
// timeout, destroy the session.
session_destroy();
unset($_SESSION);
die('Timeout!');
} else {
$_SESSION['lastActivity'] = time();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]