Detruire une session

Résolu
lolerki Messages postés 606 Date d'inscription   Statut Membre Dernière intervention   -  
lolerki Messages postés 606 Date d'inscription   Statut Membre Dernière intervention   -
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

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
lolerki Messages postés 606 Date d'inscription   Statut Membre Dernière intervention   102
 
Bonjour,

J'avais trouver que
session_unset();


Détruisez tout, du moins c'est ce que j'ai compris.
0
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
lolerki Messages postés 606 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
lolerki Messages postés 606 Date d'inscription   Statut Membre Dernière intervention   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
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
lolerki Messages postés 606 Date d'inscription   Statut Membre Dernière intervention   102
 
J'ai réussi, merci de ton n'aide ! J'avais négliger certains paramètres...
0