Formulaire PHP qui alimente une page
Résolu
94uaehd
-
6 nov. 2009 à 20:43
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 -
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 -
A voir également:
- Formulaire PHP qui alimente une page
- Whatsapp formulaire opposition - Guide
- Supprimer une page word - Guide
- Formulaire de réclamation facebook - Guide
- Imprimer tableau excel sur une page - Guide
- Formulaire de reclamation instagram - Guide
13 réponses
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
6 nov. 2009 à 22:34
6 nov. 2009 à 22:34
Tu dois faire ça en PHP avec une base de données.
Quand je dis base de données, je ne penses pas qu'il soit nécessaire de sortir l'artillerie MySQL : autant faire ça avec un fichier XML (qui a, à la base, été créé pour stocker des données lui aussi).
Quand je dis base de données, je ne penses pas qu'il soit nécessaire de sortir l'artillerie MySQL : autant faire ça avec un fichier XML (qui a, à la base, été créé pour stocker des données lui aussi).
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 00:04
7 nov. 2009 à 00:04
Je t'ai codé ça avec DOM en PHP.
Pour commencer, crées un fichier "blagues.xml" avec ce texte :
Ensuite, renommes ta page avec l'extension .php et voilà le script qu'il faut utiliser pour lire :
PS: Pour enregistres en UTF-8 avec le Bloc-Notes : Fichiers → Enregistrer sous ... → dans la liste, choisis "Unicode"
PS 2 : Pour mettre les droits en écriture avec Filezilla, fait clic-droit puis "Attributs".
Pour commencer, crées un fichier "blagues.xml" avec ce texte :
<?xml version="1.0" encoding="UTF-8"?> <blagues> </blagues>Enregistres-le en UTF-8, envoyes-le sur le FTP et attributs lui les droits en écriture pour le serveur.
Ensuite, renommes ta page avec l'extension .php et voilà le script qu'il faut utiliser pour lire :
<?php /* -- Lecture des news -- */ $contenu = file_get_contents('blagues.xml'); $xml = new SimpleXMLElement($contenu); foreach($xml as $blague) { echo '<div class="blague">'."\n". "\t".'<p class="info">Blague déposée par <strong>'.htmlspecialchars(stripslashes($blague->auteur)).'</strong></p>'."\n". "\t".'<p class="texte">'.nl2br(htmlspecialchars(stripslashes($blague->texte))).'<br/>'."\n". '</div>'."\n\n"; } unset($xml);unset($contenu); ?>Et celui du formulaire :
<h3>Vous aussi, partagez vos blagues !</h3> <?php if(get_magic_quotes_gpc()) { $_POST = array_map('stripslashes', $_POST); $_GET = array_map('stripslashes', $_GET); $_COOKIE = array_map('stripslashes', $_COOKIE); } $form = '<form method="post" action=""> <p> <label for="auteur">Auteur</label> <input type="text" name="auteur" id="auteur" /> </p> <p> <label for="texte">La blague</label> <textarea name="texte" id="texte" cols="45" rows="8"></textarea> </p> <p> <input type="submit" value="Ajouter" /> <input type="hidden" name="submitBlague" value="true" /> </p> </form>'; if($_POST['submitBlague'] == "true") { $auteur = trim($_POST['auteur']); $texte = trim($_POST['texte']); if(empty($auteur) || empty($texte)) { echo 'Merci de remplir tous les champs !'."\n".$form; } else { /* Création de l'objet DOM et chargement du XML actuel */ $dom = new DOMDocument('1.0', 'UTF-8'); $dom->load('blagues.xml'); /* Création de la nouvelle blague */ $blagueTag = $dom->createElement('blague'); $auteurTag = $dom->createElement('auteur',$auteur); $texteTag = $dom->createElement('texte'); $texteCDATA = $dom->createCDATASection($texte); /* Assemblage */ $texteTag->appendChild($texteCDATA); $blagueTag->appendChild($auteurTag); $blagueTag->appendChild($texteTag); $blagues = $dom->getElementsByTagName('blagues'); $blagues = $blagues->item(0); $blagues->appendChild($blagueTag); /* Sauvegarde */ if($dom->save('blagues.xml')) { echo 'Blague ajoutée'; } else { echo 'Erreur lors de l\'insertion de la blague'; } unset($dom); } } else { echo $form; } ?>
PS: Pour enregistres en UTF-8 avec le Bloc-Notes : Fichiers → Enregistrer sous ... → dans la liste, choisis "Unicode"
PS 2 : Pour mettre les droits en écriture avec Filezilla, fait clic-droit puis "Attributs".
merci pour ton aide mais sur le formulaire de postage de blague il y a écrit
Notice: Undefined index: submitBlague in /home/revibrevet/public_html/Blagues/index.php on line 79. Et une fois qu'on a envoyé la blague il y écrit dans la partie pour voir les blagues
Warning: DOMDocument::load() [domdocument.load]: Start tag expected, '<' not found in /home/revibrevet/public_html/Blagues/blagues.xml, line: 1 in /home/revibrevet/public_html/Blagues/index.php on line 88 Fatal error: Call to a member function appendChild() on a non-object in /home/revibrevet/public_html/Blagues/index.php on line 102
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 14:05
7 nov. 2009 à 14:05
As-tu bien remplis le fichier "blagues.xml" avec ça ? :
<?xml version="1.0" encoding="UTF-8"?> <blagues> </blagues>Assures-toi de bien avoir PHP5 sur ton hébergeur (même si il le supporte, beaucoup mettent PHP4 par défaut). : pour le savoir, crées un fichier "phpinfo.php" et mets cette ligne dedans : <?php phpinfo(); ?>
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
7 nov. 2009 à 14:16
7 nov. 2009 à 14:16
oui, j'ai bien rempli le fichier blagues.xml et la version PHP est 5.3
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 14:22
7 nov. 2009 à 14:22
Bizarre, chez moi ça fonctionne et j'ai aussi PHP 5.3
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
7 nov. 2009 à 14:32
7 nov. 2009 à 14:32
est ce que tu peux jeter un coup d'oeuil au site (en affichant le code source).
NB: en attendant que le site soit prêt je l'héberge sur un autre site:
http://revibrevet.u7n.org/Blagues/
NB: en attendant que le site soit prêt je l'héberge sur un autre site:
http://revibrevet.u7n.org/Blagues/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
DON-ATELLO
Messages postés
17
Date d'inscription
vendredi 6 novembre 2009
Statut
Membre
Dernière intervention
7 novembre 2009
7 nov. 2009 à 14:36
7 nov. 2009 à 14:36
ok
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 14:52
7 nov. 2009 à 14:52
Le problème, c'est l'encodage de ton fichier .xml
Comme ta page est en ISO-8859-1 et pas en UTF-8 (il serait temps de passer à l'UTF-8, c'est bien mieux) :
1. Ouvres le bloc-notes et mets-y le code suivant :
Comme ta page est en ISO-8859-1 et pas en UTF-8 (il serait temps de passer à l'UTF-8, c'est bien mieux) :
1. Ouvres le bloc-notes et mets-y le code suivant :
<?xml version="1.0" encoding="UTF-8"?> <blagues> </blagues>2. Fait "Fichier → Enregistrer sous ...", nommes-le "blagues.xml" (mets le nom entre guillemées) et dans la liste "Encodage", choisis "ANSI". Ensuite, upload le nouveau fichier à la place de l'ancien
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
7 nov. 2009 à 14:59
7 nov. 2009 à 14:59
c'est fait mais regarde par toi même ça ne marche pas... ( http://revibrevet.u7n.org/Blagues/ )
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 15:03
7 nov. 2009 à 15:03
Oui.
Dans le long script qui permet l'insertion, trouve cette ligne :
Dans le long script qui permet l'insertion, trouve cette ligne :
$dom = new DOMDocument('1.0', 'UTF-8');Et remplaces-là par :
$dom = new DOMDocument('1.0', 'iso-8859-1');
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
7 nov. 2009 à 15:14
7 nov. 2009 à 15:14
c'est fait mais ça ne marche toujours pas...
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 15:20
7 nov. 2009 à 15:20
Arf, encore erreur de ma part (en te donnant le script, j'ai oublié de corrigé). Voilà le contenu du fichier .xml :
Et voilà le nouveau script qui permet l'insertion, il devrait faire disparaître la notice :
<?xml version="1.0" encoding="iso-8859-1"?>
<blagues>
</blagues>
En espérent que cette fois soit la bonne
Et voilà le nouveau script qui permet l'insertion, il devrait faire disparaître la notice :
<h3>Vous aussi, partagez vos blagues !</h3> <?php if(get_magic_quotes_gpc()) { $_POST = array_map('stripslashes', $_POST); $_GET = array_map('stripslashes', $_GET); $_COOKIE = array_map('stripslashes', $_COOKIE); } $form = '<form method="post" action=""> <p> <label for="auteur">Auteur</label> <input type="text" name="auteur" id="auteur" /> </p> <p> <label for="texte">La blague</label> <textarea name="texte" id="texte" cols="45" rows="8"></textarea> </p> <p> <input type="submit" value="Ajouter" /> <input type="hidden" name="submitBlague" value="true" /> </p> </form>'; if(isset($_POST['submitBlague'])) { if($_POST['submitBlague'] == "true") { $auteur = trim($_POST['auteur']); $texte = trim($_POST['texte']); if(empty($auteur) || empty($texte)) { echo 'Merci de remplir tous les champs !'."\n".$form; } else { /* Création de l'objet DOM et chargement du XML actuel */ $dom = new DOMDocument('1.0', 'iso-8859-1'); $dom->load('blagues.xml'); /* Création de la nouvelle blague */ $blagueTag = $dom->createElement('blague'); $auteurTag = $dom->createElement('auteur',$auteur); $texteTag = $dom->createElement('texte'); $texteCDATA = $dom->createCDATASection($texte); /* Assemblage */ $texteTag->appendChild($texteCDATA); $blagueTag->appendChild($auteurTag); $blagueTag->appendChild($texteTag); $blagues = $dom->getElementsByTagName('blagues'); $blagues = $blagues->item(0); $blagues->appendChild($blagueTag); /* Sauvegarde */ if($dom->save('blagues.xml')) { echo 'Blague ajoutée'; } else { echo 'Erreur lors de l\'insertion de la blague'; } unset($dom); } } else { echo $form; } } else { echo $form; } ?>
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
7 nov. 2009 à 15:24
7 nov. 2009 à 15:24
CA MARCHE !! Merci beaucoup !! c'est grâce à des gens comme toi que la Terre tourne rond...
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
>
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
7 nov. 2009 à 15:28
7 nov. 2009 à 15:28
J'ai essayé d'insérer une news et ça ne fonctionne plus ! =)
Ton fichier "blagues.xml" est vide ...
Ton fichier "blagues.xml" est vide ...
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
>
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
7 nov. 2009 à 15:39
7 nov. 2009 à 15:39
apparement ça marche pour la première blague mais après qu'elle soit insérée le fichier .xml devient vierge (donc ça marche pas pour la deuxième!)...
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 15:47
7 nov. 2009 à 15:47
Essaye sur un autre hébergeur parce que sur mon serveur dédié, ça a fonctionnait du premier coup.
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
7 nov. 2009 à 17:35
7 nov. 2009 à 17:35
j'ai essayé espacegratuit mais ça marche toujours pas (pourtant ils ont php 5 et php 6)
http://blaguespasdroles.eg2.fr
http://blaguespasdroles.eg2.fr
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 20:55
7 nov. 2009 à 20:55
Je pense que le problème provennait du fait que j'ai mis "iso-8859-1" quelque-part alors que c'était "ISO-8859-1" (bête erreur, j'ai toujours mis les encodages en majuscule ...).
Récapitulons :
Récapitulons :
blagues.php <h3>Partagez vos blagues !</h3> <?php if(get_magic_quotes_gpc()) { $_POST = array_map('stripslashes', $_POST); $_GET = array_map('stripslashes', $_GET); $_COOKIE = array_map('stripslashes', $_COOKIE); } $form = '<form method="post" action=""> <p> <label for="auteur">Auteur</label> <input type="text" name="auteur" id="auteur" /> </p> <p> <label for="texte">La blague</label> <textarea name="texte" id="texte" cols="45" rows="8"></textarea> </p> <p> <input type="submit" value="Ajouter" /> <input type="hidden" name="submitBlague" value="true" /> </p> </form>'; if(isset($_POST['submitBlague'])) { if($_POST['submitBlague'] == "true") { $auteur = trim($_POST['auteur']); $texte = trim($_POST['texte']); if(empty($auteur) || empty($texte)) { echo 'Merci de remplir tous les champs !'."\n".$form; } else { /* Création de l'objet DOM et chargement du XML actuel */ $dom = new DOMDocument('1.0', 'ISO-8859-1'); $dom->load('blagues.xml'); /* Création de la nouvelle blague */ $blagueTag = $dom->createElement('blague'); $auteurTag = $dom->createElement('auteur',$auteur); $texteTag = $dom->createElement('texte'); $texteCDATA = $dom->createCDATASection($texte); /* Assemblage */ $texteCDATA = $texteTag->appendChild($texteCDATA); $auteurTag = $blagueTag->appendChild($auteurTag); $texteTag = $blagueTag->appendChild($texteTag); $blagues = $dom->getElementsByTagName('blagues'); $blagues = $blagues->item(0); $blagueTag = $blagues->appendChild($blagueTag); /* Sauvegarde */ if($dom->save('blagues.xml')) { echo 'Blague ajoutée'; } else { echo 'Erreur lors de l\'insertion de la blague'; } unset($dom); } } else { echo $form; } } else { echo $form; } ?> <h3>Blagues déjà proposées</h3> <?php /* -- Lecture des news -- */ $contenu = file_get_contents('blagues.xml'); $xml = new SimpleXMLElement($contenu); foreach($xml as $blague) { echo '<div class="blague">'."\n". "\t".'<p class="info">Blague déposée par <strong>'.htmlspecialchars(stripslashes($blague->auteur)).'</strong></p>'."\n". "\t".'<p class="texte">'.nl2br(htmlspecialchars(stripslashes($blague->texte))).'<br/>'."\n". '</div>'."\n\n"; } unset($xml);unset($contenu); ?> blagues.xml <?xml version="1.0" encoding="ISO-8859-1"?> <blagues> </blagues>Tu peux voir en ligne → http://fighter-aircraft.com/blagues/blagues.php
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
7 nov. 2009 à 21:02
7 nov. 2009 à 21:02
j'ai essayé sur ton site mais ça marche pas quand tu essaye de mettre une blague...
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 21:10
7 nov. 2009 à 21:10
Oui, enfait c'est quand même un problème d'encodage mais pas une histoire de majuscule/minuscule.
Essaye, en mettant un message simple (avec au maximum des accents) tu verras ça fonctionne mais pas avec des "ç", "Ç", ...
Essaye, en mettant un message simple (avec au maximum des accents) tu verras ça fonctionne mais pas avec des "ç", "Ç", ...
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
7 nov. 2009 à 21:27
7 nov. 2009 à 21:27
Avec de l'UTF-8, ça fonctionne sans problème.
Ce qui justifie ma phrase de la réponse n°12 : “il serait temps de passer à l'UTF-8, c'est bien mieux”
Ce qui justifie ma phrase de la réponse n°12 : “il serait temps de passer à l'UTF-8, c'est bien mieux”
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
8 nov. 2009 à 13:35
8 nov. 2009 à 13:35
et comment on fait pour passer à l'UTF-8 ??
avion-f16
Messages postés
19252
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
10 février 2025
4 507
>
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
8 nov. 2009 à 13:38
8 nov. 2009 à 13:38
1. Sur ta page, modifie dans une balise meta "ISO-8859-1" par "UTF-8".
2. Réenregistres ta page en Unicode avec le Bloc-Notes
3. Trouve la ligne "$dom = new DOMDocument('1.0', 'ISO-8859-1');" et remplaces là par "$dom = new DOMDocument('1.0', 'UTF-8');"
4. Ouvres ton XML et remplaces "ISO-8859-1" par "UTF-8" puis réenregistres-le en Unicode
2. Réenregistres ta page en Unicode avec le Bloc-Notes
3. Trouve la ligne "$dom = new DOMDocument('1.0', 'ISO-8859-1');" et remplaces là par "$dom = new DOMDocument('1.0', 'UTF-8');"
4. Ouvres ton XML et remplaces "ISO-8859-1" par "UTF-8" puis réenregistres-le en Unicode
94uaehd
Messages postés
49
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
18 décembre 2010
3
7 nov. 2009 à 21:30
7 nov. 2009 à 21:30
ça marche !! merci
6 nov. 2009 à 22:59