Rechercher : dans
Par :

Formulaire avec champs obligatoires en php

Dernière réponse le 9 jui 2009 à 15:10:10 Pamela, le 8 jui 2009 à 15:15:37 
 Signaler ce message aux modérateurs

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 { }
?>

Configuration: Windows XP
Safari 530.5

Meilleures réponses pour « Formulaire avec champs obligatoires en php » dans :
Formulaires en ligne - Les champs de saisie VoirQuelles données saisir ? Comment dois-je saisir l'information L'organisation des champs de saisie Séparer les champs de saisie L'organisation des champs et des titres La longueur des champs Quelles données saisir ? Sur la plupart des...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

le père, le 8 jui 2009 à 15:44:14

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 :
http://fr.php.net/...

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)

Répondre à le père

2

le père, le 8 jui 2009 à 15:47:50

Il y a aussi ...Merci d\'avoir .. et ...Ordre d\'enseignement..
J'en oublie peut-être

Répondre à le père

3

Pamela, le 8 jui 2009 à 16:54:34

Merci bien!

Répondre à Pamela

4

Pamela, le 8 jui 2009 à 16:58:21

Mais alors comment on fait pour vérifier la condition "si le bouton submit a ete peser"? au lieu du if(Submit == true)

Merci!

Répondre à Pamela

5

le père, le 8 jui 2009 à 17:04:06

Ç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 :)

Répondre à le père

6

Pamela, le 8 jui 2009 à 17:25:00

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

Répondre à Pamela

7

le père, le 8 jui 2009 à 17:58:01

Il y a sûrement quelque chose que tu as mal recopié.
Peux-tu montrer à nouveau ton script, tel qu'il est maintenant ?

Répondre à le père

8

gryzzly, le 8 jui 2009 à 18:02:14

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.

Répondre à gryzzly

9

Pamela, le 8 jui 2009 à 18:59:28

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! :)

Répondre à Pamela

10

Pamela, le 8 jui 2009 à 19:17:27

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..

Répondre à Pamela

11

Pamela, le 8 jui 2009 à 19:53:55

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!

Répondre à Pamela

12

gryzzly, le 8 jui 2009 à 20:04:40

Quelle est l'adresse (url) complete que tu appeles lorsque tu travailles ? xxxxx/formulaire.php ... ce qui m'interesse, ce sont les xxxxx

Répondre à gryzzly

13

gryzzly, le 8 jui 2009 à 20:07:11

<input type="text" name="$_POST['prenom']"> est faux !

<input type="text" name="prenom" value="<?php if (isset($_POST['prenom'])) echo $_POST['prenom']; ?>" />

Répondre à gryzzly

14

Pamela, le 8 jui 2009 à 20:08:13

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

Répondre à Pamela

15

gryzzly, le 8 jui 2009 à 20:11:04

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

?

Répondre à gryzzly

16

Pamela, le 8 jui 2009 à 20:18:33

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

Répondre à Pamela

17

gryzzly, le 8 jui 2009 à 20:25:25

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...

Répondre à gryzzly

18

Pamela, le 8 jui 2009 à 20:36:40

Merci!
je viens de downlaoder wampserveur et je vais essayer avec ca!

Répondre à Pamela

19

Pamela, le 8 jui 2009 à 20:49:35

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

Répondre à Pamela
Collection CommentÇaMarche.net