【发布时间】:2015-11-17 00:53:03
【问题描述】:
我试图了解 PHP 会话何时超时并强制用户重新登录。
当用户首次成功登录网站时,我正在设置一个全局会话,如下所示:
$_SESSION['AcmeAuthenticated'] = TRUE;
在每个其他页面上,我都会在页面顶部检查以下内容:
if (!isset($_SESSION['AcmeAuthenticated']) and $_SESSION['AcmeAuthenticated'] !== TRUE) {
header('Location: index.php');
die;
}
我在开发过程中注意到我可以让我的浏览器整天保持打开状态并且它不会要求我再次登录。如果我退出浏览器,它会提示我再次登录。我检查了 PHP 信息并且 session.gc_maxlifetime 设置为 900 - 我认为这意味着 PHP 会话将在 15 分钟内结束?
我是 PHP 新手,所以仍在尝试了解会话的工作原理以及超时何时生效。
【问题讨论】:
-
您应该使用正确的比较运算符 -
&&而不是and。