Bonjour,

Je suis nul en PHP.
Je souhaite améliorer le système de formulaire suivant (formulaire.html + validation.php).
Je souhaite que lors d'erreur de saisie, les messages suivant apparaissent:
"Vous n'avez pas saisi votre nom".
"Vous n'avez pas saisi votre Prénom".
"Vous n'avez pas saisi votre Email".
"Votre email est erroné".
"Vous n'avez pas saisi votre ville".
"Vous n'avez pas saisi votre code postal".
"Vous n'avez pas saisi votre message".
Voici les 2 pages: html et php.
Je remercie beaucoup les personnes qui sauront me répondre.

formulaire.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Exemple de formulaire en PHP</title>
<SCRIPT LANGUAGE="JavaScript"> 
function verifForm(formulaire){

    if (formulaire.nom.value == "")
    alert('Vous n\'avez pas rempli le champ Nom!');

    else if (formulaire.prenom.value == "")
    alert('Vous n\'avez pas rempli le champ Prénom!');

    else if (formulaire.email.value == "")
    alert('Vous n\'avez pas rempli le champ E-Mail!');

    else if (formulaire.ville.value == "")
    alert('Vous n\'avez pas rempli le champ Ville!');

    else if (formulaire.code.value == "")
    alert('Vous n\'avez pas rempli le champ code postal!');

    else if (isNaN(formulaire.code.value))          
    alert('Le champ code postal ne peut être que numérique!');

    else if (formulaire.code.value.length>5)            
    alert('Le champ code postal ne peut excéder 5 caractères numériques!');

    else if (formulaire.message.value == "")
    alert('Vous n\'avez pas rempli le champ message!');

    else
    formulaire.submit();

  }
</SCRIPT>
<style type="text/css">
body {
    background-color: #FCF;
}
</style>
</head>
<body>
<div align="center">
<h1>Exemple de formulaire</h1>
</div>
<table border="2" width="50%" align="center">
    <tr>
        <td width="100%" bgcolor="#A6CAF0">

            <form name="form" action="validation.php" method="post">

            <fieldset>
                <br />
                <legend><h3>Vos coordonnées</h3></legend>

                <table border="0">
                    <tr>
                        <td align="left">Nom</td>
                        <td><input type="text" size="20" name="nom" value="" /></td>
                    </tr>

                    <tr>
                        <td align="left">Prénom</td>
                        <td><input type="text" size="20" name="prenom" value="" /></td>
                    </tr>

                    <tr>
                        <td align="left">E-Mail</td>
                        <td><input type="text" size="20" name="email" value="" /></td>
                    </tr>

                    <tr>
                        <td align="left">Ville</td>
                        <td><input type="text" size="20" name="ville" value="" /></td>
                    </tr>

                    <tr>
                        <td align="left">Code postal</td>
                        <td><input type="text" size="5" name="code" value="" /></td>
                    </tr>

                    <tr>
                        <td align="left">Département</td>
                        <td>
                            <select name="departement" size="3">
                                <option>Seine-Saint-Denis</option>
                                <option>Val de Marne</option>
                                <option>Seine et Marne</option>
                                <option>Paris</option>
                                <option>Yvelines</option>
                                <option>Essonne</option>
                                <option>Hauts de Seine</option>
                                <option>Val d'Oise</option>
                            </select>                            
                        </td>                    
                    </tr>                    
                </table>
            </fieldset>

            <fieldset>
               <br />
                <legend><h3>Votre type d'emploi</h3></legend>

                <table border="0">
                    <tr>
                        <td><input type="radio" name="emploi" value="enseignement" /></td>
                        <td>enseignement</td>
                        <td><input type="radio" name="emploi" value="éducation" /></td>
                        <td>éducation</td>
                        <td><input type="radio" name="emploi" value="administration" /></td>
                        <td>administration</td>
                    </tr>                
                </table>

            </fieldset>

            <fieldset>
                <br />
                <legend><h3>Vos loisirs préférés</h3></legend>

                <input type="checkbox" name="loisir]" value="Son-vidéo" />Son-vidéo
                <input type="checkbox" name="loisir]" value="Télévision" />Télévision
                <input type="checkbox" name="loisir]" value="Cinéma" />Cinéma<br />
                <input type="checkbox" name="loisir]" value="Programmation" />Programmation
                <input type="checkbox" name="loisir]" value="Sports" />Sports
                <input type="checkbox" name="loisir]" value="Internet" />Internet
                <input type="checkbox" name="loisir]" value="Son-vidéo" />Son-vidéo

            </fieldset>

            <fieldset>
                <br />
                <legend><h3>Écrivez votre message</h3></legend>

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

            </fieldset>    

                <hr size="3" noshade="noshade" />

                <div align="center">
                    <input type="submit" name="enregistrer" value="Enregistrer" onClick="verifForm(this.form)" />
                    <input type="reset" name="annuler" value="Annuler" />                
                </div>          

            </form>
        </td>
    </tr>
