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 :

Détruire et recréer une session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut Détruire et recréer une session
    Salut voici le code simplifié de mon problème :

    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();
    $order = new Order(session_id());
    $order->sqlSelect(); // récupération d'infos dans une BDD
    if(isset($_POST['send']))	{
    	// Envoi de la commande par mail
    	$order->send();
    	session_regenerate_id();
    	exit();
    }
     
    ?>
    En fait je crée un objet commande avec l'identifiant de session, puis je récupère des infos dans une BDD en fonction de cet identifiant. Le but est de recréer une nouvelle session quand le mail de la commande est envoyé. Ainsi une nouvelle commande est générée avec un nouvel id et l'utilisateur ne peut pas envoyer plusieurs fois l'ancienne commande en rafraichissant la page. Ce code fonctionne très bien en local, l'id de session change bien au rechargement de la page mais il ne fonctionne pas sur mon serveur. D'où ces 2 petites questions

    - quelqu'un aurait-il une idée du paramètre de config qui peut jouer là-dessus ?
    - quelqu'un connait-il un autre moyen de recréer une session (donc avec un nouveau SID) ?

    Je précise que la fonction session_regenerate_id() existe bien sur mon serveur (4.4.2)
    Merci d'avance pour votre aide et a+

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Et un appel de session_destroy() puis session_start() ? D'après un test récent que j'ai pu effectué, il recrée une nouvelle session après avoir détuire la précédente.


    Julp.

  3. #3
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    il recrée une session mais avec le même id ^^.

  4. #4
    Membre confirmé Avatar de kodokan
    Profil pro
    Lycéen
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    Salut

    Et en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    unset($_SESSION);
    session_destroy();
    ?>
    regarde ici tu trouvera peut-etre ce que tu cherche

  5. #5
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    toujours le même problème, il ne détruit pas la session.
    Je potasse la doc ^^

  6. #6
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Bon finalement j'ai réussi à recréer une session en faisant comme ceci.
    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
     
    <?php
    session_start();
    if(isset($_SESSION['destroy']))	{
    	session_destroy();
    	session_start();
    	session_regenerate_id();
    }
    $order = new Order(session_id());
    $order->sqlSelect(); // récupération d'infos dans une BDD
    if(isset($_POST['send']))	{
    	// Envoi de la commande par mail
    	$order->send();
    	$_SESSION['destroy'] = true;
    	exit();
    }
    ?>
    Cette fois-ci cela fonctionne sur les 2 serveurs. Je suis obligé de mettre session_regenerate_id() sinon il ne détruit pas la session.
    Je laisse à non résolu, si quelqu'un a une idée du paramètre de conf qui peut joué là-dessus cela m'intéresse.
    Bye et merci pour votre aide ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. détruire une session
    Par Maria1505 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/08/2007, 11h26
  2. Détruire une session à la fermeture d'une fenètre.
    Par dell77 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 07/12/2006, 17h12
  3. Détruire une session
    Par perlgirl dans le forum Langage
    Réponses: 4
    Dernier message: 28/09/2006, 02h22
  4. Détruire les variables d'une session
    Par kespy13 dans le forum Langage
    Réponses: 6
    Dernier message: 05/05/2006, 17h13
  5. [JSP] détruire une session
    Par villeneuvejsp dans le forum Servlets/JSP
    Réponses: 24
    Dernier message: 03/08/2005, 14h44

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