Я пытаюсь сохранить объект в $_SESSION
, но следующее:PHP сохранение объекта в сессии
<?php
$user = db->load($username, $pass) ;
$_SESSION[ 'user' ] = $user ;
# on subsequent page loads:
$user = $_SESSION[ 'user' ] ; #retrieve the user from session
К сожалению, это не работает.
Сценарий попытался выполнить метод или получить доступ к объекту неполного объекта. Убедитесь, что загружено определение класса «Пользователь» объекта, с которым вы пытаетесь работать, _before_ unserialize() вызывается или предоставляет функцию __autoload() для загрузки определения класса
Если вы не используете serialize():
<?php
$user = db->load($username, $pass) ;
$_SESSION[ 'user' ] = serialize($user) ;
# on subsequent page loads:
$user = unserialize($_SESSION[ 'user' ]) ; #retrieve the user from session
Я предполагаю, что потребуется выполнить сериализацию, поскольку информация сеанса сохраняется на диске. Но не должен ли PHP быть достаточно умным, чтобы сериализовать материал самостоятельно?
И с использованием сериализации/_ десериализации _, это собирается теперь работать надежно? Или мне нужен метод __serialize()
в моем классе PHP?
Вы когда-нибудь думали об использовании Zend.Session? –