Rendre des champs obligatoires dans un formulaire

Emases Messages postés 2 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 5 février 2009 - 2 févr. 2009 à 18:39
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 5 févr. 2009 à 21:24
Bonjour à tous

J'ai cherché pendant des heures sur le net y compris sur ce site une réponse claire (en tout cas pour moi qui suis un débutant) à un pb qui ne me semblait pas très compliqué au départ.
Voilà mon pb : J'ai créé un site pour un ami artisan avec notamment un formulaire de contact envoyé par mail. qui fonctionne très bien. Je voudrais juste "verrouiller" les champs : prénom, nom, adresse, téléphone, email de telle manière que si l'utilisateur oublie de renseigner l'un de ces champs, l'envoi du formulaire soit bloqué et qu'il en soit averti par un message du style : vous avez oublié de....

Voici le code du formulaire :

<form method="post" action="envoimail.php">
               

                    <label>prénom : </label>

                    <label>nom : </label>

                    <label>commune : </label>

                    <label>téléphone  : </label>

                    <label>e-mail  : </label>

                    <label class="dec"> décrivez votre projet
</label>

               
                    <textarea name="message" rows="10" cols="40"></textarea>

               
                   
               

               
<!-- fin label-->
                </form>

et le code d'envoi :

<?php

 $msg = "prenom:\t$prenom\n";
 $msg .= "nom:\t$nom\n";
 $msg .= "commune:\t$commune\n";
 $msg .= "telephone:\t$telephone\n";
 $msg .= "email:\t$email\n";
 $msg .= "message:\t$message\n\n";

 $recipient = "jean@di-entreprise.fr";
 $subject = "Formulaire";

 $mailheaders = "From: http://www.di-entreprise.fr/<> \n";
 $mailheaders .= "Reply-To: $CP\n\n";

 mail($recipient, $subject, $msg, $mailheaders);

      echo "<HTML><HEAD>";
    echo "<TITLE>Formulaire Envoyé!</TITLE></HEAD>";
    echo "Merci
";
    echo " $prenom $nom
";
    echo "";
    echo "Votre demande a bien été envoyée.

";
    echo "</HTML>";
?>

J'aimerais que quelqu'un puisse me donner non pas le code tout fait mais une explication que je puisse comprendre   sur la façon de procéder.
Merci d'avance
   

3 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
2 févr. 2009 à 18:56
Salut,

Lorsque tu récupère ce qui est posté tu peux tester le contenu de ta var avec empty() et ré-afficher le formulaire si c'est vide.
0
Emases Messages postés 2 Date d'inscription lundi 26 février 2007 Statut Membre Dernière intervention 5 février 2009
5 févr. 2009 à 10:00
Merci pour ta réponse mais pourrais tu développer un peu ? Un petit exemple peut-être ?
Bonne journée.
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
5 févr. 2009 à 21:24
Salut,

Bien, voici un petit exemple. On supposera que la fonction affiche_form() affiche le formulaire et que la fonction traite_form() sert a le récupérer les valeurs envoyées afin d'envoyer le mail. Bien entendu le formulaire doit pointer sur la même page que celle sur laquelle il se trouve.

if (empty($_POST['prenom']) || empty($_POST['nom']) ||
    empty($_POST['commune']) || empty($_POST['telephone']) ||
    empty($_POST['email']) || empty($_POST['message']))
     affiche_form();
else
     traite_form();
0
Rejoignez-nous