Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
424 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Veut pas virer un cookie malgré méthode fonctionnant pour un autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Veut pas virer un cookie malgré méthode fonctionnant pour un autre

n°620755
aspegic500​mg
Posté le 24-01-2004 à 01:09:14  profilanswer
 

Dans mon site j'ai une authentification par cookie (qui intervient uniquement si aucune session n'est ouverte, ca permet de limiter les échanges client<->serveur :wahoo:  
 
 

Code :
  1. <?php
  2. include('include.php'); //rien que des fonctions usuelles qui n'ont rien à voir avec les cookies.
  3. setcookie('lghp','',time()-10000); //suppression du cookie "lghp"
  4. $var = $_COOKIE['lghp'];
  5. include("En-tete.php" ); // que du html
  6. echo $var;
  7. include("En-bas.php" ); // que du html
  8. ?>


 
Mon echo $var m'affiche le contenu du cookie que normalement je viens de supprimer, je ne comprend pas :??:  
 
La methode de suppression que j'utilise fonctionne impecablement bien pour un autre cookie (définit de la meme manière), d'où mon incompréhension.
 
Si vous avez une idée n'hesitez pas car là je sais plus quoi essayer :sweat:

mood
Publicité
Posté le 24-01-2004 à 01:09:14  profilanswer
 

n°620778
naceroth
Posté le 24-01-2004 à 01:27:41  profilanswer
 

P'tre dire une bétise, mais ça me semble parfaitement normal :
 

  • Tu charges ta page dans le navigateur : envoi du cookie client > serveur
  • Ton script indique de supprimer le cookie client, $_COOKIE du serveur reste intact
  • Tu lis $_COOKIE et tu demandes un affichage


Normal que tu vois le cookie puisqu'il existe toujours sur le serveur :)
 
Rajoute un unset($_COOKIE['lghp']); pour l'effacer des 2 côtés :)

n°620782
aspegic500​mg
Posté le 24-01-2004 à 01:34:59  profilanswer
 

naceroth a écrit :

P'tre dire une bétise, mais ça me semble parfaitement normal :
 

  • Tu charges ta page dans le navigateur : envoi du cookie client > serveur
  • Ton script indique de supprimer le cookie client, $_COOKIE du serveur reste intact
  • Tu lis $_COOKIE et tu demandes un affichage


Normal que tu vois le cookie puisqu'il existe toujours sur le serveur :)
 
Rajoute un unset($_COOKIE['lghp']); pour l'effacer des 2 côtés :)


 
Mais le setcookie() que je fais devrais changer la date d'expiration pour une date négative(sur le serveur aussi?), donc le supprimer aussitot non? (ca fonctionne pour un autre cookie déclaré identiquement, c'est ca qui me trouble!)
 
J'essaye ca de suite ;)  
 
Merci :wahoo:

n°620784
naceroth
Posté le 24-01-2004 à 01:40:40  profilanswer
 

aspegic500mg a écrit :


 
Mais le setcookie() que je fais devrais changer la date d'expiration pour une date négative(sur le serveur aussi?), donc le supprimer aussitot non? (ca fonctionne pour un autre cookie déclaré identiquement, c'est ca qui me trouble!)


 
Ben un cookie n'existe que chez le client, donc si tu changes une date d'expiration, ce sera celle du cookie client. Et ils ne sont transmis qu'au chargement d'une page et placés dans la variable globale $_COOKIE qu'à ce moment là.
 
Donc, à moins de recharger la page, il me semble que $_COOKIE reste en état jusqu'au prochain envoi de cookies

n°620785
aspegic500​mg
Posté le 24-01-2004 à 01:43:22  profilanswer
 

naceroth a écrit :


 
Ben un cookie n'existe que chez le client, donc si tu changes une date d'expiration, ce sera celle du cookie client. Et ils ne sont transmis qu'au chargement d'une page et placés dans la variable globale $_COOKIE qu'à ce moment là.
 
Donc, à moins de recharger la page, il me semble que $_COOKIE reste en état jusqu'au prochain envoi de cookies


 
Ok
 
Là j'ai fais ce que tu m'a dis (unset...) et ca supprime effectivement la valeur de $_COOKIE['lghp'] mais pourtant ma fonction d'authentification me relog juste aprés, donc le cookie n'a pas l'air réèlement supprimé :heink:  
 
Dans quel dossier (sous windows) on peut voir les cookies deja? :sleep:

n°620786
naceroth
Posté le 24-01-2004 à 01:48:33  profilanswer
 

Dépend du navigateur et de la version de Windoze.
 
Sous IE et Windows 2000/XP c'est c:\documents and settings\nom d'utilisateur\cookies et c:\documents and settings\nom d'utilisateur\local settings\temporary internet files (les 2, ça se propage beaucoup ces bestioles)
 
(c'est là qu'on aime fbird et mozilla quand on bosse :D)


Message édité par naceroth le 24-01-2004 à 01:49:27
n°620789
aspegic500​mg
Posté le 24-01-2004 à 01:56:49  profilanswer
 

