Suppression de cookies

Suppression de cookies - PHP - Programmation

Marsh Posté le 03-03-2006 à 17:58:18    

Bon je fais un petit intranet local a titre perso pour partager avec des amis et la famille.
 
En meme temps je m'autoforme au php.
 
MOn probleme actuelle est sur les cookies. J'ai un espace d'authentifaction qui créer des cookies. Quand on se déconnecter (lien deconnection) cela supprime les cookies
Tout fonctionne bien sous IE mais pas sous Firefox
 
VOici le code
 

Code :
  1. <?php
  2. //Destruction de cookies
  3. SetCookie("pseudo","", time() - 3600);
  4. SetCookie("nom","", time() - 3600);
  5. SetCookie("prenom","", time() - 3600);
  6. SetCookie("rang","", time() - 3600);
  7. header("location:../index.php" );
  8. ?>


 
Sous IE je clique le lien qui execute ce code il me supprime mes cookies et revient à l'index (page d'authentification)
Sous Firefox il ne se passe rien, je reste sur la meme page (celle une fois authentifier) parce que le cookies est encre present.
 
Une idée?

Reply

Marsh Posté le 03-03-2006 à 17:58:18   

Reply

Marsh Posté le 03-03-2006 à 18:16:25    

essaie de faire un unset($_COOKIE['pseudo'])


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 03-03-2006 à 18:23:21    

Cela me fait la meme chose
Il charge mais reste sur la page et ne fait rien

Reply

Marsh Posté le 03-03-2006 à 19:32:00    

Personne?

Reply

Marsh Posté le 03-03-2006 à 19:38:33    

est ce que tu es sur que ton cookie existe toujours parce vu ce que tu fais il ne peux plus exister. Je pense donc plutot que c'est ta redirection non ?


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 03-03-2006 à 20:01:57    

Oui il existe bien
je le fait afficher dans les parametre de firefox
De plus dans la page je le test en me le faisant afficher la valeur.
De plus si le cookies n'etait pas existant j'irai automatiquement en page d'authentification.
 
Sous IE tout fonctionne bien (creation, exploitatioin, suppression du cookies) sous Firefox la suppression ne fonctionne pas et je sais vraiment pas pourquoi
 
Si je supprime manuellement le cookies hop retour a la page d'authentification  
Je me reconnecte hop j'exploite bien le cookies mais impossible de se deconecter puisqu'il ne veux pas le supprimer

Reply

Marsh Posté le 03-03-2006 à 20:10:34    

essaie de modifier la valeur de ton cookie pour voir ce que ca donne.


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 03-03-2006 à 20:23:44    

Etant donne que ces des cookies de connection j'ai supprimer les cookies manuellement et je me suis logger avec un autre compte
 
Idem meme probleme.
 
Ensuite j'ai modifier les valeur de temps en mettant 30 (pour 30 seconde)
Je me connecter et 30 seconde après le cookies a bien etet supprimer de ce fait je peux me deconnecter (puisque il essai de supprimer un cookies qui n'existe pas donc pas de cookies retour a la page d'authentification)
 
Et je me suis reconnecter et j'ai essayé de me deconnecter (manuellement sans attendre le temps de vie du cookies) et malheureusement cela n'a pas marcher
 
Je capte vraiment pas ce qui cloque

Reply

Marsh Posté le 04-03-2006 à 16:27:41    

up

Reply

Marsh Posté le 07-03-2006 à 12:50:23    

Up le probleme est toujours pas résolu et je prefere pas continuer plus loin tant que ceci n'est pas résolu.
 
Personne n'a d'idée?

Reply

Marsh Posté le 07-03-2006 à 12:50:23   

Reply

Marsh Posté le 15-03-2006 à 13:19:45    

Je re UP car j'ai toujours le souci je repète don pour ceux qui prenne en route.
 
Sous IE tout fonctionne niquel (creation, fonctionnement et suppression des cookies)
 
Sous Firefox c'est une autre affaire la creation se fait bien, l'utilisation pareil cependant la suppression rien à faire il ne veux pas supprimer mes cookies de connectio quan je le lui demande.
 
