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


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
Auteur

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 ?

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.

hars
Auteur

Bonjour et merci pour ces précisions.

J'ai trouvé cette page qui explique avec un peu plus de précisions pour les durs de la feuille comme moi ;-)
[https://jeanbaptistemarie.com/notes/code/php/supprimer-un-cookie-avec-php.html]()

Merci encore à vous pour votre aide :-)