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 :

[PHP-XML] Problème de variable


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 27
    Points
    27
    Par défaut [PHP-XML] Problème de variable
    Salut,

    tout d'abord mon script :
    La classe : (includes/config.class.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    class config {
     function configugation () {
      $config = simplexml_load_file('includes/config.xml'); 
     
      foreach($config->parametre as $parametre) {
      ${utf8_decode($parametre->name)} = utf8_decode($parametre->value);
      }
     }
    }
    ?>
    Le xml (includes/config.xml)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0"?> 
    <zuxion>
    	<parametre> <name>skin</name> <value>v1</value> </parametre>
    	<parametre> <name>mail</name> <value>zuxion@gmail.com</value> </parametre>
    </zuxion>
    La page qui appelle : (index.php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    // On inclut les fichier indispensables
    include('includes/config.class.php');
     
    $classConfig = new config();
    $classConfig->configugation();
     
    // On va aller chercher les données dans le fichier xml
    $accueil = simplexml_load_file('includes/accueil.xml'); 
     
    include('templates/'. $skin .'/index.php');
    ?>
    L'erreur :
    Warning: include(templates//index.php) [function.include]: failed to open stream: No such file or directory in /var/www/Zuxion/index.php on line 11

    Warning: include() [function.include]: Failed opening 'templates//index.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/Zuxion/index.php on line 11
    L'erreur est due parce que la variable $skin est vide ou n'existe pas ... Et la est le problème ...

  2. #2
    Membre émérite 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
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    c'est pas $accueil->skin qu'il faut que tu fasses ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 27
    Points
    27
    Par défaut
    Ben ca me laisse la même erreur, alors j'a penser qu'il faudrais faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ${utf8_decode($parametre->name)} = utf8_decode($parametre->value);
    (ajouter le "var")

    Mais alors ça me met cette erreur :
    Parse error: syntax error, unexpected T_VAR in /var/www/Zuxion/includes/config.class.php on line 7
    Merci d'avoir répondu ...

  4. #4
    Membre émérite 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
    Points : 2 273
    Points
    2 273
    Par défaut
    En tout cas ce script fonctionne parfaitement chez moi et m'affiche bien "v1" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
      $config = simplexml_load_file('config.xml'); 
     
      foreach($config->parametre as $parametre) {
      ${utf8_decode($parametre->name)} = utf8_decode($parametre->value);
      }
    echo $skin;
    ?>
    Donc le problème ne doit pas être dans le code, peut-être dans l'encodage de ton fichier ?

  5. #5
    Membre émérite 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
    Points : 2 273
    Points
    2 273
    Par défaut
    En fait j'avais pas vu mais c'est des variables locales que tu crées dans la fonction configuration() de la classe config donc c'est normal que tu puisse pas y accéder.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 77
    Points : 27
    Points
    27
    Par défaut
    En faisant seulement ça dans mon fichier ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $config = simplexml_load_file('includes/config.xml'); 
     
      foreach($config->parametre as $parametre) {
      ${utf8_decode($parametre->name)} = utf8_decode($parametre->value);
      }
    ?>
    Merci

  7. #7
    Membre émérite 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
    Points : 2 273
    Points
    2 273
    Par défaut
    Oui, en fait le truc c'est que tu déclarais des variables locales dans une fonction et que tu essayais d'y accéder dans un autre bloc.
    Si tu veux faire quelque chose de plus propre avec un objet config tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class config {
     
     function configugation () {
       $config = simplexml_load_file('config.xml'); 
     
      foreach($config->parametre as $parametre) {
      $this->{utf8_decode($parametre->name)} = utf8_decode($parametre->value);
      }
     }
    et dans ton index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include('templates/'.$classConfig->skin.'/index.php');

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

Discussions similaires

  1. PHP et XML : problèmes de variables..
    Par Santcho dans le forum Langage
    Réponses: 1
    Dernier message: 08/06/2010, 13h13
  2. Réponses: 3
    Dernier message: 15/02/2008, 19h19
  3. Réponses: 3
    Dernier message: 13/04/2007, 20h43
  4. Réponses: 2
    Dernier message: 12/07/2006, 12h13
  5. [PHP-JS] Problème de variable PHP dans un script JS
    Par soad029 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2005, 23h17

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