Вчера у меня была похожая проблема, и я нашел решение. Я надеюсь, что это поможет кому-то еще.
Проблема: Предположим, есть веб-сайт www.somewebsite.com и IFRAME внутри него, который загружает php-файл с моего сервера, www.myserver.com / welcome.php . Сайт успешно загружался, как и моя страница приветствия, и на нем было что-то вроде «Hello Bob», поэтому он успешно нашел пользователя и вошел в него.
После этого мой JavaScript делал AJAX-вызовы в другой PHP-файл, и ответ находился в состоянии «не авторизовано», поэтому данные SESSION полностью отсутствовали. После обновления страницы все работало правильно. И это происходило только под IE8!
Мне показалось, что проблема была в отправке файлов cookie сеанса на сервер, но когда я установил Fiddler , я обнаружил, что IE8 правильно отправлял файлы cookie и PHPSESSID, но сервер был не в состоянии обнаружить правильные СЕССИЯ объект. Еще одна странная вещь - сервер второго времени отправил следующий заголовок:
P3P: CP = "IDC DSP COR ADM DEVI TAIi PSA PSD IVAi IVDi CONI ЕГО НАШ ИНД CNT"
но в первый раз нет. После добавления этого заголовка вручную в PHP-скрипте все заработало как шарм!
Затем, когда я погуглил эту «p3p abracadabra», я обнаружил следующий веб-сайт:
http://adamyoung.net/IE-Blocking-iFrame-Cookies
Вывод: Убедитесь, что вы отправляете заголовок на каждой странице, которая устанавливает cookie.
И это не только , относящееся к комбинации IE8 + PHP , такая же проблема возникает в случае IE8 + ASP.NET , IE8 + JSP и др.