对 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();
}