PHP не может определить значение сеанса в Firefox - PullRequest
1 голос
/ 20 мая 2011

В IE сеанс работает, но в Firefox он всегда возвращает пустое значение.

Я установил $ _SESSION ['apple'] = '1' в index.php

При выполнении приложения Flex 4 / flash, которое позволит пользователю просматривать файл изображения с помощью filereference для загрузки на сервер (это приложение загружает изображение), файл затем передается в second.php, чтобы проверить, является ли он это изображение.

В самом second.php у меня есть функция, которая должна получить значение $ _SESSION ['apple'], которое было установлено в index.php, оно всегда возвращает пустую строку в Firefox и Chrome, но работает в IE9.

Кто-нибудь сталкивался с такой же проблемой с $ _SESSION в Firefox и Chrome?

Как мне убедиться, что second.php может получить $ _SESSION?

Ответы [ 4 ]

1 голос
/ 20 мая 2011

Продукты Adobe, такие как Flash / Flex, не передают файлы cookie браузера на сервер в других браузерах, кроме IE. Вам необходимо передавать идентификатор сеанса обратно на сервер самостоятельно для каждого запроса флэш-памяти.

в PHP вы можете включить сеанс с помощью следующего кода:

 if (isset($_GET['session_id'])) session_id($_GET['session_id']);
 session_start();

Если это не сработало для вас, и у вас установлено исправление suhosin / hardenet, возможно, вам придется отключить шифрование session_cookie. (не могу вспомнить точный вариант - одна из моих работ однажды наткнулась на такую ​​проблему)

1 голос
0 голосов
/ 20 мая 2011

Попробуйте использовать AMFPHP, это поможет вам разрабатывать с PHP + Flex.

http://silexlabs.org/amfphp/

0 голосов
/ 20 мая 2011

Поскольку PHP работает на сервере, маловероятно, что это результат работы браузера. Наиболее распространенная проблема: вы использовали session_start() во всех ваших php-файлах, которые используют $_session каким-либо образом?

...