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 :

Encoder variable PHP pour XML


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut Encoder variable PHP pour XML
    Bonjour!
    j'ai un objet SWF qui utilise le fichier good.php pour récupérer l'ID de l'utilisateur. Le fichier good.php est interprété comme un fichier XML.

    Le code suivant fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
      $user_id=101;
      echo '<graph><set id="'.$user_id.'"></graph>';
    ?>
    Le problème intervient lorsque je veux récupérer l'id par l'url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
      $user_id=$_GET['user_id'];
      echo '<graph><set id="'.$user_id.'"></graph>';
    ?>

    en parcourant des dizaines de forum français et anglais, j'ai essayé les fonctions suivantes sans succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $user_id=urldecode($_GET['user_id']);
    $user_id=intval($_GET['user_id']);
    $user_id=utf8_decode($_GET['user_id']);
    $user_id=utf8_encode($_GET['user_id']);
    $user_id=htmlentities($_GET['user_id']);
    $user_id=htmlspecialchars($_GET['user_id']);
    $user_id=html_entity_decode($_GET['user_id']);
    Pour info, $_GET['user_id'] est un nombre entier. Je cherche donc un moyen de récupérer cette valeur pour la lire en XML. (une astuce ou une fonction me conviendront )






    NB: Que ce soit avec $user_id=101 ou $user_id=$_GET['user_id'], le navigateur renvoit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <graph><set id="101"></graph>
    Conclusion: $_GET['user_id'] est bien envoyé mais son format n'est pas lisible par XML...






    Merci d'avance à tous ceux qui se pencheront sur ce problème

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<graph><set id="'.$user_id.'"></graph>';
    t'as oublié le .

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    merci. je l'ai modifié mais comme tu dois t'en douter ça ne résoud pas le problème.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tomazawak Voir le message
    merci. je l'ai modifié mais comme tu dois t'en douter ça ne résoud pas le problème.
    quand tu lances ton good.php via un navigateur t'as bien la chaine attendu ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    oui, comme je le précise dans mon Nota Bene, tous les navigateurs affichent bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <graph><set id="101"></graph>
    (même en utilisant le $_GET['user_id'])

    J'en conclu donc que c'est le format de la variable $_GET qui n'est pas interprété par XML.


    Merci pour ton soutien...

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tomazawak Voir le message
    oui, comme je le précise dans mon Nota Bene, tous les navigateurs affichent bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <graph><set id="101"></graph>
    (même en utilisant le $_GET['user_id'])

    J'en conclu donc que c'est le format de la variable $_GET qui n'est pas interprété par XML.


    Merci pour ton soutien...
    fais un trim sur ta variable

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    fais un trim sur ta variable
    ça ne fonctionne pas

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Petite précision:
    si je fais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    good.php?user_id=1
    $user_id=$_GET['user_id']+100;
    ça me renvoit 100 sur mon SWF. J'en conclu donc que le problème vient bien de $_GET.

    Le résultat est identique avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    good.php?user_id=1
    $user_id=trim($_GET['user_id'])+100;

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tomazawak Voir le message
    ça ne fonctionne pas
    quand tu charges le fichier en texte via flash ca donne quoi ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    quand tu charges le fichier en texte via flash ca donne quoi ?
    tu me demandes d'essayer de modifier l'extension (.txt via htaccess)?
    ou de créer un fichier texte avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <graph><set id="101"></graph>
    ?

    J'essaye la première solution parce que la deuxième fonctionnera à coup sûr (dans la mesure où ça fonctionne si je mets $user_id=101

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tomazawak Voir le message
    tu me demandes d'essayer de modifier l'extension (.txt via htaccess)?
    ou de créer un fichier texte avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <graph><set id="101"></graph>
    ?

    J'essaye la première solution parce que la deuxième fonctionnera à coup sûr (dans la mesure où ça fonctionne si je mets $user_id=101
    non, ne pas le charger comme un XML mais comme un fichier classique via flash

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    j'ai ajouté une règle htaccess pour que le fichier php soit lu comme un fichier texte par flash
    et ça donne le même résultat qu'avec un XML

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    autre précision:
    lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    good.php?user_id=101
    echo $_GET['user_id'];
    ça m'affiche bien 101

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    non mais le htaccess ca n'a rien a voir, avec regarde juste le contenu de ton URLLoader avant de le mettre dans une instance XML

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    non mais le htaccess ca n'a rien a voir, avec regarde juste le contenu de ton URLLoader avant de le mettre dans une instance XML
    est-ce que tu peux être plus explicite stp. Je ne comprends pas ce que je dois faire.

    J'imagine que URLLoader est dans le fichier flash...?

    PS: c'est un fichier SWF de chez FusionCharts (je pense que j'ai la source FLA)

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    http://dl.free.fr/a4KBvsRRJ
    voici le fichier *.fla si cela est nécessaire
    (je ne peux pas l'ouvrir puisque je n'ai pas flash)

  17. #17
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tomazawak Voir le message
    est-ce que tu peux être plus explicite stp. Je ne comprends pas ce que je dois faire.

    J'imagine que URLLoader est dans le fichier flash...?

    PS: c'est un fichier SWF de chez FusionCharts (je pense que j'ai la source FLA)
    y'a pas tout dans ton fichier, mais oui apres c'est au niveau de flash qui faut voir ca

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 52
    Points : 23
    Points
    23
    Par défaut
    j'ai trouvé une astuce mais je ne connais toujours pas l'origine du problème...

    En fait, j'ai simplifié le code dans mon premier post. Mon code comportait en réalité plusieurs variables $_GET.
    voici à quoi ressemblait l'URL appelée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    good.php?var=activity&user_id=101
    j'ai résolu le problème en utilisant qu'une seule variable $_GET + 1 explode
    L'url appelée est désormais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    good.php?var=activity,101
    Il y a problème dès que la tableau $_GET a au moins 2 entrées.
    ça ne vient pas du fait qu'il y ait lettres et chiffres puisque j'ai fait le test en ajoutant des lettres à la 2ème variable $_GET et ça ne marchait pas.
    ça ne vient pas du fait que le '&' soit au mauvais format puisque j'ai essayé avec plusieurs fonctions de décodage et plus simplement avec '&amp'...

    en tout cas merci pour ton aide stealth35 !!
    ton soutien m'a permis d'explorer d'autres horizons qui m'ont finalement conduit à cette astuce.

Discussions similaires

  1. [Web Service] Recherche script php pour xml-rpc dotclear
    Par php_de_travers dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/10/2009, 18h41
  2. Réponses: 12
    Dernier message: 14/12/2008, 12h17
  3. variables php pour lecteur flash
    Par melonmaudic dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2008, 10h42
  4. Problème de variables php pour traitement du formulaire
    Par marocteech dans le forum Langage
    Réponses: 1
    Dernier message: 01/01/2008, 16h23
  5. [SQL] Puis-je insérer une variable PHP pour déterminer ORDER BY ?
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/05/2006, 01h41

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