IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Générer un fichier XML a partir d'une formulaire PHP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 275
    Points : 76
    Points
    76
    Par défaut Générer un fichier XML a partir d'une formulaire PHP
    Bonjour, j'aimerais généré un fichier xml pour chaque validation et certaine information vienne de phpmyadmin voici le code html et php suivi du code xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<title>Description de la conference </title>
    	<link rel="stylesheet" href="">
    </head><body>
    <form action="recupdonee.php" method="post" >
    <fieldset>
    <legend>Description de la conference</legend>
    	<center><p><label for="Titre">Titre : <input name="Titre"  type="text"></label></P>
    	<p><label for="Sujet">Sujet : <input name="Sujet"type="text"></label></p></center>
    </fieldset><fieldset>
    	<legend>Niveaux</legend>
    	<center>
    	<?php
    $bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
    $req = $bdd-> query ("SELECT * FROM niveau");
    while($resultatNiv = $req->fetch())
    {
    echo "<input type='radio' value='".$resultatNiv['NIVEAU']."' name='niveau'>".$resultatNiv['NIVEAU']."&nbsp&nbsp&nbsp";
    }
    ?>
    </center></fieldset><fieldset>
    	<legend>Outils et Technologie Utilise</legend>
    	<center>
    	<?php
    $bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
    $req = $bdd-> query ("SELECT * FROM technologie");
    while($resultatTech = $req->fetch())
    {
    echo "<input type='checkbox' value='".$resultatTech['NOMTECHNO']."' name='niveau'>".$resultatTech['NOMTECHNO']."&nbsp&nbsp&nbsp";
    }
    ?>
    </center></fieldset><fieldset>
    	<legend>A destination</legend>
    	<center>
    		<?php
    $bdd = new PDO("mysql:host=localhost;dbname=techdays;charset=utf8", "root", "");
    $req = $bdd-> query ("SELECT * FROM metier");
    while($resultatMetier = $req->fetch())
    {
    echo "<input type='checkbox' value='".$resultatMetier['LIBELLEMETIER']."' name='niveau'>".$resultatMetier['LIBELLEMETIER']."&nbsp&nbsp&nbsp";
    }
    ?>
    </center></fieldset><fieldset>
    	<legend>Vos Coordonnees</legend>
    	<center><p><label for="Nom">Nom :<input name="Nom" type="text" </label></P>
    	<p><label for="Prenom">Prenom :<input name="Prenom" type="text"></label></p>
    	<p><label for="Mail">Mail :<input name="Mail" type="text"></label></P>
    	<p><label for="Twitter">Twitter :<input name="Twitter" type="text"></label></p>
    	<p><label for="Facebook">Facebook :<input name="Facebook" type="text"></label></P>
    	<p><label for="Entreprise">Entreprise :<input name="Entreprise" type="text"></label></p></center>
    </fieldset><fieldset>
    	<legend>Entreprise</legend>
    		<center><p><label for="Entreprise_c">Entreprise :<input name="Entreprise_c" type="text"></label>
    	 <input type="radio" name="Microsoft" value="PM" > Partenaire Microsoft<br></P></center>
    </fieldset>
     <center><input type="Submit" value="Envoyer" name="Envoyer"/>
     <input type="reset" value="Annuler">
     </center>
     </form>
    </body>
    </html>
    xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    	$today 			 = date("m.d.y");
        $Titre           = $_POST['Titre'];
    	$Sujet           = $_POST['Sujet'];
    	$Niveaux         = $_POST['Niveaux'];	
    	$Outils_et_techn = $_POST['Outils_et_techn'];
    	$A_destination   = $_POST['A_destination'];
    	$Preciser        = $_POST['Preciser'];
    	$Nom             = $_POST['Nom'];
    	$Prenom          = $_POST['Prenom'];
    	$Mail            = $_POST['Mail'];
    	$Twitter         = $_POST['Twitter'];
    	$Facebook        = $_POST['Facebook'];
    	$Entreprise      = $_POST['Entreprise'];
    	$Entreprise_c    = $_POST['Entreprise_c'];
    	$Microsoft       = $_POST['Microsoft'];
     
    	echo $Titre;			echo "<br>";
    	echo $Sujet;			echo "<br>";
    	echo $Niveaux;			echo "<br>";	
    	echo $Outils_et_techn;	echo "<br>";
    	echo $A_destination;	echo "<br>";
    	echo $Preciser;			echo "<br>";
    	echo $Nom;				echo "<br>";
    	echo $Prenom;			echo "<br>";
    	echo $Mail;				echo "<br>";
    	echo $Twitter; 			echo "<br>";
    	echo $Facebook;			echo "<br>";
    	echo $Entreprise;		echo "<br>";
    	echo $Entreprise_c;		echo "<br>";
    	echo $Microsoft;
     
    $record-fopen("$today, $Titre.xml", "a+");
    fwrite($record, "<titre>".$Titre."<Sujet>".$Sujet."<Niveaux>".$Niveaux."<Outils_et_techn".$Outils_et_techn."<A_destination>"
    	.$A_destination."<Preciser".$Preciser."<Nom>".$Nom."<Prenom>".$Prenom."<Mail>".$Mail."<Twitter>"
    	.$Twitter."<Facebook>".$Facebook."<Entreprise>".$Entreprise."<Entreprise>".$Entreprise_c
    	);
     
    fclose($record);
    ?>
    merci de votre attention

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    et qu'est ce qui ne fonctionne pas ou qu'est ce que tu n'arrive pas à faire ou souhaiterais modifier? car là tu à un code qui réalise ce que tu indique ... créer un fichier xml avec des données via php.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Pour créer un fichier XML en PHP, il y a deux méthodes :
    - la méthode "à la main" (ou méthode du bourrin) qui est celle que tu as appliquée : on construit le fichier comme un fichier texte, en écrivant chaque balise à la main. C'est la plus facile, mais aussi celle avec laquelle tu as le plus de chances d'avoir un fichier invalide à la sortie.
    - la méthode avec outil : on utilise quelque chose étudié pour comme DomDocument ou SimpleXML qui va te permettre d'avoir un fichier correctement construit et valide.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Il y a également XMLWriter qui permet de construire du XML facilement de manière assez légère, malheureusement, cette API est plutôt mal documentée sur le manuel PHP (ou alors je n'ai pas trouver le bon gros exemple bien illustratif) mais avec une petite recherche tu trouveras des exemples sur le web. L'idéal me semble de créer une classe héritant de XMLWriter pour y ajouter des méthodes simples pour ce que tu souhaites faire, mais tu peux aussi utiliser la classe XMLWriter directement.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 275
    Points : 76
    Points
    76
    Par défaut
    bonjour après de nombreux essaie j'obtient moins d'erreur mais je ne sais pas ou les situé voici les erreur en photo puis le code
    Nom : erreur2.png
