можно ли хранить в сессии обьект?
...
session_register($MyObject);
после перехода по ссылке или обновлении страници пишет, что обьект не существует. В начале страници делаю проверку на существование обьекта.
Или в сессии вообще нельзя хранить обьект?
http://ru2.php.net/manual/ru/function.session-register.php
Почитай внизу. Там это обсуждается (eng)
Почитай внизу. Там это обсуждается (eng)
$_SESSION['object']=$myObject;
толко описание твоего объекта должно быть до старта сессиии.
не, знаю, может у меня руки не оттуда, но у меня так и получилось запихнуть объект в сессию именно как объект. зато есть более безотказный метод -- serialize. уж чё,чё а строка в сесси без вопросов хранится будет. вот только... не будет ли там косяков с аггрегируемыми объектами?
Цитата: Abell2000
Можно,
$_SESSION['object']=$myObject;
толко описание твоего объекта должно быть до старта сессиии.
$_SESSION['object']=$myObject;
толко описание твоего объекта должно быть до старта сессиии.
Попробывал так сделать, но при проверке выяснелось следующее - Переменная имела свойства обьекта, но все поля были пустые.
и еще вопросик:
Чем отличаются (и отличаются ли вообще)? -
session_register();
и
$_SESSION[];
Цитата:
If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.
Цитата:
If session_start() was not called before this function is called, an implicit call to session_start() with no parameters will be made. $_SESSION does not mimic this behavior and requires session_start() before use
Т.е. кроме как заморочек с register_globals это впринципе одно и тоже.
Просто session_register устаревшая функция и лучше использовать $_SESSION
Цитата:
Попробывал так сделать, но при проверке выяснелось следующее - Переменная имела свойства обьекта, но все поля были пустые.
это означает что у вас где то ошибка, объект должен сохранятся полностью
С англ. пока-что не очень..)
а обьект всеравно пустой, после перехода по ссылке
...
$myobj = $_SESSION['obj'];
делал print_r($myobj)
отлюда и виднно - переменные есть, но все пустые. Может обратно в переменную получить обьект $myobj = $_SESSION['obj']; не достаточно?
Сессия физически - это текстовый файл (загляни в директорий tmp - увидишь). Значит и объект храни в виде строки (serialize).
При сохранении класса в сессии он автоматически сериализируется и unserialize при последуюсщем вызове
Цитата: Poltos
to Abell2000
С англ. пока-что не очень..)
а обьект всеравно пустой, после перехода по ссылке
...
$myobj = $_SESSION['obj'];
делал print_r($myobj)
отлюда и виднно - переменные есть, но все пустые. Может обратно в переменную получить обьект $myobj = $_SESSION['obj']; не достаточно?
С англ. пока-что не очень..)
а обьект всеравно пустой, после перехода по ссылке
...
$myobj = $_SESSION['obj'];
делал print_r($myobj)
отлюда и виднно - переменные есть, но все пустые. Может обратно в переменную получить обьект $myobj = $_SESSION['obj']; не достаточно?
Должно быть что типа этого:
include('myObject_definition.php');
session_start();
$myObject=$_SESSION['myObject_name'];
Цитата: mfender
Сессия физически - это текстовый файл (загляни в директорий tmp - увидишь). Значит и объект храни в виде строки (serialize).
Попробывал, все работает!) Спасибо. Но не будет ли, как говорил <SCORP> выше, ошибок из-за такого хранения?
Цитата: Poltos
Попробывал, все работает!) Спасибо. Но не будет ли, как говорил <SCORP> выше, ошибок из-за такого хранения?
__sleep() & __wakeup()