1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Vérification de Formulaire PHP</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<style type="text/css">
h1, h2, h3 { margin: 2px; }
h3 { background-color: #ccc; }
#errors { border: 2px dashed red; margin: 15px 0; }
#errors p { margin: 2px; }
</style>
</head>
<body>
<h1>Traitement d'un formulaire en PHP</h1>
<?php
// Déclaration des fonctions de vérification
// Vérification simple de la validité d'un email
// on considère qu'un email est une chaine composée de str1@str2.str3
// les sous-chaines str1, str2 et str3 ne peuvent être vides
function is_email($email)
{
// séparation des chaines de part et d'autre du @
// $str est un tableau
$str = explode("@", $email);
// la taille du tableau doit être nécessairement 2 (1 seul arobas)
// str1 => $str[0]
// str2.str3 => $str[1]
if (sizeof($str) != 2) {
return FALSE;
} else {
// séparation des chaines du domaine, de part et d'autre du .
$dom = explode(".", $str[1]);
if (sizeof($dom) != 2) {
return FALSE;
} else {
return TRUE;
}
}
}
// Si 'envoi' n'est pas vide c'est que le formulaire a été validé
if (!empty($_POST["envoi"])) {
// Vérification du champ 'nom'
// Vérification si le champ est vide
if (empty($_POST["nom"])) {
$tab_errors["nom"] = "Le champ 'Nom' est requis !";
} else {
// Vérification si la longueur du champ 'nom' est comprise entre 5 et 50 caractères
if (strlen($_POST["nom"]) < 5 or strlen($_POST["nom"]) > 50) {
$tab_errors["nom"] = "Le taille du champ 'nom' doit être comprise entre 5 et 50 caractères !";
}
}
// Vérification du champ 'prenom'
// Vérification si le champ est vide
if (empty($_POST["prenom"])) {
$tab_errors["prenom"] = "Le champ 'Prénom' est requis !";
} else {
// Vérification si la longueur du champ 'prenom' est comprise entre 5 et 50 caractères
if (strlen($_POST["prenom"]) < 5 or strlen($_POST["prenom"]) > 50) {
$tab_errors["prenom"] = "Le taille du champ 'Prénom' doit être comprise entre 5 et 50 caractères !";
}
}
// Vérification du champ 'adresse'
// Vérification si la longueur du champ 'adresse' est comprise entre 50 et 255 caractères
if (strlen($_POST["adresse"]) > 255) {
$tab_errors["adresse"] = "Le taille du champ 'Adresse' ne peut excéder 255 caractères !";
}
// Vérification du champ 'codepostal'
if (!empty($_POST["codepostal"]) and !is_numeric($_POST["codepostal"])) {
$tab_errors["codepostal"] = "Le champ 'Code Postal' doit être numérique !";
}
// Vérification du champ 'ville'
// Vérification si la longueur du champ 'ville' est inférieure à 50 caractères
if (strlen($_POST["ville"]) > 50) {
$tab_errors["ville"] = "Le taille du champ 'Ville' ne peut excéder 50 caractères !";
}
// Vérification du champ 'e-mail'
// vérification si le champ est vide
if (empty($_POST["email"])) {
$tab_errors["email"] = "Le champ E-Mail est requis !";
} else {
if (!is_email($_POST["email"])) {
$tab_errors["email"] = "Le champ 'E-Mail' n'est pas valide !";
}
}
}
// Si le tableau $tab_errors n'est pas vide, c'est que le formulaire a déjà été envoyé et qu'il contient des erreurs.
if (!empty($tab_errors)) {
// Affichage des erreurs du formulaires
echo "<div id=\"errors\">";
echo "<h3>Le formulaire contient des erreurs :</h3>";
// parcours du tableau des erreurs et affichage des libellés
foreach ($tab_errors as $field => $field_error) {
echo "<p><strong>" . $field . ":</strong> " . $field_error . "</p>";
}
echo "</div>";
} else {
// Si le tableau $tab_errors est vide, et que $_POST["envoi"] n'est pas vide, c'est que le formulaire et ses données sont valides.
// on procède alors au traitement
if (!empty($_POST["envoi"])) {
echo "<h3>Traitement du Formulaire...</h3>";
# instructions du traitement....
# insertion dans une bdd, envoi d'un mail, inscription, ...
// $form_res est une variable permettant de dire que le formulaire est valide et que le traitement de celui-ci s'est déroulé sans problème.
$form_res = TRUE;
}
}
// Si $form_res n'est pas VRAI on affiche le formulaire
if (!$form_res) {
?>
<!-- à noter l'initialisation des valeurs des champs du formulaire avec les résultats déjà saisis en cas de problème de validation du formulaire -->
<h2>Veuillez renseigner vos coordonnées :</h2>
<form action="verif_form.php" method="post">
<p><label for="nom">Nom :</label> <input type="text" id="nom" name="nom" value="<?php echo $_POST["nom"]; ?>" /></p>
<p><label for="prenom">Prénom :</label> <input type="text" id="prenom" name="prenom" value="<?php echo $_POST["prenom"]; ?>" /></p>
<p><label for="adresse">Adresse :</label> <input type="text" id="adresse" name="adresse" value="<?php echo $_POST["adresse"]; ?>" /></p>
<p><label for="codepostal">Code Postal :</label> <input type="text" id="codepostal" name="codepostal" value="<?php echo $_POST["codepostal"]; ?>" /></p>
<p><label for="ville">Ville :</label> <input type="text" id="ville" name="ville" value="<?php echo $_POST["ville"]; ?>" /></p>
<p><label for="email">E-Mail :</label> <input type="text" id="email" name="email" value="<?php echo $_POST["email"]; ?>" /></p>
<p>
<input type="hidden" name="envoi" value="1" />
<input type="submit" name="BtnSubmit" value="Valider" /><input type="reset" name="BtnClear" value="Annuler" />
</p>
</form>
<?php
}
?>
</body>
</html> |
Partager