Выполнение действия по истечении срока действия cookie

То, что я хочу сделать, вызывает действие, когда срок действия файла cookie истекает. Например, у меня есть печенье:

setcookie('loggedIn', true, time()+ 3600);

Когда срок действия файлов cookie истекает, я бы хотел иметь возможность автоматически перенаправлять их на другую веб-страницу и вызывать скрипт php, который бы выводил пользователя из системы.

1

Решение

Вы можете проверить это через $_COOKIE,

if(!isset($_COOKIE['loggedIn'])){
header('Location: /path/to/another/page');
exit;
}

Вы можете закодировать его в отдельный файл и включить в каждую страницу, ИЛИ вы можете реализовать его в XHR.

3

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

Похоже, что вы пытаетесь автоматически выйти из системы через некоторое время. Срок действия куки не подходит для этого — дата истечения срока действия куки может быть изменена пользователем, и куки могут быть удалены, не достигнув срока их действия. (Например, если пользователь очищает куки в своем браузере или использует сеанс приватного просмотра.)

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

// during login
$_SESSION["valid_until"] = time() + 3600 * 3; // stay logged in for three hours

// then, during page startup
if ($_SESSION["valid_until"] < time()) {
session_destroy(); // or store data in the session to indicate it's inactive
header("Location: error.php?err=session-timeout");
exit();
}
2

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