Formulaire php vers xml

hkahil Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   -  
hkahil Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   -
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

A voir également:

4 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Il faut utiliser du PHP.
Si tu ne connais pas, il y a le Siteduzero.com
Pour la gestion du XML, tu peux utiliser DOM.

https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql
https://www.php.net/manual/fr/book.dom.php
0
hkahil Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   7
 
je cherche un exemple , je trouves pas
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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.
0
hkahil Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   7
 
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
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
As-tu modifié le nom du champ du fichier ?
0
hkahil Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   7
 
le nom du fichier?
jai mis le code php dans un fichier teste.php et le code xml dans un fichier images.xml
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Alors ton serveur ne supporte par l'upload de fichiers, ou le poid de ton image dépasse la limite des fichiers envoyés.
0
hkahil Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   7
 
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?
0
hkahil Messages postés 197 Date d'inscription   Statut Membre Dernière intervention   7
 
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.?
0