这是我的代码:
我的根目录是:root
位于 root/index.php 的 index.php 文件
<?php
require_once('root/includes/initialize.php');
<?php template('header.php', 'TITLE');?>;
?>
<div id="main">
//SOME CONTENT
</div>
我的 initialize.php 文件获取了我所有的核心包含文件并将它们放入一个“require_once”中。位于根目录/includes/initialize.php
<?php
//Define Path
defined('LIB_PATH') ? null : define('LIB_PATH', 'root/includes/');
//Core Functions
require_once(LIB_PATH.'functions.php');
//Core Objects
require_once(LIB_PATH.'_database.php');
require_once(LIB_PATH.'_session.php');
//Classes
require_once(LIB_PATH.'_user.php');
?>
更新**
我的functions.php 文件包含一个简单的模板函数,它可以抓取一个模板文件,例如我的header.php。它位于 root/includes/functions.php
<?php
//Templating
function template($path="", $pageTitle=NULL) {
if ($pageTitle != NULL) {
$_POST['page_title'] = $pageTitle;
}
include(root/public/templates/'.$path);
}
?>
我的 _session.php 文件负责我的会话控制。位于根目录/includes/_session.php
<?php
/**
* Class for Sessions
*/
class Session
{
public $logged_in = FALSE;
public $uid;
function __construct() {
session_start();
$this->check_login();
}
public function check_login() {
if (isset($_SESSION['uid'])) {
$this->uid = $_SESSION['uid'];
$this->logged_in = TRUE;
} else {
unset($this->uid);
$this->logged_in = FALSE;
}
}
public function logged_in() {
return $this->logged_in;
}
public function login($user) {
if ($user) {
$this->uid = $_SESSION['uid'] = $user;
$this->logged_in = TRUE;
}
}
public function logout() {
unset($_SESSION['uid']);
session_unset();
session_destroy();
redirect(WEB_ROOT);
}
}
$session = new Session();
?>
更新**
我的 header.php 位于我网站中所有页面的顶部。位于 root/public/templates/header.php。这是我遇到问题的文件,我无法弄清楚为什么我无法在此文件中回显 $session->uid 或 $_SESSION['uid'] 。
<html>
<head>
<!--CSS-->
<link rel="stylesheet" type="text/css" href="root/public/css/style.css">
<title>MY SITE</title>
</head>
<body>
<div id="header">
<div id="logo">
<a href="root"><?php echo $_POST['page_title'];?></a>
</div>
<?php echo $session->uid;?> //DOESN'T WORK
</div>
我能够在我的 index.php 文件和我网站上的其他文件中很好地回显所有内容,但不能在包含的 header.php 中回显。有谁知道为什么?谢谢。