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

neo_baou12 Messages postés 8 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 1 juillet 2009 - 15 mai 2009 à 15:09
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009 - 15 mai 2009 à 17:24
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

cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
15 mai 2009 à 16:45
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)
0
neo_baou12 Messages postés 8 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 1 juillet 2009
15 mai 2009 à 16:58
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ééé
0
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
15 mai 2009 à 17:02
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();
0
neo_baou12 Messages postés 8 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 1 juillet 2009
15 mai 2009 à 17:05
c'est exactement le code que j'utilise !!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
15 mai 2009 à 17:08
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 .
0
neo_baou12 Messages postés 8 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 1 juillet 2009
15 mai 2009 à 17:15
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
0
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
15 mai 2009 à 17:24
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 ...
0
Rejoignez-nous