Aller au contenu

Cookie TROP implanté !


lorik

Sujets conseillés

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.

Lien vers le commentaire
Partager sur d’autres sites

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...

Lien vers le commentaire
Partager sur d’autres sites

Je ne vois pas d'où vient ton problème :blink:

mais tu pourrais le contourner en faisant par exemple :

$refresh=$_SERVER["REMOTE_ADDR"]." - ".$tps."//$$".time()+60;
$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);

$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é!';
}

Lien vers le commentaire
Partager sur d’autres sites

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 !

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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é par lorik
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...