Я создаю веб-сайт, который загружается в набор frameset
другими сайтами (где имена доменов разные для родительского сайта).
Это отлично работает во всех браузерах (включая IE6), за исключением IE7. Он вообще не регистрирует сеанс и просто не работает.
Сайт реализован с использованием LAMP, MySQL 5 и PHP 5 – да, вероятно, не имеет отношения к реальной проблеме, но стоит упомянуть.
Какие-либо предложения?
Вы можете попробовать добавить заголовок P3P на свой сайт следующим образом:
header('P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"');
См. Это сообщение в блоге для подробностей.
Это стандартная настройка безопасности Internet Explorer. Он не принимает «сторонние файлы cookie» (т. Е. Файлы cookie из домена, отличного от того, что отображается в адресной строке). Среди других применений это мешает рекламодателям сохранять файлы отслеживания для своих объявлений, отображаемых на других сайтах.
Отдельные посетители могут отключить эту настройку в своих предпочтениях, но вы не сможете обойти вокруг нее в конце, кроме как вырваться из набора фреймов.
Я думаю, что если вы добавите соответствующую P3P-политику, тогда IE разрешит файлы cookie.
Я создал его с помощью редактора политики IBM P3P .
Имеет ли имя хоста / доменное имя символ подчеркивания (т.е. test_site.localdomain)? Если это так, это может быть проблемой, поскольку IE выполняет некоторую базовую проверку имени домена перед установкой файлов cookie (и, следовательно, запоминает сеанс), и он отклоняет подчеркивания / подчеркивания в имени хоста.