Supprimer cookie et session php


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Supprimer cookie et session php

Message le Dim Jan 20, 2008 23:25

Bonjours, je ne comprend pas pourquoi, mais je n'arrive pas à éffacer des cookies et sessions php. Pourtant mon code semble correct.

function logout() {

session_destroy();

//Destruction du cookie de connection forum/jeu
setcookie("game");

header("Location: login.php?do=login");
die();

}

Lorsque je clique sur quitter je viens à l'accueil (/game/login.php?do=logout)

Mais si je tape de nouveau /game/ et je reloger, meme en réactualisant, et j'ai remarqué que quand je quitte, dans firefox, j'ai toujours le cookie game et la session ouverte.

Avez vous une idée de ce qu'il faut faire?

Merci


david96
WRInaute passionné
WRInaute passionné
 
Messages: 1430
Inscription: 28 Aoû 2005

Message le Lun Jan 21, 2008 0:42

Tentes avec la variable superglobal $_SESSION
Code: Tout sélectionner
unset($_SESSION["game"]);
session_destroy();
header("Location: login.php?do=login");
exit();


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3885
Inscription: 16 Nov 2004

Message le Lun Jan 21, 2008 0:49

faut la redemarrer pour pouvoir l'effacer :

Code: Tout sélectionner
<?php session_start(); ?>


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Message le Lun Jan 21, 2008 20:50

Pour quoi $_SESSION["game"] ? C'est le cookie qui porte le nom game pas la session. Non?

Mais ceci ne fonctionne pas:

function logout() {

unset($_SESSION["game"]);
session_destroy();


//Destruction du cookie de connection forum/jeu

setcookie("game");

header("Location: index.php");
die();

}

Faut fermer le navigateur pour que la session se ferme.

C'est bizard chez free ca marche parfaitement le code que j'avais supprimait bien la session et le cookie avec la fonction logout, mais sur OVH ca ne fait rien.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3885
Inscription: 16 Nov 2004

Message le Lun Jan 21, 2008 22:32

OVH ou free c'est du pareil au meme.

Code: Tout sélectionner
function logout() {
if(isset($_SESSION['game'])) unset($_SESSION['game']);
if(isset($_SESSION['exemple'])) unset($_SESSION['exemple']);
header("Location: login.php?do=login");
exit();
}

session_start();
logout();


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Message le Lun Jan 21, 2008 22:52

KOogar je t'ai envoyer un mp pour que tu vois le problème


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3885
Inscription: 16 Nov 2004

Message le Lun Jan 21, 2008 23:10

j'ai regarder, je ferais comme ceci:

ta deco se fait par ce lien:
-http://rpgillusion.forum-tortueland.com/game/login.php?do=logout

dans ton fichier login.php ajoute ce code tout en haut

Code: Tout sélectionner
session_start();

if(isset($_GET['do']) && $_GET['do'] == 'logout') {
if(isset($_SESSION['game'])) {
unset($_SESSION['game']);
header("Location: index.php");
exit;
}}


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Message le Lun Jan 21, 2008 23:18

Oui ca fonctionne, mais c'est impossible a faire uniquement via la fonction logout?

Normalement le header devrait renvoyer sur ?do=login , la ca reste sur logout


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3885
Inscription: 16 Nov 2004

Message le Lun Jan 21, 2008 23:30

j'ai regardé, la déco se fait et je termine sur cette url avec FoFox
-http://rpgillusion.forum-tortueland.com/game/login.php?do=login

je n'ai pas de logout dans l'url, peut-etre as tu changé quelque chose entre temps...


sff
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 336
Inscription: 2 Fév 2005

Message le Lun Jan 21, 2008 23:57

Non j'ai rajouté ta ligne en entete, mais comme le header fait ensuite appel a index.php, comme est plus logé on est redirigé sur ?do=login

Code de index.php

if ($userrow == null) {
if (isset($_GET["do"])) {
if ($_GET["do"] == "verify") { header("Location: users.php?do=verify"); die(); }
if ($_GET["do"] == "flash") { flash(); die(); }
}
header("Location: login.php?do=login"); die();
}

Donc pourquoi dans la fonction logout le header ne redige pas vers ?do=login, ca reste sur ?do=logout?

(si on met pas ton code en entete)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3885
Inscription: 16 Nov 2004

Message le Mar Jan 22, 2008 0:18

fait la redirection directement au moment de la déco

Code: Tout sélectionner
session_start();

if(isset($_GET['do']) && $_GET['do'] == 'logout') {
if(isset($_SESSION['game'])) {
unset($_SESSION['game']);
header("Location: login.php?do=login");
exit;
}}


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité