Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: XML send
Envoyé: 31 octobre 2005, 4h51 par lufl
Merci beaucoup pour ton aide:
Voici le code côté Flash:
book = new XML();
// ignorer tous les blancs, retours à la ligne et autres trucs qui peuvent planter le décryptage
book.ignoreWhite = true;
// Forcer l'encodage au format URL
book.addRequestHeader("Content-Type", "text/xml");
book.onLoad = function(ok) {
// si la connexion se passe bien : on affiche dviserses infos
// telles que le nombre de message du livre et le contenu du XML
if (ok) {
_root.texte.text = "nombre de message : "+book.childNodes[0].childNodes.length+"\nContenu du XML : "+book.toString();
} else {
_root.texte.text = "problème de connexion";
}
};
bouton.onRelease = function() {
trace("appel");
// clone le dernier message du livre & modifie chacun des champs
nouveau = book.childNodes[0].childNodes[0].cloneNode(true);
nouveau.attributes.nom = "Toph'";
nouveau.attributes.message = "alors ça, c'est de la balle ça marche même avec plein d'accents : éèaà!ù@";
nouveau.attributes.date = new Date();
nouveau.attributes.titre = "Titre";
// ajoute le nouveau message au début du livre (pour qu'il apparaissent en premier
book.childNodes[0].insertBefore(nouveau, book.childNodes[0].firstChild);
// crée la capsule d'envoi du XML au script serveur de mise à jour : maj_book.php
capsule = new LoadVars();
// création d'une variable (peu importe son nom), au sein de la capsule
// on y stocke le contenu du book sans l'entete XML
capsule.xml = book.childNodes[0];
// envoi et stockage du book de retour
capsule.sendAndLoad("http://localhost/public/album/maj_book.php", book);
// attention, l'utilisation de sendAndLoad provoquera obligatoirement le lancement
// de la fonction .onload de l'objet XML (ici book.onLoad). Attention aux boucles sans fin
};
system.useCodepage = true; // Normalement, pas besoin de cette ligne, mais on est jamais trop prudent
book.load("book.xml");
J'ai essayé également avec en header "application/x-www-form-urlencoded";
Le code côté PHP:
<?
function ecrire( $fichier,$contenu )
{
$fp = fopen( $fichier, "w");
if ( $fp )
{
$ok = fwrite( $fp, $contenu);
fclose( $fp );
return 1;
}
return false;
}
//-----------------------------------------------
$chaineXML=urldecode(utf8_decode($HTTP_POST_VARS['xml']));
//ecrire('book.xml',urldecode($_POST["xml"]));
ecrire('book.xml',$chaineXML);
print($chaineXML);
?>
J'ai également essayé avec urldecode($chaineXML) ainsi que utf8_decode($chaineXML) ainsi que sans rien.
Et le fichier xml est celui que tu donnais en exemple:
<?xml version= "1.0" encoding= "UTF-8" standalone= "no"?><book><post nom="Moi" titre="premier message" date="aujourd'hui" message="le XML c'est bien" ></book>
Voilà tous les éléments détaillés. Donc tout se passe bien sauf au niveau de la réécriture du xml dans le php: le format est différent.
Merci encore!
Réponses
|