2010-07-16 7 views
3

Je ne peux pas faire fonctionner setcookie avec IE8. Mon script fonctionne bien dans IE7, Firefox et Safari, mais il ne semble pas fonctionner dans IE8 sous Windows7 et je suis désespéré!problème setcookie IE8

J'utilise un script petit test très court maintenant:

<?php 
$value = 'content'; 
setcookie("CookieTest", $value, 0); 
?> 

Avec Firefox cela fonctionne bien, le cookie est créé dans mon dossier de fichier temporaire sans aucun problème. Lorsque j'exécute ce script dans IE8, aucun cookie n'est créé. J'ai déjà mis la confidentialité au niveau le plus bas pour que tous les cookies soient acceptés. Mais même alors, pas de chance.

Quelqu'un peut-il avoir une idée de ce qui pourrait ne pas fonctionner ici?

Merci, Geert

+0

Ceci est le script de test que je utilise: $ value = 'contenu'; setcookie ("CookieTest", "$ value", 0); – Geert

+0

Les cookies sont probablement activés dans le navigateur et fonctionnent sur d'autres sites? Si vous essayez de lire le cookie avec '$ _COOKIE ['CookieTest']' sur la page suivante, cela n'existe pas ?! Que faire si vous définissez un cookie permanent, plutôt qu'un cookie de session, par exemple. time() + 86400 (1 jour) comme 3ème argument? – MrWhite

Répondre

0

Essayez d'utiliser Fiddler pour voir si l'en-tête Set-Cookie est inclus dans la réponse de la page, pour voir si elle est un problème côté serveur ou client.

Nous avons récemment rencontré ce qui peut être un bogue dans IE8 (peut-être introduit dans une récente mise à jour de Windows?) Parfois, nous mettons à jour la valeur d'un cookie en utilisant un en-tête Set-Cookie. La valeur du cookie est mise à jour, car nous pouvons voir la nouvelle valeur envoyée dans les en-têtes des requêtes HTTP suivantes. Mais après quelques secondes, le cookie semble "disparaître" et aucune requête subséquente ne contient le cookie.

Je ne trouve rien dans notre propre code côté client qui supprimerait le cookie, et j'ai suivi les requêtes et les réponses au serveur dans Fiddler, et aucun en-tête Set-Cookie ne supprime le cookie non plus.

Nous travaillons sur ce problème en définissant le cookie à partir du code Javascript.

0

J'ai eu le même problème, mais j'ai découvert que tant que le script n'est pas exécuté dans localhost, il fonctionne parfaitement. J'ai donc dû télécharger sur mon hôte et tester, au lieu de mon environnement de développement local.

Vous n'avez probablement plus besoin de cette réponse mais j'espère que quelqu'un d'autre le trouvera utile.

2

Testez:

setcookie("cook_name", hash($vid), time()+3600); 
setcookie('cook_name', hash($vid), time() + 60 * 60 * 24 * 30, '/', $_SERVER['HTTP_HOST']);