lorik Posté 24 Février 2006 Posté 24 Février 2006 Et oui, trop implanté en référence à mon post sur les 'cookies non implantés !' Ma question : Que se passe t il quant un cookie expire ? je m'explique : J'implante un cookie, durée de vie 60 secondes : $refresh=$_SERVER["REMOTE_ADDR"]." - ".$tps; $ttl = time()+60; // forcé à 60 secondes header("P3P: policyref=\"http://www.site.fr/p3p.xml\",CP=\"NON DSP COR CURa PSA PSD OUR BUS NAV STA\""); setcookie("refresh", $refresh, $ttl, "/", "site.fr",0); Après 60 seconde, que renvoie un : if (!empty($_COOKIE["refresh"])); Normalement, pour moi, il devrait renvoyer 'false', si le cookie à expiré. He bé non, chez moi, c'est 'true'. Un ptit toyo serais le bienvenu. Par avance merci.
michel durand Posté 24 Février 2006 Posté 24 Février 2006 je crois que vous devriez essayer un isset plutot qu'un empty...mais je n'en metterai pas ma mains au feux non plus car le cookie existe tout en étant périmé
lorik Posté 24 Février 2006 Auteur Posté 24 Février 2006 Merci de ta reponse J'ai essayé, mais le problème est ailleurs, car le contenu du cookie est lu, même après les 60 secondes. Le problème est lié à la durée elle même qui ne semble pas prise en compte, va savoir pourquoi...
Théo B. Posté 25 Février 2006 Posté 25 Février 2006 Je ne vois pas d'où vient ton problème mais tu pourrais le contourner en faisant par exemple : $refresh=$_SERVER["REMOTE_ADDR"]." - ".$tps."//$$".time()+60;$ttl = time()+60; // forcé à 60 secondesheader("P3P: policyref=\"http://www.site.fr/p3p.xml\",CP=\"NON DSP COR CURa PSA PSD OUR BUS NAV STA\"");setcookie("refresh", $refresh, $ttl, "/", "site.fr",0); $chars = preg_split('!//$$!',$_COOKIE["refresh"]);$t=time();if($chars[1]>$t){echo 'Cookie périmé!';}else{echo 'Cette fois il est vraiment pas périmé!';}
lorik Posté 25 Février 2006 Auteur Posté 25 Février 2006 Merci Theo, C'est une bonne idée pour contourner, mais j'aime pas les trucs qui doivent marcher et qui marchent pas ! Je me pose une question : Qui est ce qui 'decide' de l'expiration du cookie ? le poste client, ou le serveur qui va le lire ? Parce que si c'est le poste client, et que son horloge n'est pas pas synchrone avec le serveur, cela pourrait expliquer... Mais ça m'étonnerai que ça marche comme ça !
Théo B. Posté 25 Février 2006 Posté 25 Février 2006 C'est sur le poste client que le cookie est donc c'est lui qui le supprime... Mais de toutes façon que son horloge soit où non déréglée n'a aucun effet sur la durée puisque time() retourne l'heure le temps qui s'est écoulé depuis le 1er janvier 1970 00:00:00 GMT... C'est très bizarre ton problème
lorik Posté 27 Février 2006 Auteur Posté 27 Février 2006 (modifié) Bon, je desespère... En désespoir de cause, j'utilise ton astuce Theo B, mais ça m'inquiete assez, car j'utilise des cookies à tour de bras, avec des durées jusqu'a 6 mois, et j'espère que les autres (qui sont batis sur le même modele), n'ont pas le même problème ! Merci quand même, ça permet à mon script de tourner ! Modifié 27 Février 2006 par lorik
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant