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 :

Fermer Session NO-PRECEDENT


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut Fermer Session NO-PRECEDENT
    Bonjour

    J'utilises actuellement une authentification (formulaire) via une base de données MYSQL.

    J'ai un bouton "Deconnection" qui cache un script PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php 
     
    session_start();
     
    session_destroy();
     
    header("location:index.php")
    ?>
    Je n'ai pas de message d'erreur , je suis bien redirigé (mais le gros problème , c'set lorsque je fais précédent avec mon navigateur , il m'affiche la page sécurisée alors qu'il devrait me demander une authentification (ex : BRED.fr pour ceux qui sont la bas ).


    Cordialement,

  2. #2
    Invité
    Invité(e)
    Par défaut


    C'est un problème de cache. Le navigateur garde les pages en cache, donc elles sont accessibles via l'historique telles qu'elles avaient été affichées. Par contre, les actions côté serveur ne sont pas accessibles, car pour le serveur, l'authentification n'est plus valide. Par exemple, dans le cas d'un forum, après déconnexion tu peux afficher (via l'historique) la page de réponse à un topic, mais si tu essayes d'envoyer une réponse, le serveur te demandera une authentification.

    Donc 2 solutions, dépendant de ton contexte :
    -> Si tu souhaites que la "déconnexion" désactive seulement des actions côté serveur (cas du forum), je te conseille de garder le cache, c'est toujours pratique et les données ne sont pas critiques
    -> Si tes données sont confidentielles et que tu souhaites désactiver même leur simple affichage, alors supprime le cache du navigateur en passant des ordres tels que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé
    Voilou j'espère avoir répondu à ta question

  3. #3
    Membre du Club Avatar de bbo1991
    Profil pro
    oidfsdfsd
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : oidfsdfsd

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Points : 61
    Points
    61
    Par défaut
    Je rejoins cette discussion similaire à un autre post que j'ai envoyé ici:
    http://www.developpez.net/forums/sho...d.php?t=304134

    Exactement le même problème ce satané "bouton précédente".
    J'ai déjà essayé ça:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <head>  
      <meta http-equiv="Expires" CONTENT="0">  
      <meta http-equiv="Cache-Control" CONTENT="no-cache"> 
      <meta http-equiv="Pragma" CONTENT="no-cache">  
    </head>

    et le code de torvalds17:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé
    ?>
    Etant donné qu'on fait appel à header ce code doit être inséré avant la balise <html> non???
    Mais bon rien ne marche jusqu'ici on arrive toujour à revenir à l'écran précédente, ce qui ne doit pas avoir lieu ce dernier écran pourrait dans mon cas présenter des données jugées confidentielles !!

  4. #4
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Torlvals :
    J'ai fais ce que tu m'as dis. J'ai bien la redirection , mais lorsque je veux faire précédent ben j'accède a la page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
     
    session_start();
     
    session_destroy();
     
    header("location:index.php")
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé
     
    ?>

  5. #5
    Membre du Club Avatar de bbo1991
    Profil pro
    oidfsdfsd
    Inscrit en
    Novembre 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : oidfsdfsd

    Informations forums :
    Inscription : Novembre 2006
    Messages : 100
    Points : 61
    Points
    61
    Par défaut
    J'ai trouvé une solution qui a marché pour moi en lisant la doc du browser Safari d'apple.
    alors on met toujours le code php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    		header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
    		header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); // HTTP/1.1
    		header("Cache-Control: post-check=0, pre-check=0", false);
    		header("Pragma: no-cache"); // HTTP/1.0
    ?>
    Suivi d'un trick à base d'iframe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <iframe style="height:0px;width:0px;visibility:hidden" src="about:blank">
    		Interdire la mise en cache
    </iframe>
    Voilà et ça marche enfin

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Points : 61
    Points
    61
    Par défaut
    salut moi je fais ca et ca fonctionne tres bien !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
     
    session_start(); 
     
    session_unregister("tasession"); 
     
    session_unset(); 
     
    session_destroy(); 
     
    header('Location:index.php') ;
     
    ?>
    voila a+

  7. #7
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Points : 86
    Points
    86
    Par défaut
    Et si tu fais précédent , tu n'accèdes pas a la page sécurisée ?


    J'ai fait un système ou une fentre s'ouvre a l'authentification et j'ai un bouton qui ferme la fenetre...

Discussions similaires

  1. Déconnexion dans JSF (fermer session )
    Par berber5 dans le forum JSF
    Réponses: 2
    Dernier message: 09/04/2012, 10h18
  2. Ne laisser que "fermer session" dans le menu demarrer w2003
    Par olaxius dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 24/02/2011, 16h25
  3. [VB6] Fermer session XP
    Par VARACH dans le forum Vos contributions VB6
    Réponses: 2
    Dernier message: 26/02/2007, 09h41
  4. Option pour samba pour fermer des sessions windows
    Par cybernetique dans le forum Réseau
    Réponses: 7
    Dernier message: 04/10/2005, 11h05
  5. Script pour fermer une session ssh
    Par le y@m's dans le forum Linux
    Réponses: 8
    Dernier message: 19/09/2005, 15h49

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