0

すべてのファイルでセッションを 1 つずつ制御するのではなく、すべてのファイルに含まれる でセッションを制御したいheader.php。だから、header.php私がコーディングした上に:

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");?>  

index_header.php はここにあります:

<?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>  

session.php の一部:

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;
  }
}

問題は、URL index.php をクリックしても、ブラウザーに何も表示されないことです。is_logged_in()関数を削除すると、ページが表示されます。関数を index.phpに入れis_logged_in()、index_header.php から削除すると、ページも表示されます。表示された URL をクリックしindex_header.phpます。興味深いことに、この関数には index_header.php が含まれていません。私の機能には問題ありません。

4

0 に答える 0