Detruire une session

Résolu
lolerki Messages postés 675 Statut Membre -  
lolerki Messages postés 675 Statut Membre -
Bonjour,
Je viens vers vous, car après de multiple recherche sur internet je ne trouve pas la solution a mon problème.
Je n'arrive pas a déconnecter un utilisateur une fois qu'il est connecter, je suis bien rediriger, mais la session est toujours actif.

page logout.php

session_start();
if(isset($_SESSION['id'])){
$_SESSION = array();
session_unset();
session_destroy();
header('Location: index.php');
exit();
}
else{
header('Location: index.php');
}


page index.php

session_start();

if(isset($_SESSION['id']))
{
 setcookie('pseudo', $_SESSION['pseudo'], time() + 24*3600, null, null, false, true);
 setcookie('id', $_SESSION['id'], time() + 24*3600, null, null, false, true);
}
elseif(isset($_COOKIE['id']))
{
 $_SESSION['pseudo'] = $_COOKIE['pseudo'];
 $_SESSION['id'] = $_COOKIE['id'];
}


Merci de votre aide.

8 réponses

  1. Utilisateur anonyme
     
    Bonjour

    elseif(isset($_COOKIE['id'])) ...


    As-tu fait quelque chose pour détruire le cookie 'id' ? Parce que si tu ne fais rien, la ligne ci-dessus recrée la session à chaque fois.
    0
  2. lolerki Messages postés 675 Statut Membre 102
     
    Bonjour,

    J'avais trouver que
    session_unset();


    Détruisez tout, du moins c'est ce que j'ai compris.
    0
  3. Utilisateur anonyme
     
    Les sessions sont une chose, les cookies en sont une autre. Tu utilises les deux.
    Quand tu détruis la session, tu ne détruis pas "tout" comme tu écris, tu détruis seulement les variables de session.
    Dans index.php, si tu ne trouves pas la variable de session 'id', tu regardes les cookies et si tu les trouves, tu recrées les variables de session correspondantes. Il faut détruire aussi les cookies si tu ne veux pas qu'ils recréent automatiquement la session.
    D'ailleurs, à quoi servent ces cookies, sinon justement à rétablir automatiquement la session ?
    0
  4. lolerki Messages postés 675 Statut Membre 102
     
    Il me servent aussi à maintenir la session ouverte. Je me fessais déconnecter trop vite.

    PS : je fais quelque recherche pour détruire l'id du cookie, mais actuellement rien ne marche..
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    Si tu avais besoin de cookies pour maintenir ta session ouverte, c'est que tu gérais mal les sessions côté PHP. Normalement, on n'a rien d'autre à faire que d'avoir un "session_start" au début de chaque page php pour entretenir une session : si tu as eu besoin de cookies, c'est qu'il y a quelque chose que tu fais mal par ailleurs.
    Tu as mis en place des cookies pour maintenir ta session, ils jouent leur rôle. Il ne faut pas t'étonner qu'ils t'empêchent de fermer la session

    je fais quelque recherche pour détruire l'id du cookie Ça veut dire quoi, "détruire l'id du cookie" ? Moi j'ai parlé de détruire le cookie id, parce que tu as appelé un de tes cookies "id". Pour le détruire, il suffit de le recréer avec une date de validité dépassée.
    0
  7. lolerki Messages postés 675 Statut Membre 102
     
    J'ai bien un
     session start(); 
    dans quelqu'une des mes pages. Je me suis mal exprimé, je quitter est revenait souvent sur le site et me reconnecter devenait "barbant" d'où les cookies. Puis après test, même en essayant de le détruire, cela ne me déconnecte pas.
    0
  8. Utilisateur anonyme
     
    Tu as mis en place des cookies pour te reconnecter automatiquement, c'est bien ça ?
    Donc c'est normal que tu te reconnectes quand tu détruis ta session PHP : ton code est fait exprès pour ça.
    Si tu ne veux plus te connecter, il faut donc détruire ces cookies. Qu'as-tu fait pour les détruire ?
    0
  9. lolerki Messages postés 675 Statut Membre 102
     
    J'ai réussi, merci de ton n'aide ! J'avais négliger certains paramètres...
    0