Bonjour les amis,

Je recontre un probleme avec la fonction session_destroy,
le code fonction bien jusqu'alors. Mais des que je veux me deconnecter ca ne marche pas

Ce que je fais

Voici le code

<?php if($user):?>
    <p>Vous etes connecter en tant que <?= $user->username ?>-
      <a href="logout.php">Se deconnecter</a>
    </p>
    <?php endif ?>

     Pour la deconnexion

     <?php
session_start();
session_destroy();
header('Location:index.php');

Ce que je veux

Aidez-moi a voire plus claire afin de progresser.Merci d'avance.

5 réponses


Flo.S
Réponse acceptée

Bonsoir merciful !

Ton code est particulièrement étrange ? Cependant, après un session_destroy(), il faut vider la variable $_SESSION parce que cette dernière (pour une raison propre à PHP) ne se vide pas automatiquement.

<?php
// Exemple :
session_destroy();
$_SESSION = array(); 
?>

Avec cela, ça devrais fonctionner !

merciful
Auteur
Réponse acceptée

Bonsoir FLo.S, merci beaucoup de ton aide,je vais le tester et de revenir.

merciful
Auteur
Réponse acceptée

cela n'a pas marcher

Flo.S
Réponse acceptée

Bonjour :)

EDIT : J'ai testé chez moi, ton code est censé fonctionné. Comment créer tu ta session ($user) ?

Donne moi plus de détail sur ton problème. Quand tu dis que "ça ne marche pas" c'est trop vague. Je pourrais certainement mieux te répondre en ayant plus d'informations. N'hésite pas à partager plus de code et en détaillant. Ne mélange pas les fichiers dans le même affichage, ça prête à confusion.

Si jamais ça t'intéresse, voici mes 3 fichiers de test (simple manipulation de session et d'objet) :

index.php:

<?php
session_start();

$user = ($_SESSION['user']) ? $_SESSION['user'] : '';

?>
<?php if($user): ?>
    <p>Vous etes connecter en tant que <?= $user->username ?></p>
    <a href="logout.php">Se déconnecter</a>
<?php else: ?>
    <p>Vous n'êtes pas connecté.</p>
    <a href="login.php">Se connecter</a>
<?php endif; ?>

login.php:

<?php
session_start();

if(!isset($_SESSION['user'])){
    $_SESSION['user'] = new StdClass();
    $_SESSION['user']->username = "JohnDoe";

    Header('Location: index.php');
}

logout.php:

<?php
session_start();

session_destroy();
Header('Location: index.php');
merciful
Auteur
Réponse acceptée

Flo.S n'a pas marcher par contre ta marque concernant $_SESSION m'a aider a trouer l'erreur.En fait fait il y avait un $_SESSION qui ne devait pas etre la.Merci beaucoup
Au passage ton pseudo est le dimunitif du nom de mon formateur en graphisme.
Excellente journee