IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Effacer une session


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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:

    Notice: Undefined variable: _SESSI0N in c:\program files\easyphp1-8\www\1\admin\account.php on line 70
    Comment ça se fait?

  2. #2
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    ligne 70 c'est quelle ligne ds ton code ?

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    C'est pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSI0N['admin']);

  4. #4
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    et le resultat du print_r te donne quoi ?
    Mais bon ce n'est qu'un notice.

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Donc la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       unset($_SESSION['password']);
    passe sans problème, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       unset($_SESSI0N['admin']);
    qui est juste en dessous ne passe pas !?

  6. #6
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    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 ^^...

  7. #7
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Citation Envoyé par Swoög
    Donc la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       unset($_SESSION['password']);
    passe sans problème, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       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...

  8. #8
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    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 ?

  9. #9
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
       unset($_SESSI0N['admin']);
    en premier, alors il bug qd mm dessus ?

  10. #10
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Array ( [admin] => Anduriel [logout] => 1 )
    Et au départ j'ai

    Array ( [admin] => Anduriel, [cookie] => 1, [password] = 4854z1f4g58e4g74e5s4f85s69e58f12 )
    @Swoög: Oui

  11. #11
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    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.

  12. #12
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Mm mais pourquoi la clé serait inconnue alors qu'elle n'est jamais détruite

  13. #13
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    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.

  14. #14
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_SESSION['admin'])) unset($_SESSION['admin']);
    mais ça serait super étonant qd mm...

  15. #15
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Si j'en fait un avant et un après j'ai ça:

    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 )

  16. #16
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 53
    Points
    53
    Par défaut
    Bonjour à tous,
    Moi pour me déconnecter de mon serveur j'éffectue les actions suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  17. #17
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    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à

  18. #18
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    à 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...

  19. #19
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par Anduriel


    Ca fonctionne
    Alors là

    Et voilà encore un des nombreux mystère de notre Univers qui ne sera JAMAIS percé

  20. #20
    Membre confirmé Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Points : 594
    Points
    594
    Par défaut
    Je viens de comprendre.

    Tu as mis un 0 (zero) dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSI0N['admin']);

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. effacer une entrée de session (tableau)
    Par artotal dans le forum Langage
    Réponses: 1
    Dernier message: 16/04/2008, 18h25
  2. Effacer une entrée cookie Session
    Par mulbek dans le forum ASP
    Réponses: 1
    Dernier message: 02/08/2007, 05h21
  3. Réponses: 1
    Dernier message: 05/12/2006, 09h31
  4. Comment effacer un tableau d'une session ?
    Par aclertant dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2006, 17h36
  5. Réponses: 6
    Dernier message: 11/05/2006, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo