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 :

Signe "&" fait buger mon xml


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut Signe "&" fait buger mon xml
    Bonjour,

    J'utilise du xml pour transmettre des infos à une fonction PHP via AJAX de Jquery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    xml = xml+'<TextLien>'+$.trim($("#TextLien").val())+'</TextLien>';
     
    $.ajax({
    type: 'POST',
    url: 'ajax/Partager.php',
    data: "xml=" + encodeURIComponent(xml),
    dataType: 'text',
    success: function (result)
    {
    ...
    }
    });
    Puis je traite via un script PHP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $xml_parser = xml_parser_create();
    xml_parse_into_struct($xml_parser, '<xml>'.$pXML.'</xml>', $vals, $index);
    xml_parser_free($xml_parser);
     
    print_r($vals);
    Seulement lorsque que mon text comporte un & (et sans doute d'autres caractères), le script n'arrive plus à décoder le xml (il ne trouve plus la balise </TextLien>)

    J'ai donc essayé d'ajouter <![CDATA[ et ]]> sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xml = xml+'<TextLien><![CDATA['+$.trim($("#TextLien").val())+']]></TextLien>';
    Mais aucun résultat

    Quand j'affiche la variable xml dans la console les <![CDATA[ et ]]> n'apparaisse pas, ni dans mon fichier JS, c'est sans doute normal.

    Des idées ?

    Merci

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    J'ai redéfini ma variable PHP directement dans ma fonction PHP avec <![CDATA[ ]]> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $pXML = '<Details><![CDATA[&é"(-è_çà)=]]></Details>';
     
    $xml_parser = xml_parser_create();
    xml_parse_into_struct($xml_parser, '<xml>'.$pXML.'</xml>', $vals, $index);
    xml_parser_free($xml_parser);
     
    print_r($vals);
    et dans ce cas ça fonctionne...

    Le problème serait donc au niveau de la transmission du XML qui ignore les <![CDATA[ ]]>.

    C'est normal si ils n'apparaissent pas lorsque j'affiche mon JS depuis mon navigateur ?

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 519
    Par défaut
    Désolé, en faite le problème vient d'un tout autre endroit

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

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