Inscription entre balises xml via php !?

Résolu
cs_Adrien4 Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 28 octobre 2005 - 23 janv. 2005 à 14:52
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 23 janv. 2005 à 22:54
Bonjour,

J'ai un fichier qui envoie les données d'un formulaire php vers un fichier xml,
Mais lors de chaque inscription, j'aimerais que les information d'inscritpion aillent DANS les balises <liste> et </liste>.
Dans le code ci-dessous, $texte sont les infos a ecrire sur le xml.
Voila le code qui devrais etre changé je pense :

Code:,
----

$handle = fopen($nomDeFichier.".xml", "a+");
fputs($handle, $texte);
fclose($handle);

Mais ou et comment inscerer une instruction pour que l'ecriture est lieu entre les balises <liste> et </liste> (en dessous des infos precedement inscrites : c'est le a+) ?!

Merci a tous !
Adrien

10 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
23 janv. 2005 à 19:13
Ok, tu peux tout d'abord ouvrir ton fichier XML :



$fichier=file_get_contents('fichier.xml');

$tableau=array('<liste>'=>'','</liste>'=>'');

$fichier=strtr($fichier,$tableau);



//---------------------------------------

//tu rajoutes les données dans ton fichier

//---------------------------------------

$fichier.='<cubor id="'.$_POST['truc'].'" nom="1" prenom="1">
<methode type="1" />
<temps meilleur="1" moyenne="1"/>
<lieu departement="1" numero="1" />
<courriel adresse="1" site="1"'>
</cubor>
<cubor id="2" nom="2" prenom="2">
<methode type="2" />
<temps meilleur="2" moyenne="2"/>
<lieu departement="2" numero="2" />
<courriel adresse="2" site="2"'>
</cubor>';



(j'ai simplifié, tu remplaces les valeurs par celles de ton formulaire)




ensuite tu enregistres ton fichier :



$fp=fopen('fichier.xml','w+') OR die('Ouverture du fichier impossible');

fputs($fp,$fichier);

fclose($fp);



voilà ;-)



a ++

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
23 janv. 2005 à 17:54
Salut ;-)



tu peux nous donner la structure complète de ton fichier XML ?



merci

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
cs_Adrien4 Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 28 octobre 2005
23 janv. 2005 à 18:10
Voila le tout :

<?php


function form2xml($nomDeFichier, $id, $nom, $prenom, $type, $temps_meilleur,
$temps_moyenne, $departement, $num, $mail, $site) {
$texte .= "";
$texte .= "<cubor id="".$id."" nom="".$nom."" prenom="".$prenom."">\n";
$texte .= "<methode type="".$type."" />\n";
$texte .= "<temps meilleur="".$temps_meilleur."" moyenne="".$temps_moyenne.""/>\n";
$texte .= "<lieu departement="".$departement."" numero="".$num."" />\n";
$texte .= "<courriel adresse="".$mail."" site="".$site.""/>\n";
$texte .= "</cubor>\n";


$handle = fopen($nomDeFichier.".xml", "a+");
fputs($handle, $texte);
fclose($handle);
}


form2xml("informations", "$id", "$nom", "$prenom", "$type", "$temps_meilleur","$temps_moyenne", "$departement", "$num", "$mail", "$site");


?>

Et merci encore
Adrien
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
23 janv. 2005 à 18:11
non la structure du fichier tel qu'il doit être, genre ça :



<liste>

machin

truc

</liste>



ou si y'a d'autres trucs avant et après... bref un exemple de fichier xml

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Adrien4 Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 28 octobre 2005
23 janv. 2005 à 18:48
Lol, ok, je suis un peu fatigué ...

Voila le xml :

<liste>
<cubor id="*****" nom="*****" prenom="*****">
<methode type="*****" />
<temps meilleur="*****" moyenne="*****"/>
<lieu departement="" numero="*****" />
<courriel adresse="*****" site="*****'>
</cubor>
</liste>

Les * sont les infos enregistrées via le formulaire

Adrien
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
23 janv. 2005 à 18:53
et donc à chaque fois que tu utilises ce formulaire du as de nouveau ceci :



<liste>
<cubor id="*****" nom="*****" prenom="*****">
<methode type="*****" />
<temps meilleur="*****" moyenne="*****"/>
<lieu departement="" numero="*****" />
<courriel adresse="*****" site="*****'>
</cubor>
</liste>



ou tu remplaces à chaque fois les valeurs contenues dans la zone <liste> ?



en gros tu as ça :




