Вот мой код:
Мой корневой каталог: корень
Файл 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». Находится в корневом каталоге/включает/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. Он находится в корневом каталоге/включает functions.php
<?php
//Templating
function template($path="", $pageTitle=NULL) {
if ($pageTitle != NULL) {
$_POST['page_title'] = $pageTitle;
}
include(root/public/templates/'.$path);
}
?>
Моего файл/_session.php заботится о моем управлении сеансом. Находится в корневом каталоге/включает/_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. Кто-нибудь знает почему? Благодарю.
Как насчет 'session_start();'? –
@dar - он находится в конструкторе класса сеанса. – Lix
@oob - Вы уверены, что свойство 'uid'/key действительно имеет значение? Не могли бы вы просто повторить пустую строку? – Lix