</table>
</body>
</html>

validation.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Validation du formulaire PHP</title>
<style type="text/css">
body {
    background-color: #FCF;
}
</style>
</head>

<body>

<?php
if(isset($_POST) && isset($_POST"nom"]) && isset($_POST"prenom"]) && isset($_POST"email"]) && isset($_POST"ville"]) && isset($_POST"code"]) && isset($_POST"message"])){
    extract($_POST);
    if(isset($_POST"departement"]) && !empty($departement)){
        if(isset($_POST"emploi"]) && !empty($emploi)){
            if(isset($_POST"loisir"]) && !empty($loisir)){
                if(!empty($nom) && !empty($prenom) && !empty($email) && !empty($ville) && !empty($code) && !empty($departement) && !empty($emploi) && !empty($loisir) && !empty($message)){
                    $message=str_replace("\'","'",$message);
                    $destinataire="albert@orange.fr";
                    $sujet="Formulaire de contact";
                    $loisirs = '';
                    foreach($loisir as $c => $v){
                        $loisirs .= $v.' - ';
                    }
                    $msg="Un nouveau message est arrivé \n
                    Nom: $nom \n
                    Prenom: $prenom \n
                    Email: $email \n
                    Ville: $ville \n
                    Code: $code \n
                    Departement: $departement \n
                    Emploi: $emploi \n
                    Loisir: $loisirs \n
                    Message: $message";
                    /*Si 1 destinataire:
                    $entete="From: $mail";*/
                    /*Si plusieurs destinataires:
                    $entete="From: $email \n
                    Cc: toiencopie@example.com \n
                    Bcc: luiencache@example.com";*/
                    $entete="From: $email \n
                    Bcc: albertine@ujf-grenoble.fr";
                    mail($destinataire, $sujet, $msg, $entete);
                    echo("<h2>Votre message a bien été envoyé.<br>
                    Nous vous répondrons dans les plus brefs délais.</h2>");
                }
                else{
                    echo("<h2>Vous n'avez pas rempli tous les champs!<br>
                    Votre formulaire n'a pas été transmis.<br>
                    Merci de bien vouloir remplir tous les champs.</h2>");
                }
            }
            else{
                echo ("<h2>Vous n'avez pas coché de case(s) dans la rubrique LOISIRS!<br>
                Votre formulaire n'a pas été transmis.<br>
                Merci de bien vouloir renseigner au moins une case de la rubrique LOISIRS.</h2>");
            }
        }
        else{
            echo ("<h2>Vous n'avez pas renseigné votre type d'emploi!<br>
            Votre formulaire n'a pas été transmis.<br>
            Merci de bien vouloir renseigner votre type d'emploi.</h2>");
        }
    }
    else{
        echo ("<h2>Vous n'avez pas sélectionné votre département!<br>
        Votre formulaire n'a pas été transmis.<br>
        Merci de bien vouloir sélectionner votre département.</h2>");
    }
}
else{
    echo("<h2>Vous n'avez pas rempli tous les champs!<br>
    Votre formulaire n'a pas été transmis.<br>
    Merci de bien vouloir remplir tous les champs.</h2>");
}
?>
<table border="2" width="50%" align="center">
    <tr>
        <td width="100%" bgcolor="#A6CAF0"><br /><br />
        Voici les informations que vous avez fournies:<br /><br />
        Vous vous appelez <b><?php print ("$nom $prenom");?></b><br /><br />
        Votre e-mail est <b><?php print ("$email");?></b><br /><br />
        Vous résidez à <b><?php print ("$ville $code dans le département $departement");?></b><br /><br />
        Vous occupez le poste d'<b><?php print ("$emploi");?></b><br /><br />
        Vos loisirs préférés sont:<br />
            <ul><b><?php for ($i=0; $i<sizeof($loisir); $i++) print("<li>$loisir$i]");?></b></ul>
        <p>Votre message est:<br /><br /><b><?php print("$message");?></b></p>        
        </td>    
    </tr>
</table>

</body>
</html>

2 réponses


albert
Auteur

Aide toi, Grafikart t'aidera!
Merci beaucoup pour le lien.
Effectivement, en passant un peu de temps, j'ai réussi! (mais tout ce dont j'avais besoin est dit dans ce tutoriel-vidéo).
Merci
Albert