Les SESSIONS

Résolu
Bonjour,

Je suis à la recherche pour savoir comment on peux supprimer une SESSION lorsqu'on se déconnecte avec un lien "déconnexion".
Ma SESSION par défault expire lorsque je ferme le navigateur mais cela ne me convient pas.
Par contre j'ai créé des COOKIES et ça les détruits bien mais pas pour les SESSIONS.
Pouvez-vous m'aider s'ils vous plait.
Un grand merci pour votre aide.

14 réponses

Résumé de la discussion

La discussion porte sur la suppression d'une session PHP lors de la déconnexion, car la session par défaut expire lorsque le navigateur est fermé et les cookies utilisés ne détruisent pas la session en cours. Plusieurs répondants évoquent la différence entre variable de session et cookie et proposent des méthodes comme session_destroy(), vider $_SESSION, puis détruire le cookie de session avec setcookie(session_name(), '', time(), '/'); En pratique, la déconnexion passe par l’initiation d’une nouvelle session après destruction, rendant l’identifiant inactif et garantissant la déconnexion, tout en veillant à supprimer le cookie PHPSESSID lorsque nécessaire.

Bobot (l’IA à votre service)
  1. Pour détruire le cookie de session :

    setcookie(session_name(), '', time(), '/');

    Définit un cookie du nom de ta session qui doit être détruit immédiatement. Ce qui supprime ton cookie de session...
    1. Bonjour

      Merci de ta réponse c'est sympa.
      Malheureusement je n'arrive pas à supprimer ma SESSION lorsque je fait déconnexion.
      Elle se supprime uniquement lorsque je ferme mon navigateur.
      Je n'y comprends plus rien.
      Si tu as encore des infos.
      J'ai fait pas mal de truc mais rien n'y fait.
      Merci
      1. Salut,

        voici mon code qui détruit une session :

        Voici le lien qui m'amène à un script qui déconnecte l'utilisateur :
        <a href="deconnexion.php">Deconnexion</a>

        le fichier deconnexion.php :

        session_start();
        // destruction session
        $_SESSION = array();
        session_destroy();

        // redirection
        header('location:../index.php');
        1. Bonjour

          J'ai bien mis ton code et le lien comme toi mais lorsque je clique sur le lien
          la SESSION est toujours présente il faut que je ferme le navigateur pour la détruire et ça je ne veux pas.
          Merci pour votre aide
          1. Fait un print_r($_SESSION) et un echo session_id() avant et après la tentative de déconnexion avec mon code.
          2. Comment sais tu que quelqu'un est connecté ? En d'autres où stockes tu l'identité de celui qui est connecté ?
        2. Bonjour

          En fait je suis en développement et je regarde dans mon navigateur.

          en fait j'ai 1 page avec mon formulaire pour connexion
          1 page pour toute la vérif et les teste des variable
          et 1 page de déconnexion

          et je voudrais vraiment que lorsqu'on se déconnecte ça me supprime le COOKIE"PHPSESSID"

          Merci de tout coeur
          1. session destroy ferme la session, il ne détruit en aucun cas le cookie !!!
        3. Non pas encore je cherche, je cherche...

          Merci
          1. Mais tu cherches quoi ?? ^^'
          2. Oui c'est vrai tu cherches?
            Si malgré tout ce qu'on t'as donné ce n'est pas encore clair, demande nous plus de précision et on essayera de t'aider d'avantage.
          3. Le setcookie marche très bien pour la suppression du cookie de session j'ai essayé sur mon projet en cours, no soucis...
          4. Il cherche il cherche.. mdr troubadour, t'es super !
          5. Faut pas rigoler. On passe tous par là à un moment...
        4. c'est sympa de partager mon soucis.

          je dois passer à côté de quelque chose mais quoi?
          c'est un mystère.

          A+
          1. Mdr...

            Tu ne voudrais pas partager un peu ton questionnement ^^ ?
          2. Et/ou nous mettre tout ou partie de ton code afin qu'on puisse éventuellement trouver, si besoin est, ce qui te fait bloquer.
            En tout cas, il nous faut d'avantage de précision si tu veux qu'on t'aider à avancer.
        5. Bonjour

          Voilà je recommence cette semaine avec toujours mon problème de SESSION.
          En fait PHP génére une SESSION à l'ouverture de mon site qui est PHPSESSID.

          Je voudrais la supprimer lorsque les utilisateurs se déconnectent via un lien "déconnexion".

          Pour me déconnecter et supprimer mon COOKIE que j'ai créé cela fonctionne mais pas PHPSESSID.
          <?php if ($_COOKIE['COOKIE_ESC']){setcookie('COOKIE_ESC', '', time() - 1, null, null, false, false);}?>   
          

          Merci beaucoup de votre aide
          1. Personnellement, il me donne un sessid différent quand je détruis le cookie et que je refasse un session_start par la suite...
        6. Bonjour

          Merci tu peux me donner ton code pour voir comment tu a réussis à détruire PHPSESSID.

          Chez moi ça ne veux pas le faire.

          Merci beaucoup
          1. session_start();

            $_SESSION = array();
            session_destroy();
            setcookie(session_name(), '', time(), '/');
            header('location:../index.php');

            Un session_id() avant et un après un nouveau session_start() me donne un id différent...
            1. Bonjour

              Nickel ça fonctionne et grand merci 10 jours que je suis dessus.
              OUF..............
              Merci
              1. De rien ;)