Bonjour,
Je n'arrive pas à trouver d'où vient l'erreur. J'utilise un cookie pour la connexion automatique de mes clients sur mon site. Or après leur déconnexion du site (avec effacement des cookies) quand il se reconnecte le cookie est toujours là.
Peut-être trouverez-vous l'erreur ?
Voici quelques bout de code sur mon site d'où pourrait peut etre venir le problème :
* si le client vient de cliquer sur "inscription sur le Site"
Code :
- // si l'inscription s'est bien déroulée, on envoie un cookie des identifiants chez le client
- $expire = 24*3600*365*1; // 1 an
- setcookie("username",$username,time()+$expire,"/" );
- setcookie("password",$password,time()+$expire,"/" );
|
* si le client vient de cliquer sur "Connection sur le Site"
Code :
- // si la connexion s'est bien déroulé, on envoie un cookie des identifiants chez le client pour ne plus qu'il ait besoin de se connecter
- if ( !$_COOKIE["username"] && !$_COOKIE["password"] )
- { $expire = 24*3600*365*1; // 1 an
- setcookie("username",$username,time()+$expire,"/" );
- setcookie("password",$password,time()+$expire,"/" );
- }
|
La connexion doit donc ne se faire qu'une fois
* si le client vient de cliquer sur "Se déconnecter"
Code :
- // destruction des cookies du client
- setcookie("username" );
- setcookie("password" );
- session_start();
- $old_user = $valid_user; // pour dire la personne qui vient de se déconnecter
- $result_unreg = session_unregister("valid_user" );
- $result_dest = session_destroy();
- // crée la page HTML
- if (!empty($old_user))
- {
- if ($result_unreg && $result_dest)
- {
- // si la déconnexion a bien réussie
- // creation de la page web
- ...
- }
- }
|
Donc après je me suis dit que sur la page d'accueil, il fallait bien faire une fonction pour tester si le cookie existe chez le client
* index.html
Code :
- test_cookie();
- session_start();
- ... // création de la page d'accueil
|
avec la fonction test_cookie commpe suit :
Code :
- function test_cookie()
- {
- global $valid_user;
- // vérification si la personne est toujours loggé
- if ( !session_is_registered("valid_user" ) )
- {
- if ( $_COOKIE["username"] && $_COOKIE["password"] )
- { $username = $_COOKIE["username"];
- $passwd = $_COOKIE["password"];
- if( login($username, $passwd) ) // vérification si l'utilisateur est dans la DB
- { $valid_user = $username; // si l'utilisateur est dans la DB, on enregistre sa session
- session_register("valid_user" );
- }
- }
- }
- }
|
Voilà les autres parties du code ont l'air de marcher cqr avant je n'avais pas cet gestion du cookie et tout marchait nickel.
Si vous avez des suggestions ...
Cédric