Formulaire avec champs obligatoires en php [Résolu/Fermé]

Signaler
-
 Pamela -
Bonjour tout le monde!:)

voila, je suis en train d'essayer de faire un formulaire avec des champs obligatoires en php. Or, kan je l'affiche (localement), la page en php s'ouvre mais les variables ne sont pas remplacees par leurs valeurs (comme par exemple le nom de la personne). Ca apparait exactement ce qui est ecrit dans le echo mais sans aller chercher les variables que les gens ont rentrees. Et aussi, ca ne tient pas compte du faits que les champs restent vides desfois. On dirait que c ne rentre pas dans la boucle du 3eme "if".

Je vous joins donc mon code de mon fichier en php. Si vous pouvez m'aider, ca serait genial!
Merci davance!


<?php
if('Submit' == true)
{
if(isset($_POST['prenom']) && isset($_POST['nom']) && isset($_POST['telephone']) && isset($_POST['courriel']) && isset($_POST['organisme']) && isset($_POST['fonction']) && isset($_POST['ordre']))
{
if(!empty($_POST['prenom']) && !empty($_POST['nom']) && !empty($_POST['telephone']) && !empty($_POST['courriel']) && !empty($_POST['organisme']) && !empty($_POST['fonction']) && !empty($_POST['ordre']))
{
echo '<div> Merci d'avoir rempli le formulaire! <br>
Vos informations sont les suivantes: <br>
Prénom: " .$_POST['prenom']. " <br>
Nom: " .$_POST['nom']. " <br>
Téléphone (bureau): " .$_POST['telephone']. " <br>
Courriel: " .$_POST['courriel']. " <br>
Organisme: " .$_POST['organisme']. " <br>
Fonction: " .$_POST['fonction']. " <br>
Ordre d'enseignement: " .$_POST['ordre']. " ';
}
else
{
echo '<div> Veuillez remplir tous les champs marqués d'un astérix (*) afin de pouvoir continuer';
}
}
else
{
echo '<div> Les variables n'existent pas';
}
}
else { }
?>

24 réponses

Voila mon code php en ce moment:

<html>
<head>
<title>Le formulaire en php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="feuilleDeStyle1.css" type="text/css">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<?php
if (isset($_POST['Submit']))
{
if(isset($_POST['prenom']) && isset($_POST['nom']) && isset($_POST['telephone']) && isset($_POST['courriel']) && isset($_POST['organisme']) && isset($_POST['fonction']) && isset($_POST['ordre']))
{
if(!empty($_POST['prenom']) && !empty($_POST['nom']) && !empty($_POST['telephone']) && !empty($_POST['courriel']) && !empty($_POST['organisme']) && !empty($_POST['fonction']) && !empty($_POST['ordre']))
{
echo '<div> Merci d\'avoir rempli le formulaire! <br>
Vos informations sont les suivantes: <br>
Prénom: "' .$_POST['prenom']. '" <br>
Nom: "' .$_POST['nom']. '" <br>
Téléphone (bureau): "' .$_POST['telephone']. '" <br>
Courriel: "' .$_POST['courriel']. '" <br>
Organisme: "' .$_POST['organisme']. '" <br>
Fonction: "' .$_POST['fonction']. '" <br>
Ordre d\'enseignement: "' .$_POST['ordre']. '" ';
}
else
{
echo '<div> Veuillez remplir tous les champs marqués d\'une astérisque (*) afin de pouvoir continuer';
}
}
else
{
echo '<div> Les variables n\'existent pas';
}
}
else { }
?>

</body>
</html>
--------------------------------------------------------------------------------------------------
est-ce que tu veux aussi mon fichier html?


Merci! :)
et merci aussi a gryzzly! :)
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Bonjour

if('Submit' == true)
Ce test est toujours vrai. 'Submit' n'est pas une variable, c'est le texte 'Submit' et le PHP l'assimile à vrai. Tel qu'il est écrit, ce test ne sert à rien

