Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

можно ли хранить в сессии обьект?

434
22 января 2007 года
Poltos
105 / / 18.08.2004
Можно ли хранить в сессии обьект?
...
session_register($MyObject);

после перехода по ссылке или обновлении страници пишет, что обьект не существует. В начале страници делаю проверку на существование обьекта.

Или в сессии вообще нельзя хранить обьект?
15
22 января 2007 года
shaelf
2.7K / / 04.05.2005
http://ru2.php.net/manual/ru/function.session-register.php
Почитай внизу. Там это обсуждается (eng)
860
23 января 2007 года
Abell2000
138 / / 15.01.2003
Можно,
$_SESSION['object']=$myObject;
толко описание твоего объекта должно быть до старта сессиии.
355
23 января 2007 года
<SCORP>
786 / / 21.10.2006
не, знаю, может у меня руки не оттуда, но у меня так и получилось запихнуть объект в сессию именно как объект. зато есть более безотказный метод -- serialize. уж чё,чё а строка в сесси без вопросов хранится будет. вот только... не будет ли там косяков с аггрегируемыми объектами?
434
23 января 2007 года
Poltos
105 / / 18.08.2004
Цитата: Abell2000
Можно,
$_SESSION['object']=$myObject;
толко описание твоего объекта должно быть до старта сессиии.



Попробывал так сделать, но при проверке выяснелось следующее - Переменная имела свойства обьекта, но все поля были пустые.

и еще вопросик:
Чем отличаются (и отличаются ли вообще)? -
session_register();
и
$_SESSION[];

860
23 января 2007 года
Abell2000
138 / / 15.01.2003
Цитата:
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

Цитата:
Попробывал так сделать, но при проверке выяснелось следующее - Переменная имела свойства обьекта, но все поля были пустые.


это означает что у вас где то ошибка, объект должен сохранятся полностью

434
23 января 2007 года
Poltos
105 / / 18.08.2004
to Abell2000
С англ. пока-что не очень..)
а обьект всеравно пустой, после перехода по ссылке
...
$myobj = $_SESSION['obj'];
делал print_r($myobj)
отлюда и виднно - переменные есть, но все пустые. Может обратно в переменную получить обьект $myobj = $_SESSION['obj']; не достаточно?
8
23 января 2007 года
mfender
3.5K / / 15.06.2005
Сессия физически - это текстовый файл (загляни в директорий tmp - увидишь). Значит и объект храни в виде строки (serialize).
860
23 января 2007 года
Abell2000
138 / / 15.01.2003
При сохранении класса в сессии он автоматически сериализируется и unserialize при последуюсщем вызове
860
23 января 2007 года
Abell2000
138 / / 15.01.2003
Цитата: Poltos
to Abell2000
С англ. пока-что не очень..)
а обьект всеравно пустой, после перехода по ссылке
...
$myobj = $_SESSION['obj'];
делал print_r($myobj)
отлюда и виднно - переменные есть, но все пустые. Может обратно в переменную получить обьект $myobj = $_SESSION['obj']; не достаточно?



Должно быть что типа этого:
include('myObject_definition.php');
session_start();
$myObject=$_SESSION['myObject_name'];

434
23 января 2007 года
Poltos
105 / / 18.08.2004
Цитата: mfender
Сессия физически - это текстовый файл (загляни в директорий tmp - увидишь). Значит и объект храни в виде строки (serialize).



Попробывал, все работает!) Спасибо. Но не будет ли, как говорил <SCORP> выше, ошибок из-за такого хранения?

338
23 января 2007 года
chigevara
529 / / 29.09.2003
Цитата: Poltos
Попробывал, все работает!) Спасибо. Но не будет ли, как говорил <SCORP> выше, ошибок из-за такого хранения?



__sleep() & __wakeup()

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог