probleme de session_destroy

Ce sujet est résolu
209660
,

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éponse

27731
,

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 !

209660
,

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

209660
,

cela n'a pas marcher

27731
,

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');
209660
,

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