Formulaire dans un fichier xml

Formulaire dans un fichier xml - XML/XSL - Programmation

Marsh Posté le 22-06-2005 à 22:36:09    

slt je voudrai savoir si on pouvai fair un formulaire en PHP  qui envoie les données dans un fichier xml du type
 
  <?xml version="1.0" encoding="ISO-8859-1" ?>  
   - <racine>
    - <sujet>
       <message>Le message du formulaire</message>  
       <auteur>Auteur du message</auteur>  
       <date>Date creation du message</date>  
      </sujet>
    - <sujet>
       <message>Le message du formulaire 2</message>  
       <auteur>Auteur du message 2</auteur>  
       <date>Date creation du message 2</date>  
       </sujet>
  </racine>
 

Reply

Marsh Posté le 22-06-2005 à 22:36:09   

Reply

Marsh Posté le 23-06-2005 à 02:05:33    

Utilises DOMXML qui te permettra d'organiser ton fichier xml (ajouter un nouveau <sujet> donc) apres avoir récupéré tes affaires $_POST['message'] $_POST['auteur'] etc...
 
Ou bien sinon apres avoir récupéré les données du formulaires, tu récupéres aussi les données du fichier xml et t'en réecris un autre apres avoir tout réorganisé style dans un array.

Reply

Marsh Posté le 23-06-2005 à 09:16:19    

Ben ouais... Formulaire XHTML + insertion avec DOM (PHP5) ou DOMXML (PHP4)...

Reply

Marsh Posté le 23-06-2005 à 13:50:22    

voici ce que j'ai fait pour l'instant  
 
<?php
$doc = domxml_new_doc("1.0" );
$root = $doc->create_element("racine" );
$root = $doc->append_child($root);
 
$news = $doc->create_element("news" );
$news = $root->append_child($news);
 
$sujet = $doc->create_element("sujet" );
$sujet = $news->append_child($sujet);
$text = $doc->create_text_node("sujet de la news" );
$text = $sujet->append_child($text);
 
$auteur = $doc->create_element("auteur" );
$auteur = $news->append_child($auteur);
$text = $doc->create_text_node("voici l'auteur" );
$text = $auteur->append_child($text);
 
$message = $doc->create_element("message" );
$message = $news->append_child($message);
$text2 = $doc->create_text_node("voici le message de l'auteur" );
$text2 = $message->append_child($text2);
 
 
 
$doc->dump_file("test.xml", false, true);
?>  
 
 
il me creer un fichier xml du type  
 
<?xml version="1.0" ?>  
- <racine>
  - <news>
     <sujet>sujet de la news</sujet>  
     <auteur>voici l'auteur</auteur>  
     <message>voici le message de l'auteur</message>  
    </news>
  </racine>
 
 
comment je peut fair pour qui creer une autre news parce que ca génere que une news ca efface


Message édité par stealth35 le 23-06-2005 à 13:51:55
Reply

Marsh Posté le 23-06-2005 à 13:54:20    

Ca me paraît un peu logique, après avoir vu cette ligne :

Citation :

$doc = domxml_new_doc("1.0" );


 
Réfléchis 2 minutes ;)

Reply

Marsh Posté le 23-06-2005 à 14:08:27    

exacte j'avai pas fai gaffe  
 
je doit utilisé domxml_open_doc
ou une autre fonction ?

Reply

Marsh Posté le 23-06-2005 à 14:08:53    

Voilà : domxml_open_file

Reply

Marsh Posté le 23-06-2005 à 14:19:43    

je regardé le domxml_open_file
 
j'ai essaye avec  
 
<?php
if(!$dom = domxml_open_file("test.xml" )) {
echo "Erreur lors de l'analyse du document\n";
exit;
}
$root = $doc->document_element("racine" );
 
 
pour les premieres lignes  il me met
 
Fatal error: Call to a member function on a non-object in /var/www/free.fr/4/1/stealth35/tmp/news.php on line 6


Message édité par stealth35 le 23-06-2005 à 14:20:01
Reply

Marsh Posté le 23-06-2005 à 14:25:37    

C'est :

$root =& $doc->document_element();


Et il retournera la racine


Message édité par FlorentG le 23-06-2005 à 14:25:59
Reply

Marsh Posté le 23-06-2005 à 14:39:57    

il me dit la meme erreur
 
c'est bien comem ca que je devai fair ?
 
<?php
if(!$dom = domxml_open_file("test.xml" )) {
echo "Erreur lors de l'analyse du document\n";
exit;
}  
$root =& $doc->document_element();  
$root = $doc->append_child($root);
$news = $doc->create_element("news" );
$news = $root->append_child($news);
$sujet = $doc->create_element("sujet" );
$sujet = $news->append_child($sujet);
$text = $doc->create_text_node("sujet de la news" );
$text = $sujet->append_child($text);
$auteur = $doc->create_element("auteur" );
$auteur = $news->append_child($auteur);
$text = $doc->create_text_node("voici l'auteur" );
$text = $auteur->append_child($text);
$message = $doc->create_element("message" );
$message = $news->append_child($message);
$text2 = $doc->create_text_node("voici le message de l'auteur" );
$text2 = $message->append_child($text2);
$doc->dump_file("test.xml", false, true);
?>

Reply

Marsh Posté le 23-06-2005 à 14:39:57   

Reply

Marsh Posté le 23-06-2005 à 14:42:43    

T'as $doc->document_element(), alors que tu stocke le fichier dans $dom :D
 
Et sinon, pas besoin de faire $root = $doc->append_child($root); ;)

Reply

Marsh Posté le 23-06-2005 à 14:45:45    

voici g reussi je te remerci beaucoup ( dsl je suis debutant)
 
voici le code final  
 
<?php
if(!$doc = domxml_open_file("test.xml" )) {
echo "Erreur lors de l'analyse du document\n";
exit;
}  
$root =& $doc->document_element();  
$news = $doc->create_element("news" );
$news = $root->append_child($news);
$sujet = $doc->create_element("sujet" );
$sujet = $news->append_child($sujet);
$text = $doc->create_text_node("sujet de la news" );
$text = $sujet->append_child($text);
$auteur = $doc->create_element("auteur" );
$auteur = $news->append_child($auteur);
$text = $doc->create_text_node("voici l'auteur" );
$text = $auteur->append_child($text);
$message = $doc->create_element("message" );
$message = $news->append_child($message);
$text2 = $doc->create_text_node("voici le message de l'auteur" );
$text2 = $message->append_child($text2);
$doc->dump_file("test.xml", false, true);
?>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed