zend framework проигрывает сессия

Я пытаюсь реализовать загрузчик Flash в моем приложении Zend framework, но у меня возникают проблемы с сеансом.

Flash не отправляет заголовки файлов cookie, поэтому сеанс теряется. Я пытаюсь отправить sessionId в качестве параметра сообщения, и в моем файле начальной загрузки я добавил session_id ($ _ POST ['session_id]), но, похоже, это работает.

Я использую таблицу MySQL в качестве хранилища сеансов

Я попытался отладить ошибку, и, насколько я понимаю, session_id установлен, и хранилище возвращает данные corect из базы данных, но, похоже, он неправильно установлен в глобальном $ _SESSION.

И что еще более странно, похоже, что он работает на моем компьютере с Windows, но не на промежуточном сервере Linux.


person Gabriel Solomon    schedule 02.03.2009    source источник


Ответы (3)


Вы знаете, используете ли вы Suhosin с установкой PHP?

Я слышал несколько отчетов о том, что Сухосин делает это с сеансами, решение в этом случае - чтобы отключить suhosin.session.cryptua в php.ini.

В любом случае, если это не ваша проблема, просто для уверенности в основах:

  1. Убедитесь, что вы передаете свой session_id() в сообщении из Flash, например, с помощью загрузки SWF, это делается путем передачи это в значении post_params массива конфигурации.
  2. Обязательно позвоните session_id($_POST['session_id]) до session_start()

Но в любом случае это, вероятно, связано с вашей установкой PHP, если вы говорите, что он работает в вашей среде Windows.

person lpfavreau    schedule 03.03.2009

Это похоже на различные ошибки, о которых сообщалось на протяжении многих лет, хотя в большинстве случаев это работало в Linux, а не в Windows.

http://framework.zend.com/issues/browse/ZF-2459 https://www.zend.com/en/forums/index.php?t=msg&goto=16104&S=de7d9b854db445eb37d0f33470cac6b0

и совсем недавно, в прошлом месяце:

http://blog.rac.me.uk/2009/01/09/php-zend-session-dont-set-it-up-in-the-initalizer/

- MarkusQ

person MarkusQ    schedule 03.03.2009

Попробуйте следующее в действии вашего контроллера:

session_write_close();
session_id($this->_getParam('PHPSESSID'));
session_start(); 
person Вадим Драбинка    schedule 22.01.2014