IE и установка cookie из подключаемого файла.

camka

не самка
IE и установка cookie из подключаемого файла.

PHP:
===== test.js.php ========
<?php
header("Content-Type: application/x-javascript");
setcookie('Kuku', '1');
?>
======================

===== test.php ==========
<script src="http://auth.my/test.js.php?rnd=<?= mt_rand(0,9999999)?>"></script>
======================
Файлы располагаются соответственно на домейнах auth.my и marazm.my

Захожу на marazm.my/test.php, смотрю посылаемые заголовки
Код:
GET /test.php HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: marazm.my
Proxy-Connection: Keep-Alive

HTTP/1.1 200 OK
Server: Apache/1.3.33 (Win32) PHP/5.0.5
Content-Type: text/html

GET /test.js.php?rnd=1992751 HTTP/1.1
Referer: [url]http://marazm.my/test.php[/url]
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: auth.my
Proxy-Connection: Keep-Alive

HTTP/1.1 200 OK
Server: Apache/1.3.33 (Win32) PHP/5.0.5
Set-Cookie: Kuku=1
Content-Type: application/x-javascript
Делаю рефрешь
Код:
GET /test.php HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: marazm.my

HTTP/1.1 200 OK
Server: Apache/1.3.33 (Win32) PHP/5.0.5
Content-Type: text/html

GET /test.js.php?rnd=6736195 HTTP/1.1
Referer: [url]http://marazm.my/test.php[/url]
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: auth.my

HTTP/1.1 200 OK
Server: Apache/1.3.33 (Win32) PHP/5.0.5
Set-Cookie: Kuku=1
Content-Type: application/x-javascript
То есть куки не передаются при втором запросе к яваскрипт файлу, хотя при первом запросе явно видно, что они устанавливаются.

Перепробовал уже все методы. Ставил время жизни, домен, путь для кук. Ничего не помогает. Пытался использовать удаленные сервера а не виртуальные домены на локалхосте - не получается. В Опере и Мозилле все проходит на ура.

В чем может быть причина подобного поведения ИЕ?

-~{}~ 18.10.05 13:29:

Если напрямую вызвать скрипт с http://auth.my/test.js.php дважды, то второй раз куки успешно отсылаются.

Попробовал www.auth.my в надежде, что, возможно, ИЕ не любит домены высшего уровня. Не прошло.

-~{}~ 18.10.05 13:52:

Подстановка картинки, вместо яваскрипта также не спасла ситуацию.

-~{}~ 18.10.05 17:13:

в то же время, на том же браузере успешно передаются куки для разных счетчиков. То есть, зашел на страницу, там подгружается счетчик в виде изображения. Он устанавливает куку и тут же перезагружается с помощью Location. В этом следующем запросе кука успешно передается серверу.
Обнаружилось, что даже если указать явно время жизни куки, то ИЕ не создает файла на диске для этой куки. То есть он ее просто игнорирует.
 

alexhemp

Новичок
Какой браузер?

Посмотри HTTP заголовки в момент когда рейтинг отдает картинку счетчика.

Скорее всего ты там увидишь строку наподобии:
P3P: policyref="/w3c/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"
а дальше Set-Cookie

Видишь-ли - современные браузеры могут блокировать "сторонние" куки. Т.е. с домена auth.my не установить куку в домене marazm.my
 

camka

не самка
ОО.. вот это да. Только что забрался в Options -> Privacy -> Advanced. Там была неотмечена галочка "Override automatic cookie handling". Когда ее отмечаешь, все работает. Нигда больше в настройках не нашел, где можно посмотреть значения по умолчанию. Закралось сомнение, что в одном из последних обновлений виндовс внедрили подобное поведение, потому как у некоторых эта галочка по умолчанию отмечена.

А за P3P ОГРОМНОЕ СПАСИБО. Буду разбираться. Именно его я видел в заголовках счетчиков. Но никаких подохрений он у меня не вызвал.

Еще раз спасибо!!!
 
Сверху