Я пытаюсь сохранить объект в $_SESSION
, но следующее:
<?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 / _ unserialize _, это будет работать надежно? Или мне нужен __serialize()
метод в моем классе PHP?