:(

Reply

Marsh Posté le 15-03-2006 à 13:27:53    

et si tu fais juste:

Code :
  1. SetCookie("pseudo" );
  2. SetCookie("nom" );
  3. SetCookie("prenom" );
  4. SetCookie("rang" );

Reply

Marsh Posté le 15-03-2006 à 14:11:09    

C'est la solution que j'allais apporter.
 
Tous est dans la doc http://fr.php.net/manual/fr/function.setcookie.php


Message édité par cinocks le 15-03-2006 à 14:11:45

---------------
MZP est de retour
Reply

Marsh Posté le 15-03-2006 à 14:20:25    

Idem il ne se passe rien
 
Donc en récapitulant j'ai essayé :
 

Code :
  1. setcookie("pseudo", "", time()-3600);


Et ca ne fonctionne pas
 

Code :
  1. unset ( $_COOKIE['pseudo']);


Et ca ne fonctionne pas
 

Code :
  1. SetCookie("pseudo" );


Et ca ne fonctione pas.
 
Mais seulement avec Firefox avec IE tout est niquel
 
Ca m'enerve de rester coincé comme ca sans message d'erreur sans rien. :(

Reply

Marsh Posté le 15-03-2006 à 14:23:16    

et tu ne redefinies par les cookies un peu plus loin.


---------------
MZP est de retour
Reply

Marsh Posté le 15-03-2006 à 14:28:18    

Bas je pense pas mais voici en detail ce qu'il y à.
 
Alors je suis authentifier et je suis donc dans la page acceuil. Il y a un lien Deconnexion qui point vers un fichier php avec simplement la destruction des cookies et un header vers le fichier index.php
 
ce fichier index.php le voici
 

Code :
  1. <?
  2. // Etablissement de la connection à la base de données
  3. require("inc\inc_connexion.php" );
  4. $db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
  5. if (isset ($_COOKIE['pseudo'])){
  6. header("location:acceuil.php" );
  7. }
  8. else {
  9. if (isset($_POST['pseudo'])){
  10.  $pseudo = $_POST['pseudo'];
  11.  $password = md5($_POST['password']);
  12. // requete sur la table Users (on récupère les infos)
  13. mysql_select_db($sql_bdd, $db_link);
  14. $verif_query=sprintf("SELECT * FROM users WHERE pseudo='$pseudo' AND password='$password'" );
  15. $verif = mysql_query($verif_query, $db_link) or die(mysql_error());
  16. $row_verif = mysql_fetch_assoc($verif);
  17. $utilisateur = mysql_num_rows($verif);
  18. if (($utilisateur) || ($row_verif['pseudo'] == '1')){ // On test s'il y a un utilisateur correspondant
  19. session_register("authentification" ); // enregistrement de la session
  20.  // Création des cookies
  21.  $privilège = $row_verif['rang'];
  22.  $nom = $row_verif['nom'];
  23.  $prenom = $row_verif['prenom'];
  24.  $pseudo = $row_verif['pseudo'];
  25.  $password = $row_verif['password'];
  26.  $rang = $row_verif['rang'];
  27.  $_SESSION['pseudo'] = $row_verif['pseudo'];
  28.  $_SESSION['rang'] = $row_verif['rang'];
  29.  setcookie("pseudo", $pseudo, time()+3600);
  30.  setcookie("nom", $nom, time()+3600);
  31.  setcookie("prenom", $prenom, time()+3600);
  32.  setcookie("rang", $rang, time()+3600);
  33.  header("Location:acceuil.php" ); // redirection si OK
  34. }
  35. elseif (($utilisateur) && ($row_verif['pseudo'] != '1')){
  36.  header("Location:index.php?erreur=validation" ); // redirection si utilisateur n'à pas été validé
  37. }
  38. else {
  39.  header("Location:index.php?erreur=pseudo" ); // redirection si utilisateur non reconnu
  40. }
  41. }
  42. }
  43. ?>


 
Je n'ai pas mis la partie HTML mais c'est implement un formulaire et la gestion des erreur du formulaire.
 
Donc au debut il test si il y a un cookie pseudo si il exist on va sur la page Acceuil.
 
Cependant etant donné que le cookie n'arrive pas etre supprimer et bas on n'y va directement sur cette page acceuil de ce fait bas il n'y à rien qui se passe.
 
Une idée ?

Reply

Marsh Posté le 15-03-2006 à 14:35:05    

Un conseil d'ami, je vois que tu prends bien la tete avec ce probleme de cookie, alors laisse tomber les cookies : c'est vieux et depasse.
Utilise les sessions et stokes les dans une BDD avec les preferences des users si tu veux. Puis tu donnes ta propre duree de vie en y inserant une date d'insertion et une date de fin. Et tu y fais le menage quand bon te semble. C'est exactement identique a un cookie.
 
 :hello:

Message cité 1 fois
Message édité par fabs2b le 15-03-2006 à 14:41:22
Reply

Marsh Posté le 15-03-2006 à 14:35:35    

:jap:


Message édité par fabs2b le 15-03-2006 à 14:42:20
Reply

Marsh Posté le 15-03-2006 à 14:39:28    

Et par rapport à mon script actuelle comment je modifie cela
 
excuse moi mais je suis un petit debutant donc bon. Et puis stocker les session en BDD la j'ai un peu de mal à comprendre le systeme et comment cela va fonctionner.
 
:(
 
Mais bon concernant les cookies doit bien avoir un truc c'est pas possible. Ca doit etre tout con. Car c'est un petit projet perso que je fais donc voila quoi  
 
:)

Reply

Marsh Posté le 15-03-2006 à 14:45:26    

En fait faut que tu stokes l 'ID de la session.
 
MAis si ton cookie te sers juste pour une identification, tu crees une session , tu y inseres ton pseudo, pass, etc, puis ensuite pour savoir si une personne peux consulter une page tu fais une verification par rapport a ceux que tu as dans ta session et ceux que tu as dans la BDD.  
 
Y a de ne nombreux post dans ce forum sur ce sujet

Reply

Marsh Posté le 15-03-2006 à 14:54:41    

fabs2b a écrit :

Un conseil d'ami, je vois que tu prends bien la tete avec ce probleme de cookie, alors laisse tomber les cookies : c'est vieux et depasse.
Utilise les sessions et stokes les dans une BDD avec les preferences des users si tu veux. Puis tu donnes ta propre duree de vie en y inserant une date d'insertion et une date de fin. Et tu y fais le menage quand bon te semble. C'est exactement identique a un cookie.
 
 :hello:


 
C'est tres securisé comme systeme, les sessions. Y'a rien de plus simple à voler.  [:payzan]


---------------
MZP est de retour
Reply

Marsh Posté le 15-03-2006 à 15:06:29    

cinocks a écrit :

C'est tres securisé comme systeme, les sessions. Y'a rien de plus simple à voler.  [:payzan]


 
 
C'etait un exemple rapide, evidemment il faut y ajouter des donnees supplementaires comme l'IP par exemple.
Puis on peut faire un md5 de la session + user + date + ip, ...

Reply

Marsh Posté le 15-03-2006 à 15:22:43    

Ou la lalalala :(
 
Sinon mes cookies me sert à definir les niveau d'accès donc bon la les session c'est faisable mais coupler à la bdd + id de session + ca + ca ca fait trop la lol
 
Puis un truc les sessions sont supprimer a chaque fermeture du navigateur. comment faire avec des sessions pour eviter de ce reconnecter a chaque fois?  
c'est ca aussi l'avantage des cookies

Reply

Marsh Posté le 15-03-2006 à 15:26:16    

Une session est valable plusieurs heures. On peut definir son temps d'existence.
Une session est un fichier comme un cookie, sauf qu'il est sur le serveur

Reply

Marsh Posté le 15-03-2006 à 15:39:31    

hyptnos a écrit :

Idem il ne se passe rien
 
Donc en récapitulant j'ai essayé :
 

Code :
  1. setcookie("pseudo", "", time()-3600);


Et ca ne fonctionne pas
 

Code :
  1. unset ( $_COOKIE['pseudo']);


Et ca ne fonctionne pas
 

Code :
  1. SetCookie("pseudo" );


Et ca ne fonctione pas.
 
Mais seulement avec Firefox avec IE tout est niquel
 
Ca m'enerve de rester coincé comme ca sans message d'erreur sans rien. :(


 
Pour q'un cookie fonctionne, il suffit de le creer comme ça :
setcookie('test', 'value', false, '/', false, 0);
le 3eme champ false, c'est le timestamp, donc si il est a false, en fermant le navigateur, le cookie partira.
 
Pour effacer, c'est pareil
setcookie('pseudo', '', time()-60, '/', false, 0)
unset ( $_COOKIE['pseudo']);


Message édité par chaced le 15-03-2006 à 15:40:21

---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 15-03-2006 à 15:46:28    

Merci Chaced sauf que je ne veux pas qu'il se detruise en fermant le navigateur mais seulemen lorsque l'on se deconnecte. Je veux que si la personne ferme sont navigateur et revienne ensuite qu'il n'est pas besoin de se re authentifier.
 
Mais j'ai regarder un truc il semblerais que cela vienne de Firefox lui meme mais peut etre que je me trompe;
 
En effet la gestion des cookies sont gérer en interne par firefox contrairement a IE qui lui les stock un a un dans un répertoire. Les cookies de firefox sont eux stocker non pas dans un répertoire mais dans un fichier au nom de cookies.txt qui se trouve dans documents and settings/....../application data/mozilla/firefox/profiles/......./cookies.txt
 
Cela ne pourrait il pas venir de ca?
 
Sinon j'essai de suite la possibilité de chaced pour voir

Reply

Marsh Posté le 15-03-2006 à 15:48:21    

hyptnos a écrit :

Merci Chaced sauf que je ne veux pas qu'il se detruise en fermant le navigateur mais seulemen lorsque l'on se deconnecte. Je veux que si la personne ferme sont navigateur et revienne ensuite qu'il n'est pas besoin de se re authentifier.
 
Mais j'ai regarder un truc il semblerais que cela vienne de Firefox lui meme mais peut etre que je me trompe;
 
En effet la gestion des cookies sont gérer en interne par firefox contrairement a IE qui lui les stock un a un dans un répertoire. Les cookies de firefox sont eux stocker non pas dans un répertoire mais dans un fichier au nom de cookies.txt qui se trouve dans documents and settings/....../application data/mozilla/firefox/profiles/......./cookies.txt
 
Cela ne pourrait il pas venir de ca?
 
Sinon j'essai de suite la possibilité de chaced pour voir


 
Ben oui, c'est ce que j'ai marqué, tu remplace juste le 1er falsea la création par time()+lessecondesquetuveuxqu'ilgardesoncookie
 
Et n'oublie pas le reste des arguments, sinon firefox te jete :D


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 15-03-2006 à 16:17:27    

fabs2b a écrit :

C'etait un exemple rapide, evidemment il faut y ajouter des donnees supplementaires comme l'IP par exemple.
Puis on peut faire un md5 de la session + user + date + ip, ...


 
l'ip n'est pas non plus unique. Et faire un md5 du tout ne sert pas à grand chose puisqu'il suffit de voler l'identifiant de session pour que ces données te soit affectée.
L'ip n'est pas exploitable de maniere sure. enormement de personne passe par un proxy et n'ont pas d'ip publique. Ce sera celle du proxy. Et quid des gens passant par une passerelle où leur point d'acces peut changer à chaque appel de page. L'ip changera aussi regulierement et l'identification sera terminée.  
 


---------------
MZP est de retour
Reply

Marsh Posté le 15-03-2006 à 16:19:55    

hyptnos a écrit :

Merci Chaced sauf que je ne veux pas qu'il se detruise en fermant le navigateur mais seulemen lorsque l'on se deconnecte. Je veux que si la personne ferme sont navigateur et revienne ensuite qu'il n'est pas besoin de se re authentifier.
 
Mais j'ai regarder un truc il semblerais que cela vienne de Firefox lui meme mais peut etre que je me trompe;
 
En effet la gestion des cookies sont gérer en interne par firefox contrairement a IE qui lui les stock un a un dans un répertoire. Les cookies de firefox sont eux stocker non pas dans un répertoire mais dans un fichier au nom de cookies.txt qui se trouve dans documents and settings/....../application data/mozilla/firefox/profiles/......./cookies.txt
 
Cela ne pourrait il pas venir de ca?
 
Sinon j'essai de suite la possibilité de chaced pour voir


 
Les cookies fonctionnent tres bien sous firefox. Je viserai plutot une merde dans ton code. Je n'ai jamais rencontré ton probleme sous FF.


---------------
MZP est de retour
Reply

Marsh Posté le 15-03-2006 à 17:28:47    

cinocks a écrit :

C'est tres securisé comme systeme, les sessions. Y'a rien de plus simple à voler.  [:payzan]


 
Si y a plus simple que voler une session : voler un cookie.
fabs2b a raison : les cookie c'est aujourd'hui obsolete.

Reply

Marsh Posté le 15-03-2006 à 17:30:28    

Bas je vois pas qu'elle merde il pourait y avoir :(
 
Sinon j'ai essayé la version de chaced et c'est pas bon enfin j'ai pas eu le temps d'appronfondir mais cela me faisait des problemes de header :( faut que je vois cela tete repose
 
et sinon je me dirigerais vers les sessions

Reply

Marsh Posté le 15-03-2006 à 17:32:44    

smaragdus a écrit :

Si y a plus simple que voler une session : voler un cookie.
fabs2b a raison : les cookie c'est aujourd'hui obsolete.


 
si tu veux qu'un user se connecte automatiquement sur ton site, c'est quand meme une bonne solution, meme si le script de faille xss et vol de cookie par js est toujours possible.


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 15-03-2006 à 17:53:24    

Tient j'ai retrouvé mon code qui gere mon cookie :D
 
PS : le pass est deja haché dans la SGBD bien sur ;)
 

Code :
  1. <?php
  2. //Gestion de la connexion
  3. //0 : effacement du cookie
  4. //1 : Verification du cookie
  5. //2 : ecriture du cookie
  6. //Retourne -1 si compte non activᅵ 0 si probleme de vᅵification du cookie, sinon retourne IDU.
  7. function connexion($quoi,$idu='',$pass='',$mois=false)
  8. {
  9. if ($quoi==2)
  10. {
  11.  $ac['id']=$idu;
  12.  $ac['pp']=$pass;
  13.  setcookie('mycook',serialize($ac),$mois, '/', false, 0);
  14. }
  15. else if ($quoi==1)
  16. {
  17.  if (isset($_COOKIE['mycook']))
  18.  {
  19.   $ac=unserialize($_COOKIE['mycook']);
  20.       if($ac['id'] && $ac['pp']!='')
  21.   {
  22.    $rs=mysql_query("select pass,activation from users where idu='".$ac['id']."'" );
  23.    if ($row=mysql_fetch_array($rs))
  24.    {
  25.     if ($row['activation']!=''){return -1;}
  26.     if ($ac['pp']==$row['pass'])
  27.     {
  28.      return $id;
  29.     }
  30.    }
  31.   }
  32.  }
  33.  return 0;
  34. }
  35. else // effacement
  36. {
  37.  setcookie('mycook','',time()-1);
  38. }
  39. }
  40. ?>


Message édité par chaced le 15-03-2006 à 18:04:49

---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 15-03-2006 à 18:03:57    

oh la belle faille....

Reply

Marsh Posté le 15-03-2006 à 18:06:09    

tu veux parler du sql injection ? les magics quotes sont activées :D


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 15-03-2006 à 18:13:39    

smaragdus a écrit :

Si y a plus simple que voler une session : voler un cookie.
fabs2b a raison : les cookie c'est aujourd'hui obsolete.


 
Les 2 sont aussi peu securisé. Et c'est une connerie que de ne servir que des sessions.

Reply

Marsh Posté le 15-03-2006 à 18:14:35    

cinocks a écrit :

Les 2 sont aussi peu securisé. Et c'est une connerie que de ne servir que des sessions.


 
cOmment se rappeler de quelqu'un genre un autolog de forum sans cookie ?


---------------
CPU-Z | Timespy | Mes bd
Reply

Marsh Posté le 15-03-2006 à 18:15:48    

cinocks a écrit :

Et c'est une connerie que de ne servir que des sessions.


 
lol

Reply

Marsh Posté le 15-03-2006 à 21:50:05    

Qu'est-ce qui te fais rire :??:

Reply

Marsh Posté le 15-03-2006 à 21:52:35    

cinocks a écrit :

Qu'est-ce qui te fais rire :??:


 
d'apres moi il rigole car tu es assez radical  et brutal !  :lol:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed