当用户登录我的系统时,我有一个会话变量$_SESSION['logged_in'] = 1;
然后在每个页面上我检查变量以查看用户是否登录,这可以正常工作:
session_start();
if (!$_SESSION['logged_in']) {
header("location: https://mydomain.com/cpanel/login.php");
exit();
}
但是现在,为了便于维护,我想将此会话检查器添加到包含文件并将其包含在每个安全页面的顶部。但是,每次登录时都会失败。
这是包含文件中的内容:
// start session
session_start();
// check login session
if (!$_SESSION['logged_in']) {
header("location: https://mydomain.com/cpanel/login.php");
exit();
}
这就是我添加到每个页面标题中的内容:
// load authentication file
include "../includes/authentication/check.php";
但似乎$_SESSION
是空的,即使我肯定已登录。我尝试从包含文件中删除session_start();
,因为我认为可能会以某种方式重审它 - 但那不是是的。
你们有没有人知道这里出了什么问题?
答案 0 :(得分:2)
使用 include_once 因为包含每次都包含 session_start(); 变为运行我认为问题是这个