Vérification formulaire PHP

Résolu
Bonjour,

Je désirerais faire une vérification d'un formulaire en PHP. Je m'explique : j'ai deux fichiers, formulaire.php et traitement.php
Comme vous le devinez, formulaire.php envoie les informations des champs remplis à traitement.php.
Seulement voila : dans formulaire.php, je souhaiterais établir un script qui vérifie si un champs obligatoire a été rempli, et si ce n'est pas le cas, afficher un message d'erreur juste à coté du champ... Enfin, si l'utilisateur a bien rempli tous les champs obligatoires, les données sont transmises à traitement.php

Voici le code de formulaire.php :

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="traitement.php">
<p>
Nom * :
<input type="text" name="nom" id="textfield" />
<?php
if(isset($_REQUEST["envoyer"]))
{
if(!isset($_REQUEST["nom"]) || $_REQUEST["nom"]=="")
{
die ("Ce champ doit être renseigné.");
}
}
?>
</p>
<p>
Prénom * :
<input type="text" name="prenom" id="textfield" />
<?php
if(isset($_REQUEST["envoyer"]))
{
if(!isset($_REQUEST["prenom"]) || $_REQUEST["prenom"]=="")
{
die ("Ce champ doit être renseigné.");
}
}
?>
</p>
<p>
<input type="submit" name="envoyer" id="button" value="Envoyer" />
</p>
</form>
</body>
</html>

Merci d'avance pour votre aide !!

