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 145 146 147 148 149 150
| <?php
/* Nom du programme : testChamps.php
* Description : Ce programme contrôle les champs du formulaire (zones vides, champs incorrects)
*/
?>
<html>
<head>
<title>Test de champs</title>
</head>
<body>
<?php
/*Définir les champs à tester*/
$labels = array( "prenom" => "Prénom",
"nom" => "Nom",
"adresse" => "Adresse",
"codepostal" => "Code Postal",
"ville" => "Ville",
"email" => "Adresse Email",
"fixe" => "Téléphone fixe",
"portable" => "Téléphone portable");
foreach ($_POST as $champ => $valeur)
{
/* Contrôler la valeur des champs sauf celui du code postal*/
if ($valeur == "" )
{
$tabloVide[] = $champ;
}
elseif ($champ == "prenom" or $champ == "nom" or $champ == "ville")
{ if (!preg_match("#[a-zA-Zàâéèëêïîôùüç' -,]{1,50}$#", $_POST[$champ]))
{
$mauvaisFormat[$champ] = 'mauvais';
}
}
elseif ($champ == "adresse")
{ if (!preg_match("#[a-zA-Z0-9àâéèëêïîôùüç' -,]{1,50}$#", $_POST[$champ]))
{
$mauvaisFormat[$champ] = 'mauvais';
}
}
elseif ($champ == "email")
{
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // Caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // Caractères autorisés après l'arobase (nom de domaine)
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(\.' . $atom . '+)*' . // Suivis par zéro point ou plus
// Séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}\.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// Séparés par des points
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
if (!preg_match($regex, $_POST[$champ]))
{
$mauvaisFormat[$champ] = 'mauvais';
}
}
elseif ($champ == "codepostal")
{ if (!mb_eregi("^([0-9]{5})$", $_POST[$champ]))
{
$mauvaisFormat[$champ] = 'mauvais';
}
}
elseif ($champ == 'fixe' or $champ == 'portable')
{ if (!preg_match('`^(0[1-68][-. ]?(\d{2}[-. ]?){3}\d{2})$`',$valeur))
{
$mauvaisFormat[$champ] = 'mauvais';
}
}
} //Fin de la boucle foreach pour $_POST
if (@sizeof($tabloVide) > 0 or @sizeof($mauvaisFormat) > 0)
{
if (@sizeof($tabloVide) > 0)
{
/* Message pour information manquante*/
echo "<b> Un des champs obligatoires n'a pas été renseigné.
Vous devez saisir : </b><br>";
/* Affichage du nom des informations requises*/
foreach ($tabloVide as $champ => $valeur)
{
echo " {$labels[$valeur]}<br>";
} //Fin de la boucle foreach pour les champs vierges
}
if (@sizeof($mauvaisFormat) > 0)
{
/* Message pour information invalide*/
echo "<b> Un ou plusieurs champs contiennent des informations qui
semblent incorrectes. Corrigez le format de : </b><br>";
/*Affiche la liste des informations incorrectes*/
foreach ($mauvaisFormat as $champ => $valeur)
{
echo " {$labels[$champ]}<br>";
} //Fin de la boucle foreach pour les champs vierges
}
//Réafficher le formulaire
echo "<p>";
echo "<form action='$_SERVER[PHP_SELF]' method = 'POST'>
<table>";
foreach ($labels as $champ => $label)
{
$dataOk[$champ]= strip_tags(trim($_POST[$champ]));
echo $dataOk[$champ];
echo "<tr>
<td style = 'text-align: right; font-weight: bold'>
{$labels[$champ]}</td>
<td><input type = 'text' name = '$champ' size = '65'
maxlength = '65' value='$dataOk[$champ]'></td>
</tr>";
}
echo "<tr>
<td colspan='2' style='text-align: center'>
<input type='submit' value='Submit name and Phone Number'>";
echo "</td></tr></table>
</form>";
exit();
}
/*Test réussi*/
echo "Toutes les données sont correctes.";
?>
</body></html> |
Partager