Eviter le renvoi de données saisies lors d'un raffraichissement de la page

Signaler
Messages postés
8
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
1 juillet 2009
-
Messages postés
232
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
31 juillet 2009
-
Bonjour,

Voici mon problème:
- j'ai une page de connexion ou l'utilisateur saisi sont login/password;
- après connexion si l'utilisateur se déconnecte il est redirigé vers la page de connexion;
- Pb: si je fait "précédant" le navigateur renvoi le login/password et l'utilisateur se retrouve ainsi reconnecté;

PS: j'utilise dans le header :no-cache,no-store,must-revalidate.

7 réponses

Messages postés
232
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
31 juillet 2009

Si tu fais en php, tu devrai stocké tes variables d'identification dans des variables de sessions, et lors de la déconnexion du détruit des variables de sessions. Cela implique qu'au début de chacune de tes pages tu tests tes variables de sesssion (ex une fois qu'il est identifié correctement, tu cré une nouvelle variable de session genre $_SESSION['connected'] = true et tu y passe à false lors de la déconnexion)
Messages postés
8
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
1 juillet 2009

c'est à peu prés ce que je fais, mais le probleme c'est que quand on fait précédant renvoi le login/password de nouveau, c'est comme si l'utilisateur voulait à nouveau se reconnecter à son compte, donc une nouvelle session est crééé
Messages postés
232
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
31 juillet 2009

Non, c'est que tu ne dois pas détruire correctement tes sessions ... Voila un bout de code qui te permet de les détruire entièrement :

// Détruit toutes les variables de session
            $_SESSION = array();
           
            // Si vous voulez détruire complètement la session, effacez également
            // le cookie de session.
            // Note : cela détruira la session et pas seulement les données de session !
            if (isset($_COOKIE[session_name()])) {
                setcookie(session_name(), '', time()-42000, '/');
            }
           
            // Finalement, on détruit la session.
            session_destroy();
Messages postés
8
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
1 juillet 2009

c'est exactement le code que j'utilise !!!!
Messages postés
232
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
31 juillet 2009

Lol et bien tu ne dois pas faire le test, sur tes pages, qui fait que si le bonhomme n'est pas connecté et bien tu fais un header("Location: identification.php"). Je l'ai fait plein de fois et je te garantie qu'une fois la session détruite, elle n'est pas recréé lors d'un clic sur précédent .
Messages postés
8
Date d'inscription
samedi 25 décembre 2004
Statut
Membre
Dernière intervention
1 juillet 2009

un peu plus de détail:

- j'ai une seule page "action.php" qui fait l'authentification, les autres actions et le déconnexion
- au debut de cette page j'ai mis session_start();
- quand on clique sur précédant on ne relance pas l'ancienne session, c'est une nouvelle ouverture de session, j'ai un log des ouvertures de sessions et quand on reload j'ai une nouvelle entrée
Messages postés
232
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
31 juillet 2009

Et bien oui c'est normal si tout est géré sur la même page :S .. J'imagine que tu as en premier ta destruction de session, puis création de session ... SI tout est sur la même page, c'est pas top top ... Ce que je te conseil c'est de faire la connexion et la déconexion sur la même page mais tes actions dans une autre pages ...

Lors du clic sur déconnexion sur envoi sur identification.php?action=logout et tu test que $_GET['action'] == "logout", si c'est le cas tu destroy ta session ...