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 :

[Cookies] Destruction puis reconstruction de session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut [Cookies] Destruction puis reconstruction de session
    bonsoir,

    je cherche à détruire une session (associée à un cookie auto) et à la recréer dans la foulée (la même page)
    je la détruit si bien qu'il m'est impossible de recréer quoi que ce soit (dans la mm page ou mm une page différente)

    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
     
    session_start();
    if (isset($_COOKIE[session_name()])) {
        setcookie(session_name());
    	unset($_COOKIE[session_name()]);
    }
    $_SESSION = array();
    session_destroy();
    session_start();
    session_regenerate_id();
    session_name(session_id());
    $_SESSION['user']=array();
    $_SESSION['user']['truc']= "machin";
    setcookie(session_name(), session_name());
     
    echo " apres cookie: ".$_COOKIE[session_name()];
    j'aimerais dégager la session existante et le cookie associé sur la bécane client
    et recréer une nouvelle sesssion avec son nouveau cookie (ou obtenir des id totalement différentes pour la 2e session et son cookie)

    avec ce code , je dégage bien la session mais non seulement, le code recréant la session n'est pas fonctionnel mais en accédant à d'autres pages où j'ai des tests d'existance et de création si non existance de la session, la session n'est jamais créée (les echo donnent des valeurs vides "")
    l'echo de fin de code ci dessus est vide lui aussi

    comment arriver à réaliser ce que je souhaite faire ?
    je vous remercie d'avance de votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Par défaut
    as tu essayé en regénérant la session avec session_regenerate_id() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    session_start();
     
    $old_sessionid = session_id();
     
    session_regenerate_id();
     
    $new_sessionid = session_id();
     
    echo "Ancienne session: $old_sessionid<br />";
    echo "Nouvelle session: $new_sessionid<br />";
     
    print_r($_SESSION);
    ?>
    L'exemple de code ci-dessus est tiré du manuel de PHP.

    @++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut
    j'avais dejà un session_regenerate_id(); ci dessus mais j'ai simplifié le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start();
    session_regenerate_id(true);
    session_name(session_id());
    $_SESSION['user']=array();
    $_SESSION['user']['truc']= "machin";
    c'est pas mieux (je garde la session et ses valeurs malgré la destruction des anciennes valeurs et la mise à 0 du tablo user, impossible d'obtenir un nouvel id)

    dois je regarder qqchose dans le phpinfo qui ferait que ces sessions soient engluantes ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut
    je deviens chèvre

    que je fasse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    session_start();
    $old_sessionid = session_id();
    if (isset($_COOKIE[session_name()])) {
    	setcookie(session_name());
    	unset($_COOKIE[session_name()]);
    }
    $_SESSION = array();
    session_regenerate_id(true);
    session_name(session_id());
    $_SESSION['user']=array();
    $_SESSION['user']['truc']= "machin";
    setcookie(session_name(), session_id());
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    session_start();
    $old_sessionid = session_id();
    if (isset($_COOKIE[session_name()])) {
    	setcookie(session_name());
    	unset($_COOKIE[session_name()]);
    }
    $_SESSION = array();
    session_regenerate_id(true);
    session_name(session_id());
    $_SESSION['user']=array();
    $_SESSION['user']['truc']= "machin";
    ça donne :
    Ancienne session: b2818e934857bdb26f8ec2fe9dde6e0c
    Nouvelle session: 32ca9680634d50b859cc3eeb860f2262

    sauf que lorsque je change de page la session redevient l'ancienne session

    comment faire ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Par défaut
    Je me suis livré au test suivant :

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
        session_start();
        $old_sessionid = session_id();
           session_regenerate_id();
        $new_sessionid = session_id();
        echo "<html><head></head><body>";
        echo "Ancienne session: $old_sessionid<br />";
        echo "Nouvelle session: $new_sessionid<br />";
    ?>
    <br>
    <a href="page2.php">page2.php</a>
    </body>
    </html>
    page2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
        session_start();
        $sessionid = session_id();
        echo "<html><head></head><body>";
        echo "Session en cours sur la page 2 : $sessionid<br />";
    ?>
    <br>
    <a href="index.php">index.php</a>
    </body>
    </html>
    je mets tout ça sur le serveur !
    et ça fonctionne trés bien !
    tu peux tester ici

    Le problème vient donc d'ailleurs .... Et pas de la regeneration de la session.
    (envoi moi un MP quand tu sera passé par là, pour que j'enlève le test du serveur.)

    @++
    pascal

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Par défaut
    merci Pascal,
    en effet ça fonctionne très bien sur ton serveur
    est ce que cela pourrais etre du à un hébergeur ? (ovh pour pas le citer ??)
    je n'avais pas du tout ce pb en local

    dans l'urgence, j'ai contourné le probleme n'ayant pas pas réussi à le résoudre... :C

Discussions similaires

  1. [Cookies] Destruction de session et requete sql
    Par webcap dans le forum Langage
    Réponses: 2
    Dernier message: 26/01/2009, 12h14
  2. [Cookies] Destruction de session
    Par helpcomm dans le forum Langage
    Réponses: 9
    Dernier message: 06/03/2008, 04h59
  3. Réponses: 8
    Dernier message: 01/08/2007, 18h00
  4. Réponses: 26
    Dernier message: 25/11/2005, 17h12
  5. [struts] Destruction bean formulaire de session
    Par k4eve dans le forum Struts 1
    Réponses: 4
    Dernier message: 06/05/2004, 18h34

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