Php “为什么?”;“会话控制”;在包含文件中不工作?

Php “为什么?”;“会话控制”;在包含文件中不工作?,php,session,include,Php,Session,Include,我不希望在所有文件中逐个控制会话,而是希望在每个文件中包含的header.php中控制会话。因此,在header.phpI编码的顶部: if($session->is_logged_in()) {//is_logged_in is a function controlling session echo "logged"; } else { echo "not logged"; } index.php此处: <?php define('REALLY_INCLUDED

我不希望在所有文件中逐个控制会话,而是希望在每个文件中包含的
header.php
中控制会话。因此,在
header.php
I编码的顶部:

if($session->is_logged_in()) {//is_logged_in is a function controlling session
   echo "logged";
} else {
    echo "not logged";
}  
index.php此处:

<?php define('REALLY_INCLUDED', true);?>
<?php require_once  $_SERVER['DOCUMENT_ROOT'].'/includes/initialize.php'; ?>
<?php include_layout_template("index_header.php"); ?>
<?php include_layout_template("sidebar.php"); ?>
<?php include_layout_template("index_content.php"); ?>
<?php include_layout_template("footer.php");?>  

问题是,当我单击URL index.php时,浏览器中似乎什么都没有。如果我删除
is\u logged\u in()
函数,它将显示页面。如果我将
is_logged_in()
函数放入index.php并从index_header.php中删除,它也会显示页面。如果,我单击它显示的URL
index_header.php
。有趣的是,这个函数没有包含index_header.php。我的功能没有问题

您做错了什么,但是我们需要查看更多的代码来了解(!$session->is_logged_in()){?如果(!$session->is_logged_in()){?否;如果已登录,请重定向到index.phpWhat“不起作用”意思是?你有错误吗?它是否正常运行页面的其余部分?请显示
的代码是否已登录
重定向到
<?php require_once  $_SERVER['DOCUMENT_ROOT'].'/includes/initialize.php'; ?>
<?php header("Content-Type: text/html; charset=latin5"); ?>
<?php
if(!defined('REALLY_INCLUDED') || !REALLY_INCLUDED) {
    exit();
}
if($session->is_logged_in()) {
 echo "logged in";
} else {
echo "logged not!";
}

?>
<html>
Here is html code
</html>  
private $logged_in=false;
function __construct() {
session_start();
$this->check_login();
}

public function is_logged_in() {
return $this->logged_in;
}

private function check_login() {
if(isset($_SESSION['user_id'])) {
  $this->user_id = $_SESSION['user_id'];
  $this->logged_in = true;
} else {
  unset($this->user_id);
  $this->logged_in = false;
  }
}