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 :

Problème de variable de session.


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Problème de variable de session.
    Bonjour à tous,

    Je rencontre un problème de variable de session sur mon site (3w.profilicc.com) suite au déménagement de ce dernier de chez Free à un hébergeur payant. Je tiens à signaler que je suis un gros newbie en php, css et html (et le but de tout newbie est de ne pas le rester trop longtemps

    J'ai lancé easyphp sur mon pc pour acceder par Explorer au contenu local de mon site afin de tester le comportement de la variable. Comme sur le serveur distant, 1 fois sur 2, la variable n'est pas trouvée et un message apparait au dessus de la page affichée :
    Notice: Undefined variable: var in c:\program files\easyphp1-8\www\profilicc_sommaire_accueil.php on line 11
    Et voici le code de ma variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     <?php
    session_start() ;
     
    if(isset($_SESSION['var'])) 
    echo '';
    else {$var = mt_rand (1, 8);
    }
     
    $_SESSION['var'] = $var ; 
     
    ?>
    Lorsque le site était chez free et conformément à ses indications, j'avais placé un dossier vide nomé "sessions" à la racine de site. Chez mon nouvel hébergeur, avec ou sans ce dossier, je rencontre toujours le même problème de session.

    Quelqu'un peut-il m'aider ?
    ^__^

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tout d'abord je poserai une question. Cette notice arrive lorsque c'est la première page et que tu n'as pas défini ta variable session ou c'est après ?

    Car dans l'un des cas $var n'existe pas et c'est ce que veut te dire le notice

    Je dirais, fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     <?php
    session_start() ;
     
    if(isset($_SESSION['var'])) 
    {
        echo '';
    }
    else {
         $var = mt_rand (1, 8);
         $_SESSION['var'] = $var ;
    }
    ?>

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    A la premiere page, la variable fonctionne. Si je clic sur un lien, la page suivante va s'afficher mais avec cette erreur de variable (l'affichage de la page est incomplet car il n'a pas accedé au dossier relatif à la variable). Si je reclic une troisieme fois sur un lien, la variable disparait à nouveax ... et ainsi de suite.

    Donc je perd puis retrouve une variable clic après clic. Alors qu'avant, une fois la variable déterminée, ma session restée en place.

    J'ai testé ton code Kerod. C'est pas mieux.

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Avant ça fonctionnait peut être à cause de la configuration dans le php.ini qui le permettait (). A mon avis, ton nouveau php.ini ne le permet plus.

    Pour plus de détail, avant d'une variable session pouvait se faire par l'appel du nom lui même, donc si tu avais $_SESSION['var'] tu pouvais l'appeler également $var.

    Pour revenir à ton problème, ça m'étonne que ça fonctionne pas

    Alors j'ai testé comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    session_start();
     
    if(!isset($_SESSION['var'])) 
    {$var = mt_rand (1, 8);
    }
     
    $_SESSION['var'] = $var ; 
     
    ?>
    Et j'obtiens ce message :
    Notice: Undefined variable: var in d:\utilitaires\easyphp1-8\www\test.php on line 8
    Mais si on fait comme je te l'ai dit plus haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    session_start();
     
    if(!isset($_SESSION['var'])) 
    {$var = mt_rand (1, 8);
    $_SESSION['var'] = $var ; 
    }
    ?>
    Alors aucun message d'erreur

    ps : j'ai réduit le code au minimum nécessaire

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Arff ! ça marche toujours pas.

    Je viens de discuter avec mon hébergeur qui apporte les éléments suivant :

    ____________

    " PHP5 est installé sur le serveur. Cela peut avoir une incidence aussi, si le script a été codé pour PHP4. Tout dépend des fonctions utilisées. Mais si c'est 1 fois sur deux j'opte malgré tout pour une erreur de codage.

    Normalement la variable de session est définie et stockée par PHP lui-même. La où tu peux rencontrer un problême c dans les chemins absolus de ton script et donc si tu as "bidouillé" un dossier spécial de stockage de ces variable il me semble possible que ton script soit incapable de le retrouver du fait que le "path" n'est plus le même."
    _____________

    Voilà. Je ne sais pas comment modifier le path ni à quoi il correspond dans le codage. Je ne sais pas non plus comment on réencode du php 4 en php 5.

  6. #6
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Salut SnowBall_Party !

    juste une tentative a faire :
    essaye de renommer ta variable $var.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Bon ton erreur est du au fait que free a des disposition particuliere tres chiante.

    Je m'explique pour free, toutes variables $_Session['xxx'] et $_GET['yy'] peut etre recupere de cette facon $yy et $xxx au lieu de passer par les methodes classiques.
    Ce qui est en fait fortement deconseillé dans les doc php.
    Tout les autres ne le font plus resultats ta variable $yy qui etait en fait $_get['yy'] chez free est maintenant une variable a part entiere qui ne vaut plus rien maintenant puisque rien n'y est affecté.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Problème résolu après moultes investigations ! Le code de la variable est bon pour php 4 mais pas assez "rigoureux" pour php 5, la version en place sur le seveur de mon hébergeur. Merci d'ailleurs à lui pour le coup de main / webdomain is pro ;-)

    Le code correct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     <?php
    session_start() ;
    if(isset($_SESSION['var']))  
      $var = $_SESSION['var'];
      else {$var = mt_rand (1, 8);
      }
    $_SESSION['var'] = $var ; 
    ?>
    Merci à tous aussi pour avoir posté ! I'm less newbie now.

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

Discussions similaires

  1. problème des variables de sessions
    Par Thania dans le forum Langage
    Réponses: 5
    Dernier message: 16/11/2007, 13h54
  2. problème de variable de session
    Par emilek dans le forum Langage
    Réponses: 1
    Dernier message: 18/09/2007, 12h10
  3. problème de variables de session avec Jpgraph
    Par fat dans le forum Langage
    Réponses: 1
    Dernier message: 02/07/2007, 16h26
  4. Réponses: 2
    Dernier message: 30/05/2007, 16h08
  5. Problème avec variables de session
    Par jorggy dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2007, 23h31

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