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 :

session, problème de déconnexion


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut session, problème de déconnexion
    Bonsoir,

    Je rencontre un étrange problème lorsque je veux me déconnecter de mon site...
    1ère fois que je suis confronté à cette étrangeté !?!

    Voici le script tout simple de déconnexion appelé en include :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    if( isset($_SESSION['membre']) )
        // deconnexion
        if( isset($_GET['action']) && $_GET['action'] == 'deconnexion' )
        {
            $pseudo = $_SESSION['membre']['pseudo'];
            setcookie('pseudo', '', time() - 3600);
            setcookie('id', '', time() - 3600);
            setcookie('identificateur', '', time() - 3600);
            $sql = 'UPDATE connexion SET identificateur=NULL WHERE id=' . $_SESSION['membre']['id'];
            $db -> query($sql);
            $_SESSION = array();
            session_destroy();
            $message = 'A bientôt ' . $pseudo . ', vous êtes à présent déconnecté du site.';
        }
        //else echo 'problème !!!';
    else
    {
        $message = 'Vous ne pouvez pas vous déconnecter puisque vous n\'êtes pas ou plus connecté.';
    }
    die(require('./inc/messages.inc.php'));
    ?>
    Le truc bizarre, c'est que je n'ai pas de message d'indiqué, si je fait un echo juste après la condition if( isset($_SESSION['membre']) ), j'entre dans la condition , et donc j'ai une erreur $sql, puisque $_SESSION['membre']['id'] n'existe plus.

    Si je décommente //else echo 'problème !!!';, j'obtiens par contre ce qui devrait-être, c'est à dire l'affichage du message Vous ne pouvez pas vous déconnecter puisque vous n'êtes pas ou plus connecté.

    Je comprends pas du tout ce qui se passe, pour quoi le fait de rajouter un else dans le 1er if, me fait entrer dans le else.
    Et pourquoi un echo dans le 1er if me fait entrer dans la condition, alors que s'il yen a pas, je ne rentre pas dedans car je n'ai pas l'erreur de requête.

    Je suis certains que les variables sessions n'existent plus, puisqu'un print_r($_SESSION) me donne bien array().

    Quelqu'un saurait me fournir une explication à cette réaction ?

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Juste au cas où tu peux tester comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    if( isset($_SESSION['membre']) )
    {
        // deconnexion
        if( isset($_GET['action']) && $_GET['action'] == 'deconnexion' )
        {
            $pseudo = $_SESSION['membre']['pseudo'];
            setcookie('pseudo', '', time() - 3600);
            setcookie('id', '', time() - 3600);
            setcookie('identificateur', '', time() - 3600);
            $sql = 'UPDATE connexion SET identificateur=NULL WHERE id=' . $_SESSION['membre']['id'];
            $db -> query($sql);
            $_SESSION = array();
            session_destroy();
            $message = 'A bientôt ' . $pseudo . ', vous êtes à présent déconnecté du site.';
        }
        //else echo 'problème !!!';
    }
    else
    {
        $message = 'Vous ne pouvez pas vous déconnecter puisque vous n\'êtes pas ou plus connecté.';
    }
    die(require('./inc/messages.inc.php'));
    ?>

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    J'ai rien dit...

    C'était bien ça, erreur grossière de ma part

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/06/2011, 16h29
  2. [MySQL] Problème de déconnexion et de suppréssion de session
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/05/2010, 17h21
  3. problème de déconnexion d'une session
    Par meddy dans le forum Langage
    Réponses: 6
    Dernier message: 20/04/2007, 11h27
  4. [Sessions] Problème avec la fonction session_name()
    Par iomega dans le forum Langage
    Réponses: 5
    Dernier message: 06/10/2005, 15h24
  5. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40

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