Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/09/2006, 21h06   #1
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
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 :
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 ?
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2006, 21h34   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Juste au cas où tu peux tester comme ceci :
Code :
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'));
?>
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2006, 22h50   #3
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
J'ai rien dit...

C'était bien ça, erreur grossière de ma part
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h44.


 
 
 
 
Partenaires

Hébergement Web