echo echo '<div> Merci d'avoir ... Visiblement, tu ne connais pas les règles d'écritures des chaines en PHP. C'est pourtant le B.A. BA, tu devrais commencer par là, tu gagnerais beaucoup de temps par la suite :
https://www.php.net/manual/fr/language.types.string.php#language.types.string.syntax.single

echo '<div> Merci d'avoir rempli le formulaire! <br>
Vos informations sont les suivantes: <br>
Prénom: "' .$_POST['prenom']. '" <br>
Nom: "' .$_POST['nom']. '" <br>
Téléphone (bureau): "' .$_POST['telephone']. '" <br>
Courriel: "' .$_POST['courriel']. '" <br>
Organisme: "' .$_POST['organisme']. '" <br>
Fonction: "' .$_POST['fonction']. '" <br>
Ordre d'enseignement: "' .$_POST['ordre']. '" '; 

On dirait que c ne rentre pas dans la boucle du 3eme "if". Il n'y a pas de boucle dans ton if, on ne risque pas d'y entrer. Je suppose que tu veux dire qu'on affiche les champs même si certains sont vides. Là je ne vois pas pourquoi, sauf peut-être qu'ils ne sont pas vides mais qu'il y a des espaces

Quand tu mets une apostrophe dans une chaîne qui est entourée d'opostrophes, il faut précéder d'un \ sinon elle est prise pour la fin de la chaîne : ...marqués d\'un.. et ...variables n\'existent ...

Enfin, un astérisque (signe *) n'est pas la même chose qu'Astérix (le gaulois)
Il y a aussi ...Merci d\'avoir .. et ...Ordre d\'enseignement..
J'en oublie peut-être
Mais alors comment on fait pour vérifier la condition "si le bouton submit a ete peser"? au lieu du if(Submit == true)

Merci!
Ça dépend de ton formulaire. Tu as dû donner un nom au bouton submit, admettons que ce soit 'Submit'
<INPUT type="submit" name="Submit" />

Alors tu le testes comme les autres variables de ton formulaire :
if (isset($_POST['Submit'])) { ...
En principe, tu te contentes de tester son existence (isset) mais si tu es paranoïaque tu peux aussi tester sa valeur :)
Merci!

mais kan je l'exécute, ça ne marche pas. En fait ça fait encore la même chose qu'avant..
Voici ce que je vois:

Vos informations sont les suivantes:
Prénom: " ' .$_POST['prenom']. ' "
Nom: " ' .$_POST['nom']. ' "
Téléphone (bureau): " ' .$_POST['telephone']. ' "
Courriel: " ' .$_POST['courriel']. ' "
Organisme: " ' .$_POST['organisme']. ' "
Fonction: " ' .$_POST['fonction']. ' "
Ordre d\'enseignement: " ' .$_POST['ordre']. ' " '; } else { echo '
Veuillez remplir tous les champs marqués d\'une astérisque (*) afin de pouvoir continuer'; } } else { echo '
Les variables n\'existent pas'; } } else { } ?>


Les $_POST[blabla] ne sont pas remplacés par la valeur que j'entre dans les champs

Merci
Il y a sûrement quelque chose que tu as mal recopié.
Peux-tu montrer à nouveau ton script, tel qu'il est maintenant ?
Messages postés
4606
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 284
Ca devrait aller mieux avec ça :

<?php

echo "<div> Merci d'avoir rempli le formulaire! <br>"
	."Vos informations sont les suivantes: <br>"
	."Prénom: " .$_POST['prenom']. " <br>"
	."Nom: " .$_POST['nom']. " <br>"
	."Téléphone (bureau): " .$_POST['telephone']. " <br>"
	."Courriel: " .$_POST['courriel']. " <br>"
	."Organisme: " .$_POST['organisme']. " <br>"
	."Fonction: " .$_POST['fonction']. " <br>"
	."Ordre d'enseignement: " .$_POST['ordre']; 

?>


