IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Déconnection et bouton "retour"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut Déconnection et bouton "retour"
    Bonjour à tous,

    Je fais actuellement un site avec authentification.

    Le fonctionnement de l'authentification (username/password) fonctionne correctement.

    La déconnection ne marche que partiellement... En effet après mettre déconnecté si je clique sur le bouton "Derniere page visitée" de mon navigateur, je retrouve une page propre à mon utilisateur...

    J'ai essayé pas mal de trucs, à coups de session_destroy, de headers et de if mais je n'ai pas trouvé a solution pour contrer ce bouton.

    HELP ME PLEASE ;-)

  2. #2
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 111
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION = array()
    session_unset();
    Je sais plus trop la syntaxe mais il ne devrais pas avoir de soucis.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 112
    Par défaut
    C'est tout à fait normal non ?
    c'est enregistré dans tes historiques !

    il se peut que je n'aie pas saisi la question...

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Citation Envoyé par Soull Voir le message
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION = array()
    session_unset();
    Je sais plus trop la syntaxe mais il ne devrais pas avoir de soucis.
    J'ai testé cette fonction lorsque je me déconnecte mais malheureusement elle n'a pas le résultat attendu puisque lorsque je fais un refresh de la page précédente, je recharge des éléments dans ma session et par conséquent je ne peux pas faire un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!isset($_SESSION))
    	{
    		header('Location: ../index.php');
    		exit();
    	}

  5. #5
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Dans ce cas c'est pas un soucis de cache mais de ton code qui ne prend aucunement en compte les sessions...
    Pour savoir si une personne est connectée on ne vérifie pas que le tableau $_SESSION existe, on vérifie l'un de ses index !
    Car avec session_start() $_SESSION existe toujours...

  6. #6
    Membre régulier
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Par défaut
    Merci Transgohan de t'intéresser à mon problème ;-)

    Je te détaille mon code :

    - L'utilisateur se connecte via "index.php". Le contrôleur de l'appli redirige vers un fichier "testConnection.php" qui vérifie les informations envoyées par POST et si ces informations "username" et "password" sont correctes, les informations propres à la session sont renseignées. Le contrôleur récupère ensuite la main et envoie la page "bienvenue.php" qui contient un lien "Déconnexion".

    - L'utilisateur clique sur "Déconnexion", le contrôleur récupère l'URL et redirige vers un fichier "deconnexion.php" où je vide mes données propres à la session en cours et je réaffiche la page "index.php"

    Mon problème est lorsque je clique sur le bouton "retour" de mon navigateur, les infos de mon ancien POST sont envoyées et le chemin suivi par l'appli est le même que lorsque je me connecte directement. Donc les infos de session sont rechargées et je suis à nouveau connecté.

    Comment faire pour lorsque je clique sur ce bouton "retour", le contrôleur ne passe pas par "testConnection" ?

  7. #7
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    On ne fait jamais un bouton retour en cas de déconnexion...
    On déconnecte l'utilisateur et on le redirige vers la page d'accueil ou le formulaire de connexion via la fonction header() par exemple.

  8. #8
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Citation Envoyé par dvauris Voir le message
    La déconnection ne marche que partiellement... En effet après mettre déconnecté si je clique sur le bouton "Derniere page visitée" de mon navigateur, je retrouve une page propre à mon utilisateur...
    Cela s'appelle tout simplement le cache du navigateur...
    Il n'affiche pas la page directement du serveur mais affiche la page que lui a mise en cache lorsque l'utilisateur l'a visité.
    Tu ne pourras donc rien faire contre ça.

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo