Formulaire php vers xml

Bonjour,

je souhaiterais réaliser un mini formulaire texte +images que je souhaiterais insérer dans un fixier xml, quelqu'un pourrais me donner un exemple

je ne trouves pas d'exemple concret sur google
merci

4 réponses

  1. Le formulaire avec le script PHP :
    <?php
    if(!empty($_POST)) {
    	$texte = trim($_POST['texte']);
    	$image = $_FILES['image'];
    	
    	if(empty($texte)) {
    		echo 'Vous n\'avez pas spécifié de texte !';
    	} else {
    		if($image['error'] == 0) {
    			if(preg_match('#^image/#i',$image['type'])) {
    				$extension = pathinfo($image['name']);
    				$extension = $extension['extension'];
    				$nom = uniqid().'.'.$extension;
    				move_uploaded_file($image['tmp_name'], 'images/'.$nom);
    				
    				$dom = new DOMDocument('1.0','utf-8');
    				$dom->load('images.xml');
    				$root = $dom->getElementsByTagName('images')->item(0);
    				
    				$imageNode = $dom->createElement('image');
    				$texteNode = $dom->createElement('texte', $texte);
    				$nomNode = $dom->createElement('nom', $nom);
    				$imageNode->appendChild($texteNode);
    				$imageNode->appendChild($nomNode);
    				
    				$root->appendChild($imageNode);
    				$dom->save('images.xml');
    			} else {
    				echo 'Le fichier envoyé n\'est pas une image !';
    			}
    		} else {
    			echo 'Erreur lors de l\'envoie.';
    		}
    	}
    }
    ?>
    <form method="post" action="" enctype="multipart/data-form">
    	<p>
    		<label for="texte">Texte :</label>
    		<input type="text" name="texte" id="texte" />
    	</p>
    	<p>
    		<label for="image">Image :</label>
    		<input type="file" name="image" id="image" />
    	</p>
    	<p>
    		<input type="submit" value="Ajouter" />
    	</p>
    </form>
    Et place ceci dans le fichier « images.xml » :
    <?xml version="1.0" encoding="utf-8"?>
    <images></images>
    N'oublie pas de modifier le chmod.
    1. j'ai tester ton exemple voila ce que j'ai comme message:

      Notice: Undefined index: image in C:\wamp\www\testexml\teste.php on line 4
      Le fichier envoyé n'est pas une image !

      peut tu m'éclairer stp merci
    2. As-tu modifié le nom du champ du fichier ?
    3. le nom du fichier?
      jai mis le code php dans un fichier teste.php et le code xml dans un fichier images.xml
    4. Alors ton serveur ne supporte par l'upload de fichiers, ou le poid de ton image dépasse la limite des fichiers envoyés.
    5. salut
      j'ai tester avec plusieurs type d'images différentes , plusieurs tailles
      rien n'y fais toujours la meme erreur
      tu peux me trouver une solution alternative stp pour sauvegarder texte+image

      xml me parait trop compliquer pas d 'autres moyens?a part sql bdd et xml?
  2. salut f16 merci pour ton exemple ; je vais l'exploiter par contre
    mon but est de l'utiliser dans cet exemple pour pouvoir ajouter des noms de villes en plus et associer une image a chaque nom
    cest possible avec ton exemple? je créer un formulaire pour ajouter un nom et quand je l'enregistre il vas dans le xml et s'affiche a la suite du noms des villes sur le coté droit ?

    possible.?