Affichages : 1001
Taille : 29,4 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?php
    	$today 			 = date("m.d.y");
        $Titre           = $_POST['Titre'];
    	$Sujet           = $_POST['Sujet'];
    	$niveau         = $_POST['niveau'];	
    	$technologie 	= $_POST['technologie'];
    	$metier   		= $_POST['metier'];
    	$Nom             = $_POST['Nom'];
    	$Prenom          = $_POST['Prenom'];
    	$Mail            = $_POST['Mail'];
    	$Twitter         = $_POST['Twitter'];
    	$Facebook        = $_POST['Facebook'];
    	$Entreprise      = $_POST['Entreprise'];
    	$Entreprise_c    = $_POST['Entreprise_c'];
    	$Microsoft       = ['Microsoft'];
     
    $Titre;"<br>";
    $Sujet;"<br>";
    $niveau;"<br>";	
    $Technologie;"<br>";
    $Metier;"<br>";
    $Nom;"<br>";
    $Prenom;"<br>";
    $Mail;"<br>";
    $Twitter;"<br>";
    $Facebook;"<br>";
    $Entreprise;"<br>";
    $Entreprise_c;"<br>";
    $microsoft;
     
    $record=fopen("$today, $Titre.xml", "a+");
    fwrite($record, 
    '<?xml version="1.0" encoding="UTF-8"?>',
        "<data>",
    	"<Titre>$Titre</Titre>",
    	"<Sujet>$Sujet</Sujet>",
    	"<niveau>$niveau</niveau>",
    	"<technologie>$technologie</technologie>",
    	"<metier>$metier</metier>",
    	"<Nom>$Nom</Nom>",
    	"<Prenom>$Prenom</Prenom>",
    	"<Mail>$Mail</Mail>",
    	"<Twitter>$Twitter.</Twitter>",
    	"<Facebook>$Facebook</Facebook>",
    	"<Entreprise>$Entreprise</Entreprise>",
    	"<Entreprise_c>$Entreprise_c</Entreprise_c>",
    	"<Microsoft>$Microsoft</Microsoft>",
    	"</data>"
    	);
     
    fclose($record);
    ?>
    Merci

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Alors "Array to string conversion" veut dire que tu transformes un tableau en chaine. En général, ça va donner comme résultat "Array", ce qui ne sert pas à grand chose. La question à se poser, c'est est-ce que c'est normal d'avoir un tableau à cet endroit ? Vérifie les variables utilisées lignes 39 et 47 : avec quoi sont-elles initialisées ?

    Si c'est normal, il faut que tu ajoutes une transformation de la variable qui est un tableau en chaine. Tu peux par exemple utiliser implode qui va concaténer tous les éléments du tableau en une chaine, ou faire une boucle sur le tableau pour afficher chaque élément.
    Si non, il faut que tu trouves pourquoi c'est un tableau et corriger le code pour obtenir une chaine.

    Pour l'erreur sur fwrite, il faut que tu concatènes tous les éléments de façon à avoir une seule grande chaine à passer en paramètre. L'opération de concaténation est le point "." et non la virgule :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    fwrite($record, 
    '<?xml version="1.0" encoding="UTF-8"?>'.
        "<data>".
    	"<Titre>$Titre</Titre>".
    	"<Sujet>$Sujet</Sujet>".
    	"<niveau>$niveau</niveau>".
    	"<technologie>$technologie</technologie>".
    	"<metier>$metier</metier>".
    	"<Nom>$Nom</Nom>".
    	"<Prenom>$Prenom</Prenom>".
    	"<Mail>$Mail</Mail>".
    	"<Twitter>$Twitter.</Twitter>".
    	"<Facebook>$Facebook</Facebook>".
    	"<Entreprise>$Entreprise</Entreprise>".
    	"<Entreprise_c>$Entreprise_c</Entreprise_c>".
    	"<Microsoft>$Microsoft</Microsoft>".
    	"</data>"
    	);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    1- N'instancie pas plusieurs fois un PDO, utilise le premier pour chaque requête.
    2- Le name de tes radio, checkbox générés sont tous 'niveau', erreur de copier coller peut-être. Pas de metier ni technologie.
    3-
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="radio" name="Microsoft" value="PM" >
    Tu n'as qu'un seul élément radio avec le name Microsoft, une fois tu cliques, impossible de le désélectionner sans faire un reset du formulaire qui perdra toute modification. Je pense que tu veux utiliser un checkbox.

    A+.

Discussions similaires

  1. [MySQL] Gènèration d'un fichier XML a partir d'une formulaire PHP
    Par bitbot dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 28/07/2010, 17h49
  2. generé un fichier xml a partir d'une table oracle
    Par sws2008 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 25/04/2008, 13h02
  3. Java/XML generer un fichier XML a partir d'une Servlet
    Par fabricew59 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 03/04/2007, 11h43
  4. [MySQL] Générer un fichier XML a partir de certain champs
    Par Joe Le Mort dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/11/2006, 12h56
  5. Réponses: 4
    Dernier message: 10/07/2006, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo