Page 1 sur 1

2 petites questions sur du xml....

Posté : 11 août 2005, 13:50
par knuts
Bonjour,


je suis sur un guest book et j'ai 2 petits soucis.... :(

mon fichier XML ressemble à ça :

Code : Tout sélectionner

<guestbook><message id="1"><nom>test </nom><url>bravo</url><email>[email protected]</email><date>05/8/2005</date><texte>Vraiment super votre site, bravo et bonne continuation. Mangez des pommes !</texte></message><message id="2"><nom>Supertomate</nom><url>c moi !</url><email>[email protected]</email><date>07/8/2005</date><texte>Ouaipe po mal....</texte></message></guestbook>
donc en fait j'ai 2 petits problèmes :

1) Je voudrais savoir comment peut- on placer la tête de lecture du fichier xml à la balise du dernier message et qu'elle aille en sens inverse (pour pouvoir commencer du plus récent au plus vieux....) car en ce moment je suis obligé de commencer au message 0 avec ce code :

Code : Tout sélectionner

messCourant=0;

2) Je voulais égalment savoir si l'on peut faire une interface pour effacer les messages que l'on ne veut plus sur le livre d'or sans être obligé d'editer à chaque fois le fichier xml à la main...


Merci pour vos réponses :)


++

Posté : 11 août 2005, 13:55
par Cyrano
Comment génères-tu ton fichier XML à la base ?

Posté : 11 août 2005, 13:58
par knuts
avec une interface flash et du code php :

la partie flash :
on (release) {
// On test si les champs sont remplis
if ((Auteur != "") && (URL != "") && (Mail != "") && (Texte != "")) {

// prise en charge de la date
myDate = new Date();
theDate = (mydate.getDate() + "/" + (1 + myDate.getMonth()) + "/" + mydate.getFullYear());

// id du message => nbr. mess +1
id_mess = _parent.tabGuestbook.length+1;

// formation de la chain de charac. correspondant au mess en XML
str ="<message id=\""+id_mess+"\"><nom>"+Auteur+"</nom><url>"+URL+"</url><email>"+Mail+"</email><date>"+TheDate+"</date><texte>"+Texte+"</texte></message>";
// On encode le message en URL afin de passer tout les charac. spéciaux
// sans torp de pb... :-)
NewMess = escape(str);

// On envoit ca au sript PHP avec loadvariable
loadVariablesNum ("guestbook.php", 0, "POST");
gotoAndPlay (5);
}
else {
messErreur = "Merci de remplir tout les champs !";
}
}

et la partie php :

// Fonction pour l'envoi des valeurs à Flash
function Parse($variable,$valeur)
{
echo "&$variable=$valeur";
}
//------------------------------------------
// Fonction pour lire le contenu du fichier dans
// un buffer
function readFileIntoBuffer( $filename )
{
@$fp = fopen( $filename, "r");
if ( $fp )
{
$val = fread( $fp, filesize( $filename ));
fclose( $fp );
return $val;
}
return false;
}
//----------------------------------------------
// Fonction pour écrire $content dans un fichier
function writeFile( $filename,$content )
{
@$fp = fopen( $filename, "w");
if ( $fp )
{
$val = fwrite( $fp, $content);
fclose( $fp );
return 1;
}
return false;
}
//-----------------------------------------------
// On lit le fichier Guest Book
$gbook=readFileIntoBuffer('guestbook.xml');
// On ajoute le dernier message ajouté
$NewMess=urldecode($NewMess);
$gbook=ereg_replace("",$NewMess."",$gbook);
// On ecrit le nouveau guestbook
writeFile('guestbook.xml',$gbook);
// On envoi une var de fin a flash
Parse("op_fin","1");
?>
tu aurais une petite idée...?
n'hésite pas si tu as d'autres questions... :)

Posté : 11 août 2005, 14:04
par Cyrano
Mon idée de base : en fait la technique que j'ai utilisée pour mon propre script de LO à ce détail près que le mien n'utilise ni flash ni XML, mais le principe est exactement le même : des données structurées dans un fichier: pour supprimer un message, je stocke les données dans un tableau associatif en parcourant le fichier: ensuite, dans un formulaire, je sélectionne celui que je veux supprimer qu'on retrouve grâce à un identifiant: je recontrsuis ensuite mon fichier en le ré-écrivant complètement, mais je saute par dessus le message sélectionné quand je rencontre l'identifiant à supprimer.

Posté : 11 août 2005, 14:14
par knuts
lol, c'est vrai que c'est une bonne technique mais pour le faire en xml... :(
déjà que je n'arrive même pas à lire ce fichier xml en partant de la fin et en sens inverse alors...
En tt cas c sympa de ta part de t'être penché sur mon problème !
merci :)


++

Posté : 11 août 2005, 14:16
par Cyrano
Selon la version de PHP utilisée, tu as plusieurs fonctions pour manipulier des fichiers XML

Posté : 11 août 2005, 15:05
par knuts
je suis un peu perdu là :(