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 :
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
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')); ?>, 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 ?
Partager