2010-07-04 5 views

Répondre

2

Il n'existe pas de moyen de savoir quand un cookie est défini pour expirer ou l'un des autres paramètres que vous demandez pour l'utilisation de PHP. C'est parce que PHP ne stocke rien de ce genre, quand vous configurez un cookie, vous dites simplement que l'en-tête du navigateur n'est qu'une seule fois, puis c'est le travail du client (un navigateur) de renvoyer les données du cookie. à chaque requête HTTP. PHP n'a donc aucune raison de conserver les données, donc ce n'est pas le cas.

Vous pouvez bien sûr stocker lorsque le cookie expirera dans un autre cookie ou un fichier quelque part, si vous savez où dans votre code les cookies sont configurés.

+0

Le stocker n'est pas une garantie. L'utilisateur est libre de le modifier lui-même. –

+0

Si l'utilisateur/client ne se comporte pas, l'application ne devrait pas devoir non plus. – Sam152

1

Non (certainement pas avec PHP et je ne pense pas que vous pouvez le faire avec Javascript non plus). Mais vous pouvez enregistrer cette information dans les données de cookie.

Parfois, vous souhaitez avoir un cookie valide pendant un certain temps et également appliquer cette validité dans le serveur. Par exemple, le client utilise un cookie pour s'authentifier lui-même et ce cookie a une certaine validité (par exemple, l'utilisateur doit être connecté pour x jours). Dans ce cas, vous devez également stocker cette heure dans la base de données et la vérifier lorsque le jeton d'authentification de cookie est donné. S'il n'y a pas de falsification, le cookie devrait expirer au moment où vous avez enregistré dans la base de données (ou avant), sinon les informations d'identification sont rejetées de toute façon.

1

Vous ne pouvez pas non plus le faire côté client. Javascripts document.cookie ne rend pas l'heure d'expiration disponible. Un idiome commun est donc de définir des cookies compagnons, qui contiennent la dernière fois que les cookies ont été actualisés. Ou vous pouvez également définir un cookie sur des valeurs composées, par ex. setcookie("name", "value..|time()") et y accéder plus tard en utilisant strtok($_COOKIE["name"], "|").