Tu devrais utiliser un éditeur de texte qui fait de la colloration syntaxique, ou mieux, avec un interpréteur PHP. Tu verrais immédiatement tes erreurs de syntaxe.
Gryzzly, ca n'a pas changé le résultat qui apparaît quand je l'execute..
En fait, 1 fois sur 2, il mapparait tout le code et non juste une partie. Donc 1 fois sur deux, il mapparait ceci:

<html>
<head>
<title>Le formulaire en php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="feuilleDeStyle1.css" type="text/css">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<?php
if (isset($_POST['Submit']))
{
if(isset($_POST['prenom']) && isset($_POST['nom']) && isset($_POST['telephone']) && isset($_POST['courriel']) && isset($_POST['organisme']) && isset($_POST['fonction']) && isset($_POST['ordre']))
{
if(!empty($_POST['prenom']) && !empty($_POST['nom']) && !empty($_POST['telephone']) && !empty($_POST['courriel']) && !empty($_POST['organisme']) && !empty($_POST['fonction']) && !empty($_POST['ordre']))
{
echo "<div> Merci d'avoir rempli le formulaire! <br>"
."Vos informations sont les suivantes: <br>"
."Prénom: " .$_POST['prenom']. " <br>"
."Nom: " .$_POST['nom']. " <br>"
."Téléphone (bureau): " .$_POST['telephone']. " <br>"
."Courriel: " .$_POST['courriel']. " <br>"
."Organisme: " .$_POST['organisme']. " <br>"
."Fonction: " .$_POST['fonction']. " <br>"
."Ordre d'enseignement: " .$_POST['ordre'];
}
else
{
echo '<div> Veuillez remplir tous les champs marqués d\'une astérisque (*) afin de pouvoir continuer';
}
}
else
{
echo '<div> Les variables n\'existent pas';
}
}
else { }
?>

</body>
</html>

Et lautre fois, ca mapparait mtn ca:

" ."Prénom: " .$_POST['prenom']. "
" ."Nom: " .$_POST['nom']. "
" ."Téléphone (bureau): " .$_POST['telephone']. "
" ."Courriel: " .$_POST['courriel']. "
" ."Organisme: " .$_POST['organisme']. "
" ."Fonction: " .$_POST['fonction']. "
" ."Ordre d'enseignement: " .$_POST['ordre']; } else { echo '
Veuillez remplir tous les champs marqués d\'une astérisque (*) afin de pouvoir continuer'; } } else { echo '
Les variables n\'existent pas'; } } else { } ?>

Cest vrm bizarre..
Peut etre mon probleme vient du fait que le script php (formulaire.php) ne reconnait pas mes variables ($_POST[]...)

dans mon code html, voici comment je les identifie dans les zone de texte(text fields);
par exemple, pour le champ "prenom":
<input type="text" name="$_POST['prenom']">

et voici la syntaxe de mon formulaire: (situé dans mon fichier .html)
<form name="formulaire" method="post" action="formulaire.php">

Peut etre que ca vous eclairera +
Merci bcp!
Messages postés
4606
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 284
Quelle est l'adresse (url) complete que tu appeles lorsque tu travailles ? xxxxx/formulaire.php ... ce qui m'interesse, ce sont les xxxxx
Messages postés
4606
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 284
<input type="text" name="$_POST['prenom']"> est faux !

<input type="text" name="prenom" value="<?php if (isset($_POST['prenom'])) echo $_POST['prenom']; ?>" />
Tu veux dire comme dans quel répertoire il se trouve sur mon ordi?

C:\Program Files\Macromedia\Dreamweaver 4\Tutorial\Compass_Site\formulaire.php
Messages postés
4606
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 284
oui et non.
Ce que je veux, c'est l'url que tu appelles quand tu fais tes tests.

Ici, l'url de ce post, c'est : http://www.commentcamarche.net/forum/affich 13261817 formulaire avec champs obligatoires en php?#14

J'aimerais savoir si lorsque tu travailles tu utilises la bonne adresse ....

