Regarder la documentation de php sur la définition d’un cookie , je vois que je peux mettre une date d’expiration du cookie. Vous pouvez définir le cookie expire à la fin de la session du navigateur ou à un certain moment dans l’avenir, mais je ne vois pas un moyen de définir le remplacement du cookie n’expirent jamais. Est-ce même possible et comment cela est réalisé ?
Réponses
Trop de publicités?Tous les cookies expirent conformément à la spécification de cookie, donc ce n’est pas une limitation de PHP.
Utiliser une date bien ultérieure. Par exemple, définir un cookie qui expire en dix ans :
Notez que si vous définissez une date dernières 2038 en PHP, le nombre se terminera autour et vous obtiendrez un cookie qui expire instantanément.
Valeur maximale: 2147483647
setcookie("CookieName", "CookieValue", 2147483647);
Pour éviter le débordement d'entier l'horodatage doit être réglée à:
2^31 - 1 = 2147483647 = 2038-01-19 04:14:07
Réglage d'une valeur plus élevée peut causer des problèmes avec les anciens navigateurs.
Voir aussi la RFC sur les cookies:
Max-Age=value OPTIONAL. The value of the Max-Age attribute is delta-seconds, the lifetime of the cookie in seconds, a decimal non-negative integer. To handle cached cookies correctly, a client SHOULD calculate the age of the cookie according to the age calculation rules in the HTTP/1.1 specification [RFC2616]. When the age is greater than delta-seconds seconds, the client SHOULD discard the cookie. A value of zero means the cookie SHOULD be discarded immediately.
Si un cache reçoit une valeur plus grande que le plus grand positif entier qu'elle peut représenter, ou si l'un de son âge calculs des débordements, il DOIT transmettre un Âge d'en-tête avec une valeur de 2147483648 (2^31).
Mon privilège empêche de me faire mon commentaire sur le premier post, donc il faudra aller ici.
Examen doit tenir compte de 2038 bug unix lors de la définition de 20 ans à l’avance à la date actuelle est suggèrent que la bonne réponse ci-dessus.
Votre cookie le 19 janvier 2018 + (20 ans) pourrait bien frapper 2038 problème selon le navigateur et ou vous vous retrouvez en cours d’exécution des versions.
Alors que ce n’est pas exactement possible, vous pourriez faire quelque chose de semblable à ce que Google et définie votre cookie expire le 17 Janvier 2038 ou quelque chose de tout aussi loin.
En toute praticité, vous pourriez être mieux lotis définissant votre cookie pendant 10 ans ou 60 60 24 365 10, qui devrait survivre à la plupart des machines que vivra votre cookie.