Я очень плохо знаком с этим Zend_Session. У меня работает приложение Zend Framework; теперь я хочу добавить к нему некоторые «фичи». Для одной из этих функций требуются некоторые данные, содержащиеся в сеансе, поэтому они хранятся на всех сайтах, которые посетит пользователь.
В моем Bootstrap у меня есть
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initSession() {
Zend_Session::setOptions(array(
'use_only_cookies' => 'on',
'remember_me_seconds' => 864000
));
Zend_Session::start();
}
}
В моей модели есть функция, которая сохраняет данные в $_SESSION для заданного ключевого слова:
$_SESSION['foo'][urlencode($keyword)] = array(
'data' => $base->some->foo[0]->fish->data
);
Новые данные устанавливаются только для сеанса, если сеансовый ключ (с ключевым словом) не установлен. Я проверил это с помощью отладчика zend, все работает хорошо.
Теперь, когда я сначала звоню на страницу, все идет хорошо. Когда я перезагружаю страницу (или перехожу на другую), значения в сеансе исчезают. Итак, если быть точным, ключи есть, массив $_SESSION имеет (например) 20 элементов размера. Запись есть, но она пустая.
$_SESSION['foo']['my+foo']['data'] = null
Когда я звоню:
Zend_Debug::dump($_SESSION['foo']['my+foo']);
Я получил:
array (size=1)
'data' => null
Итак, он там, и это убило мою ценность.
Что такое волшебное вуду, чтобы заставить его работать, когда я использую простой session_start()?
$_SESSION['foo'][urlencode($keyword)] = array( 'data' => (string)$base->some->foo[0]->fish->data );
- person drew010   schedule 05.09.2012