<liste>
<cubor id="*****" nom="*****" prenom="*****">
<methode type="*****" />
<temps meilleur="*****" moyenne="*****"/>
<lieu departement="" numero="*****" />
<courriel adresse="*****" site="*****'>
</cubor>
</liste>


<liste>
<cubor id="*****" nom="*****" prenom="*****">
<methode type="*****" />
<temps meilleur="*****" moyenne="*****"/>
<lieu departement="" numero="*****" />
<courriel adresse="*****" site="*****'>
</cubor>
</liste>


<liste>
<cubor id="*****" nom="*****" prenom="*****">
<methode type="*****" />
<temps meilleur="*****" moyenne="*****"/>
<lieu departement="" numero="*****" />
<courriel adresse="*****" site="*****'>
</cubor>
</liste>



ou ça :




<liste>
<cubor id="dsqffsqd" nom="qsdf" prenom="ddddddd">
<methode type="*****" />
<temps meilleur="*****" moyenne="*****"/>
<lieu departement="" numero="*****" />
<courriel adresse="*****" site="*****'>
</cubor>
</liste>



?


Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
cs_Adrien4 Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 28 octobre 2005
23 janv. 2005 à 18:59
A chaque inscription par des personnes differentes, il y aurais ca :

<liste>
<cubor id="1" nom="1" prenom="1">
<methode type="1" />
<temps meilleur="1" moyenne="1"/>
<lieu departement="1" numero="1" />
<courriel adresse="1" site="1"'>
</cubor>
</liste>

<liste>
<cubor id="2" nom="2" prenom="2">
<methode type="2" />
<temps meilleur="2" moyenne="2"/>
<lieu departement="2" numero="2" />
<courriel adresse="2" site="2"'>
</cubor>
</liste>

Moi je voudrais ca (aucuns balises repetées entre les differentes infos) :

<liste>
<cubor id="1" nom="1" prenom="1">
<methode type="1" />
<temps meilleur="1" moyenne="1"/>
<lieu departement="1" numero="1" />
<courriel adresse="1" site="1"'>
</cubor>
<cubor id="2" nom="2" prenom="2">
<methode type="2" />
<temps meilleur="2" moyenne="2"/>
<lieu departement="2" numero="2" />
<courriel adresse="2" site="2"'>
</cubor>
</liste>

(cela repeté autent de fois qu' d'inscription : une seule balise <liste> au debut et une seule balise </liste> a la fin. Les infos inscrites entre ces balises là.)

Merci encore !
Adrien
0
cs_Adrien4 Messages postés 65 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 28 octobre 2005
23 janv. 2005 à 19:45
Nan, ya un pb, je n'ai pas que 2 personnes lol !
Tu pourrais me faire sur le code ce que tu m'a ecrit, car je n'ai pas tout comprit ...
Ce serait trèssss sympa, et merci pour tes reponses si rapides !

<?php


function form2xml($nomDeFichier, $id, $nom, $prenom, $type, $temps_meilleur,
$temps_moyenne, $departement, $num, $mail, $site) {
$texte .= "";
$texte .= "<cubor id="".$id."" nom="".$nom."" prenom="".$prenom."">\n";
$texte .= "<methode type="".$type."" />\n";
$texte .= "<temps meilleur="".$temps_meilleur."" moyenne="".$temps_moyenne.""/>\n";
$texte .= "<lieu departement="".$departement."" numero="".$num."" />\n";
$texte .= "<courriel adresse="".$mail."" site="".$site.""/>\n";
$texte .= "</cubor>\n";


$handle = fopen($nomDeFichier.".xml", "a+");
fputs($handle, $texte);
fclose($handle);
}


form2xml("informations", "$id", "$nom", "$prenom", "$type", "$temps_meilleur","$temps_moyenne", "$departement", "$num", "$mail", "$site");


?>

Adrien
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
23 janv. 2005 à 20:54
Bah heu même avec une, deux ou cinq personnes je ne vois pas où est le prob ?!

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
23 janv. 2005 à 22:54
Hello,

ok, il te dit ce que je t'ai dit par email, mais il y a une erreur en effet! Si tu veux garder cette facon d'ecrire ton fichier XML, il faut absolument, dans tous les cas de figures, que tu vires ta derniere balise </liste>.
Ce n'est pas difficile avec un substr(). Tu stockes ton fichier dans ta variable $fichier, et tu vires les 8 derniers caracteres.
Puis tu reecris ton fichier a la suite ($fichier.="...").
Mais bon...je persiste a penser qu'il serait plus simple d'utiliser les possibilites de PHP concernant la creation de fichier XML, tu pourrais ecrire de nouveaux noeuds comme ca.
0
Rejoignez-nous