0

当用户登录到我的系统时,我有一个会话变量$_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();从包含文件中删除它,因为我认为这可能会以某种方式重新设置它 - 但事实并非如此。

你们中有人知道这里出了什么问题吗?

4

1 回答 1

2

使用include_once因为每次都包含 include session_start (); 成为运行我认为问题是这个

于 2013-02-04T18:56:21.473 回答