Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/05/2006, 13h14   #1
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Par défaut Effacer une session

Salut,

J'ai un gros problème pour effacer une session.
Sur une page j'ai une liste de fonctions que j'appelle en fonction de la variable op passée par $_GET. J'ai une fonction logout.
Ma page se présente comme ça (avec les test erreurs):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
session_start();
print_r($_SESSION);
 
// Fonctions
 
// Logout
function logout() {
   unset($_SESSION['password']);
   unset($_SESSI0N['admin']);
   unset($_SESSION['cookie']);
   $_SESSION['logout'] = true;
   echo '<META HTTP-EQUIV="refresh" CONTENT="0;URL=account.php">';
   die();
}
 
switch(OP) {
   // fonctions
}
Mais voila qaudn j'appelle la fonction, les sessions sont supprimées SAUF la session admin. J'ai en + cette erreur:

Citation:
Notice: Undefined variable: _SESSI0N in c:\program files\easyphp1-8\www\1\admin\account.php on line 70
Comment ça se fait?
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 13h34   #2
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
ligne 70 c'est quelle ligne ds ton code ?
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 13h47   #3
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
C'est pour
Code :
unset($_SESSI0N['admin']);
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 13h52   #4
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
et le resultat du print_r te donne quoi ?
Mais bon ce n'est qu'un notice.
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 13h52   #5
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Donc la ligne
Code :
   unset($_SESSION['password']);
passe sans problème, mais
Code :
   unset($_SESSI0N['admin']);
qui est juste en dessous ne passe pas !?
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 13h54   #6
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Citation:
Envoyé par stunti
Mais bon ce n'est qu'un notice.

Le problème est que si le tableau super global $_SESSION est unsetté, ça peut avoir de très grâve conséquence sur le fonctionnement des sessions et de la session en cours en particulier ^^...
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 13h58   #7
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Citation:
Envoyé par Swoög
Donc la ligne
Code :
   unset($_SESSION['password']);
passe sans problème, mais
Code :
   unset($_SESSI0N['admin']);
qui est juste en dessous ne passe pas !?
Hé oui ! C'est pour ça que je ne comprends rien. Qua je le change de place il y a toujours erreur sur cette ligne Je crois que c'est bien le genre de problème à régler seul sans le code c'est encore plus dur...
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 13h58   #8
Rédacteur
 
Avatar de BrYs
 
Inscription : octobre 2002
Messages : 2 016
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2002
Messages : 2 016
Points : 2 038
Points : 2 038
Citation:
Envoyé par Swoög
Le problème est que si le tableau super global $_SESSION est unsetté, ça peut avoir de très grâve conséquence sur le fonctionnement des sessions et de la session en cours en particulier ^^...
gné ?
Je pense que si il veut unsetter c'est qu'il y a une bonne raison, le fait de unsetter une des variables en session n'aura pas d'impact sur les sessions.

@Anduriel

Citation:
Envoyé par stunti
et le resultat du print_r te donne quoi ?
BrYs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h01   #9
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Citation:
Envoyé par Anduriel
Qua je le change de place il y a toujours erreur sur cette ligne Je crois que c'est bien le genre de problème à régler seul sans le code c'est encore plus dur...
toujours sur la même ligne ?

ça veut dire que si tu mets
Code :
   unset($_SESSI0N['admin']);
en premier, alors il bug qd mm dessus ?
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h02   #10
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Citation:
Array ( [admin] => Anduriel [logout] => 1 )
Et au départ j'ai

Citation:
Array ( [admin] => Anduriel, [cookie] => 1, [password] = 4854z1f4g58e4g74e5s4f85s69e58f12 )
@Swoög: Oui
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h03   #11
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Apres avoir fait un petit test en local, il apparait que ce notice est un peu faux (PHP4 ou PHP5)
En fait il apparait lorsque la cle du tableau $_SESSION est inconnu.
Ce n'est donc pas le tableau en lui meme qui est inconnu.
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h05   #12
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Mm mais pourquoi la clé serait inconnue alors qu'elle n'est jamais détruite
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h07   #13
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
fait un print_r de session dans ta fonction logout avant de commencer a unseter.

Histoire d'etre sure d'avoir les info que tu penses avoir a ce moment la.
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h11   #14
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Citation:
Envoyé par stunti
Apres avoir fait un petit test en local, il apparait que ce notice est un peu faux (PHP4 ou PHP5)
En fait il apparait lorsque la cle du tableau $_SESSION est inconnu.
Ce n'est donc pas le tableau en lui meme qui est inconnu.
Perso, je développe mes scripts PHP avec E_ALL et E_STRICT, et je n'ai jamais eu d'erreur de la part d'unset, excepté quand on essaie de supprimer un indice dans un tableau qui n'existe pas (le tableau, pas l'indice en lui même)

mais supprimer une variable qui n'existe pas ne m'a jamais renvoyé d'erreur...
ça serait très surprenant quand même...

Anduriel : Essaie de retapper la ligne à la main (des fois, ça marche, me demande pas pourquoi XD)

sinon, mets un truc du style
Code :
if(isset($_SESSION['admin'])) unset($_SESSION['admin']);
mais ça serait super étonant qd mm...
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h12   #15
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Si j'en fait un avant et un après j'ai ça:

Citation:
Array ( [cookie] => [admin] => Anduriel [password] => e1322b2b734633386c48df08b39b475a )
Notice: Undefined variable: _SESSI0N in c:\program files\easyphp1-8\www\1\admin\account.php on line 73
Array ( [admin] => Anduriel [logout] => 1 )
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h13   #16
Futur Membre du Club
 
Homme
Consultant informatique
Inscription : février 2006
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant informatique

Informations forums :
Inscription : février 2006
Messages : 14
Points : 16
Points : 16
Envoyer un message via MSN à CrashAngel
Bonjour à tous,
Moi pour me déconnecter de mon serveur j'éffectue les actions suivantes:
Code :
1
2
3
4
5
6
 
session_unregister("Login_Perso"); 
 
session_unset(); 
 
session_destroy();
Bon j'espére que sa ta mis sur une piste.
CrashAngel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h14   #17
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Citation:
Envoyé par Swoög
Anduriel : Essaie de retapper la ligne à la main (des fois, ça marche, me demande pas pourquoi XD


Ca fonctionne
Alors là
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h15   #18
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
à cela près que les fonctions session_unregister et session_unset sont dépréciées... et qu'utiliser session_unset après session_unregister rend session_unregister totalement inutile...
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h15   #19
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
Citation:
Envoyé par Anduriel


Ca fonctionne
Alors là

Et voilà encore un des nombreux mystère de notre Univers qui ne sera JAMAIS percé
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2006, 14h18   #20
Membre chevronné
 
Avatar de stunti
 
Inscription : mai 2006
Messages : 521
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : mai 2006
Messages : 521
Points : 602
Points : 602
Je viens de comprendre.

Tu as mis un 0 (zero) dans
Code :
unset($_SESSI0N['admin']);
stunti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h48.


 
 
 
 
Partenaires

Hébergement Web