Отсутствует сериализация / десериализация вашего класса шаблона.
Посмотрите здесь рабочий пример , который я дал по другому вашему вопросу.
Например, вы, вероятно, хотите это:
<?php
$_SESSION['template'] = serialize($template);
?>
и
<?php
$template = unserialize($_SESSION['template']);
?>
Edit:
чтение вашего комментария о перемещении его наверх дает одну подсказку.
Автоматическая сериализация / десериализация происходит при вызове session_start()
.
Это означает, что порядок, в котором вы включаете свои файлы и называете session_start()
, очень важен.
Например:
Это было бы неправильно:
<?php
session_start();
include 'inc/template.class.php';
?>
Пока это будет правильно:
<?php
include 'inc/template.class.php';
session_start();
?>
Теперь я вижу в вашем примере, что это в ПРАВИЛЬНОМ порядке, но я также заметил, что вы делаете много других включений, прежде чем включать template.class.php
Возможно ли, что один из них (например, prep.php или header.class.php) тоже вызовет start_session()
?
Если да, то это была ваша проблема (session_start()
вызывается до вашего template.class.php).