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 :

Ouvrir une session avec une condition


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Ouvrir une session avec une condition
    salut;
    je suis sur xp en local je test avec php4, je souhaite ouvrir une session à un moment bien determiné.
    Pour cela je passe une variable dans l'URL, c'est qu'à ce moment là que je veux ouvrir ma session. voila ce que j'ai fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_REQUEST['ma_var']) || isset($_SESSION['ma_var'])){
    session_start();
    $_SESSION['ma_var']='1' ;
     
    $_SESSION['moi']='maxi'; 
    echo $_SESSION['moi'] ;// juste pour tester
    }
    echo $_SESSION['moi'] ;// juste pour tester aprrès la condition
    la session est ouverte au moment que la condition est vraie.
    Mais dès que la variable 'ma_var' n'est plus present dans l'URL
    la condition n'est plus remplie, et ma sessin est detruite automatiquement.

    quelqu'un à une idée.

  2. #2
    Expert éminent sénior

    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
    Points : 17 777
    Points
    17 777
    Par défaut
    Dans votre if vous tester si la variable de session ma_var existe or elle n'existera jamais puisque le session_start se trouve après ! En effet, la fonction session_start démarre une session si aucune n'est attribuée au client mais récupère son contenu (initialisation du tableau superglobal $_SESSION avec l'ensemble des variables de session précédentes) dans le cas contraire. Donc il y a une erreur de conception.

    Je vous recommande de lire Les sessions en PHP à ce sujet.


    Julp.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut session
    Citation Envoyé par julp
    Dans votre if vous tester si la variable de session ma_var existe or elle n'existera jamais puisque le session_start se trouve après ! En effet, la fonction session_start démarre une session si aucune n'est attribuée au client mais récupère son contenu (initialisation du tableau superglobal $_SESSION avec l'ensemble des variables de session précédentes) dans le cas contraire. Donc il y a une erreur de conception.

    Je vous recommande de lire Les sessions en PHP à ce sujet.


    Julp.
    Bien sûr qu'elle existera ma variable, puisqu'elle est passé via l'url
    en cliquant sur un lien sous la forme : page.php?ma_var=1.
    la preuve en cliquant sur ce lien la session est effectivement ouverte,
    mais dès que je clic sur un autre lien ne contenant pas ma variable ma_var, la session est fermée ou detruite.

    je voudrais une reponse sous le fond du pb pas sous la forme.
    merci.

  4. #4
    Membre régulier
    Avatar de SOAD08
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 101
    Points : 108
    Points
    108
    Par défaut
    pourquoi ne pas plutot faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start();
     
    if(empty($_SESSION['ma_var'] && empty($_REQUEST['ma_var']){
    session_destroy();
    }
    ou même,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start();
     
    if(empty($_SESSION['ma_var'] && empty($_REQUEST['ma_var']){
    $_SESSION = array();
    }
    dans le second cas la session existe quand même mais aucune variable de session n'est enregistré

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par SOAD08
    pourquoi ne pas plutot faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start();
     
    if(empty($_SESSION['ma_var'] && empty($_REQUEST['ma_var']){
    session_destroy();
    }
    ou même,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    session_start();
     
    if(empty($_SESSION['ma_var'] && empty($_REQUEST['ma_var']){
    $_SESSION = array();
    }
    dans le second cas la session existe quand même mais aucune variable de session n'est enregistré


    merci SOAD08 , ton idée n'est pas mal j'y avais pas pensé, je vais l'essayer.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. Comment faire une direction avec une session
    Par pierrot10 dans le forum Langage
    Réponses: 3
    Dernier message: 20/06/2007, 21h35
  5. Réponses: 13
    Dernier message: 16/04/2004, 12h00

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