Veut pas virer un cookie malgré méthode fonctionnant pour un autre - PHP - Programmation
Marsh Posté le 24-01-2004 à 01:27:41
P'tre dire une bétise, mais ça me semble parfaitement normal :
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
Marsh Posté le 24-01-2004 à 01:34:59
naceroth a écrit : P'tre dire une bétise, mais ça me semble parfaitement normal :
|
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
Marsh Posté le 24-01-2004 à 01:40:40
aspegic500mg 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
Marsh Posté le 24-01-2004 à 01:43:22
naceroth a écrit : |
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é
Dans quel dossier (sous windows) on peut voir les cookies deja?
Marsh Posté le 24-01-2004 à 01:48:33
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 )
Marsh Posté le 24-01-2004 à 01:56:49
(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
Dans mon logout.php j'en suis à ca:
Code :
|
Meme aprés ca le cookie est toujours là!
Marsh Posté le 24-01-2004 à 02:10:21
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..)
Marsh Posté le 24-01-2004 à 02:10:50
Essaye
Code :
|
Pour s'assurer qu'il exécute bien la ligne
Marsh Posté le 24-01-2004 à 02:15:44
naceroth a écrit : Essaye
|
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...
Marsh Posté le 24-01-2004 à 02:19:06
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
(parce que si ca se reproduit une fois le site en utilisation par les visiteurs ca le fait pas de trop )
Marsh Posté le 24-01-2004 à 02:20:50
// plus de raison d'être
Marsh Posté le 02-02-2004 à 12:49:46
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
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)
Marsh Posté le 24-01-2004 à 01:09:14
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
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