Effacer un cookie

Par hars, il y a 6 ans


Bonjour,

Je ne comprends pas pourquoi je n'arrive pas à supprimer un cookie qui vient d'être créé via un formulaire.
Pour ce faire, j'ai mis un lien de déconnexion, mais mon cookie reste présente jusqu'à son extinction.

<a href="cookie.php?action=deconnecter">Se déconnecter</a> <!-- Lien pour se déconnecter--> <?php if (!empty ($_GET['action']) && $_GET['action']==='deconnecter') { unset ($_COOKIE['utilisateur']); } ?>

Si vous avez une idée car là, je cale....
Merci d'avance

4 réponses

thugg, il y a 6 ans

Essaie en redéfinissant la durée de vie du cookie à hier et sa valeur à vide (string "" , array [] , etc .... )
Quelquechose comme ça...

if (!empty ($_GET['action']) && $_GET['action']==='deconnecter') { setcookie ('utilisateur', "", time() -3600*24); }
hars, il y a 6 ans

Bonjour et merci pour votre aide.
Avant de modifier quoi que ce soit, j'aime bien comprendre.
Je suis en train d'apprendre et apprendre sans comprendre ne mène à rien.

Ai-je fais une erreur de code ?

Si oui, quelle est cette erreur ?
Si non, pourquoi le contenu de cette variable n'est pas effacé ?

Est-ce possible d'effacer complètement une cookie et non pas son contenu ?

eltharin, il y a 6 ans

Le cookie est géré via le navigateur et non le serveur, il est envoyé du navigateur au serveur à chaque page.
Quand tu fais ton unset, tu supprimes la varibale envoyé au serveur, mais ce que le navigateur a tu ne le supprime pas, de ce fait il le renvoie au prochain appel.
Ce que thugg t'a envoyé, tu dis au navigateur de remplacer le cookie existant par un autre expiré de manière à ce qu'il se supprime.