[PHP] Suppression de cookie

Fermé
albanism Messages postés 3 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 9 septembre 2009 - 8 sept. 2009 à 22:47
albanism Messages postés 3 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 9 septembre 2009 - 9 sept. 2009 à 19:14
Bonjour,

Je rencontre un problème de suppression de cookie que j'utilise pour conserver mes utilisateurs "loggés" même lorsque le navigateurs est fermé.

Pour la création et l'utilisation des cookies aucun soucis, tout marche très bien. Mais lorsque je tente de supprimer le cookie (ce qui correspond à l'action de se déconnecter pour un utilisateur, le coockie n'est pas supprimer.

Je me suis renseigné un peu sur le sujet mais je ne vois pas l'erreur. En fait, je ne vois même pas d'où peut venir l'erreur tant la mapinulation semble simple en théorie.

Voici mon code appelé pour supprimer mon coockie :

setcookie ("nickName", "", time() - 3600);


La ligne du dessous contient :
if(isset($HTTP_COOKIE_VARS['nickName']))
	echo "Cookie non supprimé";

Et affiche bien "Cookie non supprimé".

Avez-vous une explication ?

Si cela peut aider, je travail sur une version local du site. Est-ce que ça pourrait venir de là ?

Bien cordialement,
A voir également:

3 réponses

P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
9 sept. 2009 à 00:22
Toute action sur les cookies n'est visible qu'après rechargement de pages.
0
albanism Messages postés 3 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 9 septembre 2009
9 sept. 2009 à 18:52
Ok, je viens de prendre en compte ta remarque mais le problème n'est pas résolu.

Je le fais sur un exemple simple :

fichier1.php : création du cookie
<?php
setcookie("test", "unCookie", time() + (365*24*3600), "/");
?>


fichier2.php : Destruction du cookie
<?php
setcookie("test");
?>


fichier3.php : test de l'existance du cookie
<?php
if(!isset($HTTP_COOKIE_VARS['test']))
	echo 'cookie enlevé';
else
        echo 'cookie encore présent';
?>


J'execute le fichier1.php, puis fichier2.php, puis fichier2.php.

L'affichage du fichier3.php estcookie encore présent.

As-tu une idée de ce que je fais mal ? (j'ai détruit tout les cookies existants avant de faire le teste).

D'avance merci.

PS : en complément, je regarde l'évolution des cookies : l'execution de fichier1.php crée un cookie de nom test et de contenu unCookie (normal, tout se passe bien). L'execution de fichier2.php crée un second cookie de même nom mais vide cette fois-ci. Cela indique-t-il que le problème vient de la configuration de mon serveur local ?
0
albanism Messages postés 3 Date d'inscription mardi 8 septembre 2009 Statut Membre Dernière intervention 9 septembre 2009
9 sept. 2009 à 19:14
Ok, je me réponds à moi-même pour dire que j'ai trouvé la solution. Où plutôt le problème :

Chez moi,
setcookie(nomDuCookie);

ne suffit pas à supprimer un cookie. Je dois faire
setCookie("test", "", (time() - 3600), '/');


Maintenant que le problème est résolue, j'aimerai comprendre pourquoi. Je viens de faire le teste et le serveur (indépendant) sur lequel je suis fonctionne de la même manière.

Dans l'attente d'une lumière...

Merci !

PS : c'etait mon premier poste sur ce forum et je l'ai résolue moi-même ^^
0