MarvinLeRouge Posté 23 Novembre 2004 Posté 23 Novembre 2004 Salut, J'ai un pb avec une gestion de session : Dans toutes les pages php, j'ai un include de 2 fichiers : - 1 au début contenant la connexion à ma base de données, ainsi qu'un session_start - 1 au milieu qui vérifie si l'utilisateur est loggé et fait un affichage ou un autre en fonction du résultat du test $idClient = false;$login = false;extract ($_POST);if ($provenance){ if ($provenance == "formLogin") { $idClient = getIdClient ($login, $password); } elseif ($provenance == "formLogout") { logout (); }}else{ $idClient = loggedIn (); if ($idClient) { $login = $_SESSION ["login"]; }}if ($idClient){ login ($idClient, $login); showInfosLogged ($idClient);}else{ showFormLogin ();} Lorsque l'internaute se délogge, l'affichage montre bien le formulaire d'identification. Pourtant, dès que je change de page, il est de nouveau considéré comme loggé. Il doit y avoir une bourde dans le raisonnement. Please help.
Anonymus Posté 23 Novembre 2004 Posté 23 Novembre 2004 Bonjour, Comment se passe le de-loggin ? Autrement dit, comment fais tu pour que la personne ne soit plus loggée, authentifiée ? Anonymus
MarvinLeRouge Posté 23 Novembre 2004 Auteur Posté 23 Novembre 2004 function logout (){ $_SESSION ["idClient"] = false; $_SESSION ["login"] = false; $_SESSION = array (); session_destroy ();}
Anonymus Posté 23 Novembre 2004 Posté 23 Novembre 2004 if ($idClient) Ceci peut être considéré comme : Si la variable $idClient existe. En fonction du register_globals, $idClient peut renvoyer une valeur dans tous les cas, même si elle n'existe pas. Elle est automatiquement créée quand tu fais appel à elle. Donc, ce morceau n'est pas 'fiable'. session_destroy() : Cette fonction ne détruit pas les variables globales associées avec la session, de même, elle ne détruit pas le cookie de session. Ainsi, il ne faut pas se fier au session_destroy. Je te préconiserais plutot l'enregistrement de l'ensemble des variables de session avec des valeurs vides : $_SESSION['idClient'] = ""; puis le renvoi vers une page d'information, grace à un header : Vous êtes déconnecté Ensuite, tu testes avec le bouton "précédent". Anonymus.
MarvinLeRouge Posté 24 Novembre 2004 Auteur Posté 24 Novembre 2004 En me basant sur tes conseils, j'ai fait une page logout.php qui est la cible de mon formulaire de logout : le formulaire renvoie à cette page, qui détruit la session de la façon que j'avais indiquée précédemment (vidage du contenu des variables sessions, vidage du tableau session, puis session_destroy), puis renvoie au referer. Ca marche nickel. Merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant