当用户首次在i添加 $_SESSION['login'] = true;
中登录时。在另一个功能中,我正在检查登录会话变量,以确保用户已登录,而不仅仅是导航到该页面。这样。
if ((!isset($_SESSION['login']) && $_SESSION['login'] != '') || (empty($_SESSION))) {
session_register_shutdown();
header("Location: login.php");
exit; // stop further executing, very important
}
因此,如果未设置"登录会话变量",则将重定向到登录页面。它有效,但我会收到一个未定义的索引:重定向时登录错误。有没有办法解决此问题?
您是否仅在未设置的情况下才会检查该变量是否不是空字符串:!isset($_SESSION['login']) && $_SESSION['login'] != ''
。这些情况是相互排斥的。您可能是要这样做的?
if ((empty($_SESSION)) || (isset($_SESSION['login']) && $_SESSION['login'] == '')) {
session_register_shutdown();
header("Location: login.php");
exit; // stop further executing, very important
}
尽管empty()
检查索引是未设置还是空字符串,因此您可以这样做:
if (empty($_SESSION) || empty($_SESSION['login'])) {
session_register_shutdown();
header("Location: login.php");
exit; // stop further executing, very important
}
注意操作顺序也很重要。检查数组是否为空,检查是否存在login
密钥。