11548 sujets

JavaScript, DOM et API Web HTML5

À ma connaissance, il n'existe pas de méthode pour lire la date d'expiration d'un cookie. Par contre, si ça t'intéresse de la connaitre, tu peux la stocker dans la valeur du cookie (ou dans un autre cookie) lorsque tu fixes celui-ci...
Bonjour Chadom,

Merci pour ta réponse.
Puisque celle-ci confirme mes craintes, je vais exposer une question plus large avant d'appliquer éventuellement le stockage de la date dans le cookie lui-même.

Question:
Comment modifier la valeur d'un cookie tout en conservant sa date d'expiration initiale et sans stocker celle-ci dans le cookie ?

Exemple concret (et un peu bidon): Comptabiliser le nombre de visite d'une page pendant 3h par un internaute.
Lors de la première visite de la page, un cookie est créé avec une valeur de "1" et reçoit une durée de vie de 3h.
Lors des visites suivantes par l'internaute dans les 3h, la valeur du cookie doit être incrémentée mais sa date d'expiration ne doit pas être modifiée.
Si l'internaute revient après 3h, le premier cookie n'existe plus et un nouveau est donc créé avec un durée de vie de 3h.

Je me demande pas forcément le code complet pour réaliser l'exemple, une simple suggestion ou une piste devrait suffire.

Merci beaucoup
Modifié par Mathieu_vd (24 May 2008 - 10:14)
Ok, je comprends maintenant ton problème et pourquoi tu voulais lire la date d'expiration.
On ne peut pas mettre simplement à jour la valeur d'un cookie. En pratique on l'écrase à chaque fois, et donc tu perdras en effet la date d'expiration initiale... La seule solution est celle que tu envisages, stoquer la date dans la valeur du cookie lui-même.

Au passage (parce que les dates c'est parfois chiant en js) pour avoir ta date d'expiration (ajouter 3h) :
var dExpire = new Date();
dExpire.setHours(dExpire.getHours()+3);

En élargissant, as-tu envisagé de traiter ton besoin côté serveur plutôt qu'en javascript ? Si tu le peux, les Sessions me sembleraient une solution propre et bien mieux adaptée.
chadom,

Merci pour ta réponse.

Pour ce qui est d'un traitement côté serveur, je vais y réfléchir mais je crois que certaines contraintes s'y opposeront.