11 réponses

  1. bonsoir voila un bout de code qui peut t'aider : ( simple avec un code claire )

    if(isset($_POST["envoyer"]))
    {

    if(!isset($_POST["nom"]) || $_POST["nom"]=="")
    {
    $nom = "Ce champ doit être renseigné.";
    }
    elseif(!isset($_POST["prenom"]) || $_POST["prenom"]=="")
    {
    $prenom = "Ce champ doit être renseigné.";
    }
    else {

    header('location:traitement.php');

    }

    }

    ~~~~~~~~~~
    by Muska92
    http://www.easy-ocas.com
    6
    1. Bonsoir Soadmystic,

      Non je préfère le faire en PHP, au cas où l'utilisateur désactive le JS...
      2
      1. tu veux pas faire ça en javascript c'est (pour moi) pour approprié ?
        1
        1. bon bah j'ai trouvé :

          <?php
          if(isset($_POST["envoyer"])) {

          if(!isset($_POST["nom"]) || $_POST["nom"]=="") {
          $nom = "Ce champ doit être renseigné.";
          } else {
          $nom = "";
          }

          if(!isset($_POST["prenom"]) || $_POST["prenom"]=="") {
          $prenom = "Ce champ doit être renseigné.";
          } else {
          $prenom = "";
          }

          if (($nom == "") && ($prenom == "")) {
          header('location:traitement.php');
          }
          }
          ?>

          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>Document sans titre</title>
          </head>

          <body>
          <form id="form1" name="form1" method="post" action="#">
          <p>
          Nom * :
          <input name="nom" type="text" id="textfield" value="<?php
          if (isset ($_POST['nom'])) {
          echo $_POST['nom'];
          }
          ?>" />
          <?php
          if(isset($_POST["envoyer"])) {
          echo $nom;
          }
          ?>
          </p>
          <p>
          Prénom * :
          <input name="prenom" type="text" id="textfield" value="<?php
          if (isset ($_POST['prenom'])) {
          echo $_POST['prenom'];
          }
          ?>" />
          <?php
          if(isset($_POST["envoyer"])) {
          echo $prenom;
          }
          ?>
          </p>
          <p>
          <input type="submit" name="envoyer" id="button" value="Envoyer" />
          </p>
          </form>
          </body>
          </html>

          RoCk n' RoLL !
          1
          1. Rectification! Il y a un problème...

            Les messages d'erreurs s'affichent, ca ok. Mais aucune information n'est envoyée à traitement.php !

            Aidez-moiiiiiiii j'en peux plus :(:(:(
            1
            1. Personne pour m'aider ? :(
              1
              1. merci beaucoup ca a marché!!!
                1
                1. Bonjour sethyy,
                  Tu dis que cela a marché mais comment ? J'ai exactement le même problème que toi. Merci beaucoup par avance car je n'en vois pas le bout!
                  0
              2. il faut que utilise le language javascript parceque c'est un language client (il s'exécute chez le client donc ta pas besoin d'envoyer les données au serveur).
                c'est la solution la plus fiable.
                1
                1. si tu veux utiliser le php donc tu dois apprendre l'ajax.
                  1
                  1. Il a raison de vouloir le faire ne php au cas où l'utilisateur aurait désactivé je JS.Ajax utilise du JavaScript, donc inutile dans son cas.

                    Il faudrait idéalement faire une vérification:
                    - JS avant l'envoi du formulaire
                    - php après l'envoi mais avant l'enregistrement
                    0
                2. bonjour svp sethyy comment ça a marché moi il m'affiche pas les erreurs :s , je dois faire la meme chose svp répondez :(
                  1
                  1. Bonjour,

                    Je suis débutant et je n'arrive pas a faire fonctionner mon formulaire newsletter. Pouvez vous me donner un coup de main sur ce problème de premier choix.

                    Je ne reçois pas l' Email de confirmation

                    Pouvez-vous adapter <?php……?> avec <form>……</form>

                    Le lien de ma page: http://www.cijoint.fr/cjlink.php?file=cj200910/cijyw5NMrK.txt

                    <head>

                    <?php if($_POST['action'] == "formok")
                    {
                    $e_mail = $_POST['email'];
                    if($e_mail == ""|| $e_mail == "e-mail")
                    {
                    $txt = " votre e-mail";
                    }
                    else
                    {
                    $destinataire= "bwba@hotmail.fr";
                    $objet = "Demande d'inscription";
                    $headers = "From: bwba@hotmail.fr \n\r";
                    $headers.= "Content-Type: text/html; charset=utf-8";
                    $headers .= "MIME-Version: 1.0 ";
                    $msg = "Nous vous informons d'une demande d'inscription suivant : ". $e_mail ."";
                    $msg = nl2br($msg);
                    mail($destinataire, $objet, $msg, $headers);
                    $msg2= "
                    Nous avons bien pris en compte votre demande d'inscription ? la newsletter.
                    Pour vous d?sinscrire, contactez nous

                    ";
                    mail($e_mail, $objet, $msg2, $headers);
                    $txt = "Vous avez un message";
                    }
                    }
                    ?>
                    </head>

                    <style type="text/css">
                    body {
                    font-family:Verdana, Arial, Helvetica, sans-serif;
                    font-size:60%;
                    margin:50px;
                    color:#666666;}
                    .fieldset {
                    width:300px;
                    border: 0px solid red;
                    }
                    .fieldset label {
                    text-align:right;
                    width:70px;
                    float:left;
                    padding:0.2em;
                    margin:0;
                    margin-top:0.3em;
                    }
                    .fieldset .nobr {display:none;} .fieldset .textfield {
                    margin:3px;
                    height:20px;
                    width:200px;
                    border:solid 1px #8caf10;
                    background: transparent url("http://") no-repeat;
                    }
                    .fieldset .textarea {
                    margin:3px;
                    height:165px;
                    width:200px;
                    border:solid 0 #fff;
                    }
                    .submit {
                    margin:3px;
                    height:20px;
                    border:solid 1px #8caf10;
                    width:80px;
                    font:1.1em Verdana, Arial, Helvetica, sans-serif;
                    color:#000000;
                    text-transform:uppercase;
                    background: transparent url("http://") no-repeat;
                    }
                    }
                    </style>

                    <body>

                    <form action="" method="post">
                    <fieldset class="fieldset"><br>
                    <span class="" style="direction: ltr; text-align: left;"><label
                    for="email"></label></span> <br class="nobr">
                    <input name="email" class="textfield" id="email"
                    type="text"> <span class=""
                    style="direction: ltr; text-align: left;"><br>
                    <span class="" style="direction: ltr; text-align: left;">
                    <br class="nobr">
                    <br>
                    <label for="submit"> </label><br
                    class="nobr">
                    <input name="submit" class="submit" id="submit"
                    value="envoyer" type="submit"></span></span></fieldset>
                    </form>

                    </body>
                    1
                    1. Tu ne mets pas d'action dans ton formulaire <form action="mapage.php" ...>
                      Le formulaire ne sait dont pas quelle page charger pour le traitement des données.

                      Si tu as toujours de problèmes, essaie de faire des "echo" pour voir o?u en est le traitement des données

                      <?php
                      echo "Début de l'analyse";
                      if($_POST['action'] == "formok")
                      {
                      echo "Le formulaire est OK";
                      ...
                      }
                      ...
                      ?>
                      ...
                      0