V práci jsme se setkali se zajímavým problémem, který se vyskytuje ojediněle, ale zato postihuje jen určitou doménu. Máme problém s Microsoft Internet Explorerem 8 a doménou jobs.cz.
IE8 odmítá nastavit cookies na doménu druhé úrovně. Nefunguje to pouze a jen pro jobs.cz, pro všechny jiné domény je to v pořádku. Je to záhada, kterou nebude jednoduché vyřešit.
Fungují všechny starší verze MS IE i všechny ostatní prohlížeče i všechny jiné domény druhé úrovně, které jsme zkusili. Nefunguje zápis serverový ani klientský. Cookies na domény třetí úrovně (www.jobs.cz apod.) rovněž bez problémů.
Zkušební skript může vypadat takto:
cookie test YAHOO.util.Cookie.set("jobsClientFull", "client", { path: "/"}); YAHOO.util.Cookie.set("jobsClient2ndA", "client", { path: "/", domain: ".jobs.cz" }); YAHOO.util.Cookie.set("jobsClient2ndB", "client", { path: "/", domain: "jobs.cz" }); YAHOO.util.Cookie.set("jopsClientFull", "client", { path: "/"}); YAHOO.util.Cookie.set("jopsClient2ndA", "client", { path: "/", domain: ".jops.cz" }); YAHOO.util.Cookie.set("jopsClient2ndB", "client", { path: "/", domain: "jops.cz" });Cookies obtained
nebo v jednodušší podobě
<?php
setcookie("serverTestCookie", "server", 0, "/", ".jobs.cz");
?>
cookie test
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/yahoo/yahoo-min.js">
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/cookie/cookie-min.js">
YAHOO.util.Cookie.set("clientTestCookie", "client", { path: "/", domain: ".jobs.cz" });
Cookies obtained
příslušní virtualní host si na lokálním počítači nastavím třeba takto
DocumentRoot /srv/cookie ServerName jobs.cz ServerAlias www.jobs.cz jobs.cz jops.cz www.jops.cz
a k tomu nějakého hosta
127.0.0.1 wwww.jobs.cz jobs.cz www.jops.cz jops.cz
Po prvním načtení bude kolekce cookies samozřejmě prázdná, ale už po tom druhem jsou v IE8 nastaveny pouze cookies na doménu třetí úrovně, druhé nic.
Závěr
Problém zřejmě souvisí s implementaci prohlížečích viz (1, 2). V TLD existuje .jobs a proto se dá usuzovat, že k ní IE8 chová nějak jinak. Ale proč to nepostihuje např. travel.cz, museum.cz info.cz je záhadou. Zatím to vypadá na chybu v IE8, která nám opravdu hodně znepříjemňuje život.
Všichni si to můžete vyzkoušet na http://lmc.jobs.cz/cookie.php.
Udělejte refresh stránky a dostanete tento výsledek kromě MS IE8, proboha proč?
Pokud by byl někdo schopný pomoci s nápravou této chyby budeme vděční za pomoc.
Aktualizace: Pokud si dáte v Internet Exploreru res://urlmon.dll/ietldlist.xml dostanete se k blokovaným TLD doménám. Bohužel na něm je z ČR i jobs.cz.


