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 :

suivi de session simple qui ne marche pas


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Points : 81
    Points
    81
    Par défaut suivi de session simple qui ne marche pas
    Bonjour.
    Voici un petit test tiré de la FAQ.
    -création d'une session
    -Si $NOM exite pas un lui attribue durand et affiche "variable inconnue"
    -Sinon affiche "pas d'init"
    lorsque je recharge la page j'obtient toujours "variable inconnue", donc le suivi de session ne marche pas, la variable $NOM n'est pas conservée.
    Voyez vous le 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
    15
    16
    17
    18
    19
    20
     
    session_start(); 
     
    /* si la variables $NOM 
       n'existe pas alors : */ 
    if(!isset($NOM)) { 
    echo" variable inconnue <br>" ;
      $NOM = "Durand"; 
      /* sauvegarde de la variable $NOM 
         afin qu'elle soit connue dans 
         les autres pages */ 
    session_register("NOM"); 
    echo "init " ; 
    } else { 
    echo "pas d'init"; 
    } 
    echo $NOM; 
    //echo "<a href=$PHP_SELF>recharger</a>" ;
    echo "<a href=session_auto2.php>recharger</a>" ;
    //phpinfo();

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, en fait lorsque tu fais session_register("NOM"), ça ne signifie pas que tu as sauvegardé la variable $NOM, il faut que tu appelles $_SESSION['NOM']

    Essaie ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    session_start(); 
     
    if(!isset($_SESSION['nom'])) { 
      echo" variable inconnue <br>";
      $_SESSION['nom'] = 'Durand';
      echo 'init';
    } else { 
      echo 'pas d\'init';
    } 
    echo $_SESSION['nom'];
    echo '<a href=session_auto2.php>recharger</a>';
    Tu peux aussi jeter un oeil à ces liens pour mieux comprendre le mécanisme des sessions : http://julp.developpez.com/php/les-sessions/, http://beaussier.developpez.com/articles/php/session/
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Points : 81
    Points
    81
    Par défaut
    merci ca marche mais j'ai besoin de precision.

    -je démare une session et je fixe une varible puis je l'affiche -> pas de problémes
    -je fais un lien sur une autre page session2.php
    session1.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    session_start();
    $_SESSION["x"] = 199;
    echo $_SESSION["x"] ."<br>";
    ?>
    <a href="session2.php" target="_self">page suivante</a><br>
    session2.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo "ici page suivante valeur = " .$_SESSION["x"] ."<br>";
    ?>
    =>Notice: Undefined variable: _SESSION
    par contre si session2.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    session_start(); // ligne suplementaire
    echo "ici page suivante valeur = " .$_SESSION["x"] ."<br>";
    ?>
    =>affiche bien ici page suivante valeur = 199

    Pourquoi doit je redemarer une session, il me semble que normalement ce n'est pas necessaire.

  4. #4
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    $_session_start ?
    n'oubliez pas la balise

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Points : 81
    Points
    81
    Par défaut
    peux tu préciser : $_session_start ?

  6. #6
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, il faut en effet utiliser session_start() au début de chaque page où tu veux utiliser les variables de session ; cette fonction permet de démarrer une session ou de continuer la session courante.
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  7. #7
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    Citation Envoyé par Nesmontou
    Salut, il faut en effet utiliser session_start() au début de chaque page où tu veux utiliser les variables de session ; cette fonction permet de démarrer une session ou de continuer la session courante.
    bin c'est ca que je voulais dire ^^
    Me suis juste plante dans la syntaxe
    n'oubliez pas la balise

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

Discussions similaires

  1. une condition simple qui ne marche pas
    Par NulenVBA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/12/2008, 18h34
  2. un programme trop simple qui ne marche pas
    Par smp82 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/10/2008, 15h46
  3. [RegEx] regex simple qui ne marche pas (encore)
    Par denisvignes dans le forum Langage
    Réponses: 5
    Dernier message: 19/09/2008, 15h04
  4. Programme super simple qui ne marche pas!
    Par _Michel dans le forum Visual C++
    Réponses: 2
    Dernier message: 07/01/2008, 18h50
  5. Script tout simple qui ne marche pas sous IE
    Par Bleuarff dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/02/2007, 18h48

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