Inscription entre balises xml via php !?

Résolu
Signaler
Messages postés
65
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
28 octobre 2005
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
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

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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)
Messages postés
65
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
28 octobre 2005

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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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)
Messages postés
65
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
28 octobre 2005

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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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)
Messages postés
65
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
28 octobre 2005

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
Messages postés
65
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
28 octobre 2005

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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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.