(J'ai mis des controles partout dans mes scripts pour voir ce qui se passe)
 
Ma fonction qui log automatiquement si un cookie est trouvé contient ca:
if(isset($_COOKIE['lghp'])){
 //ici ca log le gars en session
 // aprés avoir visité logout.php le code qui est ici est executé, alors que le cookie "devrait" etre supprimé
}
 
Je suis allé voir dans le dossier de windows et le cookie est toujours là meme aprés avoir été sur logout.php, donc le probleme vient effectivement de la suppression du cookie :na:  
 
Dans mon logout.php j'en suis à ca:

Code :
  1. <?php
  2. include('include.php');
  3. unset($_COOKIE['lghp']);
  4. setcookie('lghp','',time()-10000);
  5. session_unregister("login" );
  6. ?>


 
Meme aprés ca le cookie est toujours là!

n°620792
aspegic500​mg
Posté le 24-01-2004 à 02:10:21  profilanswer
 

Là encore plus bizzare, j'ai supprimé le cookie manuellement du dossier de windows (celui ou y'a quelques centaines de cookies de tous les sites), et mon script trouve toujours un cookie, alors que quand je fais la meme operation pour l'autre cookie qui a juste le nom different (le script d'authentification le cherche de la meme maniere) il n'est pas trouvé (normal quoi..) :pt1cable:

n°620793
naceroth
Posté le 24-01-2004 à 02:10:50  profilanswer
 

Essaye

Code :
  1. include('include.php');
  2. unset($_COOKIE['lghp']);
  3. if (headers_sent()){
  4.     echo 'oups, problème';
  5. } else {
  6.     setcookie('lghp','',time()-10000);
  7. }
  8. ...


 
Pour s'assurer qu'il exécute bien la ligne

n°620795
aspegic500​mg
Posté le 24-01-2004 à 02:15:44  profilanswer
 

naceroth a écrit :

Essaye

Code :
  1. include('include.php');
  2. unset($_COOKIE['lghp']);
  3. if (headers_sent()){
  4.     echo 'oups, problème';
  5. } else {
  6.     setcookie('lghp','',time()-10000);
  7. }
  8. ...


 
Pour s'assurer qu'il exécute bien la ligne


 
ok j'essaye, mais je suis sûr qu'il n'envoi pas d'en-tete avant puisque j'ai essayé en l'envoyant aprés (pour justement avoir les resultat de mes tests) et ca passe nickel, d'ailleurs si je send mon en-tete avant ca me l'affiche en erreur ;)  
 
a tout de suite...

mood
Publicité
Posté le 24-01-2004 à 02:15:44  profilanswer
 

n°620796
aspegic500​mg
Posté le 24-01-2004 à 02:19:06  profilanswer
 

euh non pas la peine
 
J'ai résolu le problème mais je n'en connais pas la cause:
 
Comme dit plus haut, les cookies sont contenus dans 2 dossiers de windows, j'ai supprimé le cookie en lui meme dans le gros dossier ne contenant que des cookies, ca ne fonctionnait toujours pas, là je viens de fouiller dans les temporary internet files et il y'a aussi des cookies (plutot des raccourci vers cookie, car quand on clique sur un cookie supprimé il dit qu'il n'arrive pas à le trouver dans l'autre dossier d'origine), j'ai trouvé le cookie qui ne voulait pas partir, je l'ai supprimé et ca fonctionne de nouveau nickel (et je me peux me reloguer et redeloguer, ca ne le remet pas dans le dossier temporary)
 
Donc maintenant reste à élucider la question: Pourquoi est-ce qu'un raccourci vers le cookie à été foutu dans le dossier temporaire :heink:  
(parce que si ca se reproduit une fois le site en utilisation par les visiteurs ca le fait pas  de trop :sweat: )

n°620798
naceroth
Posté le 24-01-2004 à 02:20:50  profilanswer
 

// plus de raison d'être :D


Message édité par naceroth le 24-01-2004 à 02:22:10
n°628407
aspegic500​mg
Posté le 02-02-2004 à 12:49:46  profilanswer
 

Le probleme est revenu, ce coup-ci avec le cookie d'administrateur (enfin le probleme est le meme), le cookie est encore resté dans le temporary internet files :fou:  
 
Y'aurait-il moyen de spécifier au navigateur qui visite le site de ne pas mettre en cache les fichiers et donc cookies  :??: (à part les images, parce que tout recharger à chaque fois c'est pas possible)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Veut pas virer un cookie malgré méthode fonctionnant pour un autre

 

Sujets relatifs
[XML DOM] Javascript et la méthode save()[PHP] Créer un cookie dans un repertoire et l'utiliser ailleurs
[VB] - methode popupmenu -> appli qui se ferme pas. PQ?[SQLUNIT] Je découvre. Pourquoi ce test débile ne veut-il pas marcher?
Récupérer la date d'expiration d'un cookie?j# - Winsock Bordel j'arrive pas à utiliser la méthode connect :(
Impossible de recuperer la valeur de mon cookie.Méthode d'horner
question sur la methode post.Méthode pour installer un script de paiement par CB.
Plus de sujets relatifs à : Veut pas virer un cookie malgré méthode fonctionnant pour un autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR