Méthode pour formulaires

Contenu du snippet

Voilà une petite méthode pour gérer vos formulaires et traiter les erreurs le mieux possible...

Source / Exemple :


<?
if($_POST[validation]) { // On traite le formulaire

// On récupère proprement les données du formulaire
for(list($nom, $variable) = each($_POST))
$$nom = $variable:

// On vérifie les erreurs dans le formulaire
// On place toutes les erreurs trouvées dans un tableau

if($nom == "") $erreur[nom] = "vide";
else if($nom == "casimir") $erreur[nom] = "interdit";

if($prénom == "") $erreur[prénom] = "vide";

if($mail == "") $erreur[mail] = "vide";
else if(!ereg("(.*)@(.*)\.[a-z]{2,6}")) $erreur[mail] = "syntaxe";

if($conditions != 1) $erreur[conditions] = "refuse";

// On traite les erreurs :

if(is_array($erreur)) { // S'il y a des erreurs

echo "<table><tr><td>Merci de corriger les erreurs suivantes :<br><br>";

switch($erreur[nom]) { // S'il y a une erreur dans le nom...
case "vide" : echo "Vous n'avez pas indiqué votre nom."; break; // On a trouvé que l'internaute avait po mis son nom
case "casimir" : echo "Votre nom ne doit pas être Casimir !"; break;
// + autres erreurs éventuelles
}
switch($erreur[prénom]) {
case "vide" : echo "Vous n'avez pas indiqué votre prénom."; break;
// + autres erreurs éventuelles
}
switch($erreur[mail]) {
case "vide" : echo "Vous n'avez pas indiqué votre adresse e-mail."; break;
case "syntaxe" : echo "Adresse e-mail syntaxiquement erronée."; break;
// + autres erreurs éventuelles
}
switch($erreur[conditions]) {
case "refuse" : echo "Vous n'avez pas accepté les conditions."; break;
// + autres erreurs éventuelles
}

/*
Je sais que ça ne sert à rien de faire un switch pour 1 valeur, mais c'est juste pour montrer le principe qu'il faut suivre dans le gestion du formulaire

  • /
echo "</td></tr></table>"; } } ?> <? /* Votre formulaire. Vous ajoutez des champs comme vous voulez. Pour afficher la valeur par défaut dans un champ texte, on met htmlspcecialchars($variable) pour éviter des conflits. On affiche le formulaire que s'il n'est pas validé
  • /
if(!$validation || is_array($erreur)) { ?> <form action='<? echo $PHP_SELF ?>' method='post'> <input type="hidden" name="validation" value=1> Nom : <input type="text" name="nom" value="<? echo htmlspecialchars($nom) ?>"><br> Prénom : <input type="text" name="prénom" value="<? echo htmlspecialchars($prénom) ?>"><br> Adresse e-mail : <input type="text" name="mail" value="<? echo htmlspecialchars($mail) ?>"><br> Acceptez-vous les conditions ? <input type="checkbox" name="conditions" value=1 <? if($conditions) echo "checked" ?>><br> <input type="submit" value='Envoyer"> </form> <? } else { // Le formulaire est validé // Vous traitez le formulaire echo "Formulaire envoyé avec succès !"; } ?>

Conclusion :


Voilà c'est la méthode que j'utilise pour mes formulaires.
J'ai fait le code sans le tester donc il reste peut être des erreurs php. merci de m'en faire part pour que je les corrige.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.