对 cookie 过期执行操作
Performing an action on cookie expiration
我想做的是在 cookie 过期时引起一个动作。例如我有一个 cookie:
setcookie('loggedIn', true, time()+ 3600);
当 cookie 过期时,我希望能够自动将它们重定向到不同的网页并调用 php 脚本将用户注销。
您可以通过$_COOKIE
查看。
if(!isset($_COOKIE['loggedIn'])){
header('Location: /path/to/another/page');
exit;
}
您可以在单独的文件中编写代码并将其包含在每个页面中,或者您可以在 XHR 中实现它。
听起来好像您正在尝试做的是在一段时间后自动注销用户。 Cookie 过期不是执行此操作的合适方法 — 用户可以更改 Cookie 的过期日期,并且可以在未到过期日期的情况下删除 Cookie。 (例如,如果用户清除浏览器中的 cookie,或使用隐私浏览会话。)
自动注销用户的适当方法是在会话中存储到期日期,例如
// 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();
}
我想做的是在 cookie 过期时引起一个动作。例如我有一个 cookie:
setcookie('loggedIn', true, time()+ 3600);
当 cookie 过期时,我希望能够自动将它们重定向到不同的网页并调用 php 脚本将用户注销。
您可以通过$_COOKIE
查看。
if(!isset($_COOKIE['loggedIn'])){
header('Location: /path/to/another/page');
exit;
}
您可以在单独的文件中编写代码并将其包含在每个页面中,或者您可以在 XHR 中实现它。
听起来好像您正在尝试做的是在一段时间后自动注销用户。 Cookie 过期不是执行此操作的合适方法 — 用户可以更改 Cookie 的过期日期,并且可以在未到过期日期的情况下删除 Cookie。 (例如,如果用户清除浏览器中的 cookie,或使用隐私浏览会话。)
自动注销用户的适当方法是在会话中存储到期日期,例如
// 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();
}