Formulaire avec champs obligatoires en php

Résolu
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

24 réponses

  1. 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
    1. CA MARCHE!!!! :D :D :D

      Merci vraiment pour votre aide a tous! ca ma bcp aider! :)
      0
      1. Ok maintenant, ca naffiche plus derreur mais une page blanche..cest mieux hahahah mais cest pas tout a fait ca :P

        Est-ce que toi quand tu louvre ca affiche quelque chose?
        0
        1. Scuse: dans le echo cest :
          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']. '" ';
          0
          1. Salut!

            En fait, non jai rien changer avant le echo..cest encore la meme chose! jte copie colle mon code:
            <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>

            peut etre que le probleme cest le serveur ou qqch comme ca...jutilise wampserver et ca dit : server online donc je pense que cest supposer fonctionner.

            Quand tu di que toi tu la fait, quest ce qui a ete afficher? est-ce que quand on ne rempli pas un des champs obligatoires, ca afffiche le message qui di que ca ne marche pas?

            Merci :)
            0
            1. 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 ?
              0
              1. 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
                0
                1. Merci!
                  je viens de downlaoder wampserveur et je vais essayer avec ca!
                  0
                  1. Contributeur
                    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...
                    0
                    1. 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
                      0
                      1. Contributeur
                        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

                        ?
                        0
                        1. 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
                          0
                          1. Contributeur
                            <input type="text" name="$_POST['prenom']"> est faux !

                            <input type="text" name="prenom" value="<?php if (isset($_POST['prenom'])) echo $_POST['prenom']; ?>" />
                            0
                            1. Contributeur
                              Quelle est l'adresse (url) complete que tu appeles lorsque tu travailles ? xxxxx/formulaire.php ... ce qui m'interesse, ce sont les xxxxx
                              0
                              1. 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!
                                0
                                1. 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..
                                  0
                                  1. Contributeur
                                    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.
                                    0
                                    1. Il y a sûrement quelque chose que tu as mal recopié.
                                      Peux-tu montrer à nouveau ton script, tel qu'il est maintenant ?
                                      0
                                      1. 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
                                        0
                                        1. Ç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 :)
                                          0
                                          • 1
                                          • 2