Elle ressemble a quoi ton url ?

à quelque chose comme

1) httx://localhost/script.php ou httx://127.0.0.1/script.php ....

ou alors

2) C:\blabla\dossier\script.php

?
ummm kan je veux voir kel est le resultat du code, jouvre internet explorer et je vais dans ouvrir et je choisi le fichier et donc mon url est :
C:\Program Files\Macromedia\Dreamweaver 4\Tutorial\Compass_Site\Inscription.html
Je lai pas heberger sur un site (je suis pas sure keske ca veut dire exactement mais autre ke localement, jai pas acces aux pages)

et puis kan jai changer les "name" de mes input, ca donne plus la meme chose, kan jouvre la page, ca ecrit :
<?php if (isset($_POST['nom'])) echo $_POST['nom']; ?> dans le champs de texte comme si cetait par defaut

p.s merci pour ton aide
Messages postés
4606
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 284
Et bien tu as tout faux. C'est normal que ca ne fonctionne pas.

Le langage PHP est un langage SERVEUR. Il faut donc un SERVEUR avec PHP installé pour que le code soit interprété, sinon, c'est le code source qui s'affiche.

Installes un serveur, je te conseilles wampserveur sous windows.
Tu mets ton site dans le répertoire WWW/mon_site/ de wamp. et tu appelles l'adresse http://localhost/mon_site/script.php

Tu verras, ça marche mieux quand on installe tout ce qu'il faut ...

Pour ce qui s'affiche par défaut, c'est normal ... c'est pour réafficher le contenu. SI tu veux pas de contenu, tu enleves le php.

Et tu devrais passer un peu de temps à lire de la documentation sur php...
Merci!
je viens de downlaoder wampserveur et je vais essayer avec ca!
Re-salut :)

Maintenant que jai mis ca sur le site ayant ladresse: http://localhost/colloque/formulaire.php ils me mettent que jai une erreur a la ligne 16 de mon code qui est:
echo '"<div> Merci d'avoir rempli le formulaire! "<br>
Vos informations sont les suivantes: <br>
Prénom: "' .$_POST['prenom']. '" <br>
Nom: "' .$_POST['nom']. '" <br>
Téléphone (bureau): "' .$_POST['telephone']. '" <br>
Courriel: "' .$_POST['courriel']. '" <br>
Organisme: "' .$_POST['organisme']. '" <br>
Fonction: "' .$_POST['fonction']. '" <br>
Ordre d'enseignement: "' .$_POST['ordre']. '" ';
Jai aussi essayee avec ta version qui est:
echo "<div> Merci d'avoir rempli le formulaire! <br>"
."Vos informations sont les suivantes: <br>"
."Prénom: " .$_POST['prenom']. " <br>"
."Nom: " .$_POST['nom']. " <br>"
."Téléphone (bureau): " .$_POST['telephone']. " <br>"
."Courriel: " .$_POST['courriel']. " <br>"
."Organisme: " .$_POST['organisme']. " <br>"
."Fonction: " .$_POST['fonction']. " <br>"
."Ordre d'enseignement: " .$_POST['ordre'];

et ca donne la meme erreur:
Parse error: parse error, expecting `','' or `';'' in C:\wamp\www\colloque\formulaire.php on line 16
Si tu avais bien mis d\'avoir et non pas d'avoir, (ligne 16) tu n'aurais pas cette erreur. Il faut aussi mettre d\'enseignement et non pas d'enseignement, pour ma version (voir message 2). Je l'ai fait et ça marche

Ce qui est bizarre, c'est que tu l'aies eu aussi avec la version de Grizzly. C'est juste une façon un peu différente d'écrire la même chose, mais comme sa version évite l'utilisation du \ avant les apostrophes, il n'y a pas de raison qu'elle ne marche pas.
À moins que tu aies aussi modifié quelque chose AVANT le echo et que ce soit en fait la ligne précédente qui cause le problème ?