Bonjour à tous,

je me pose énormement de questions quand je créer un formulaire poui lui créer les erreurs qu'il pourra gérer de manière simple

exemple :

if(strlen($identifiant) > 5)
{
    ...
}

j'aimerais avoir une autre hiérachie pour gérer ces erreurs la !

5 réponses


Bonjour, il y a beaucoup de méthode pour gérer les erreurs dans les formulaires.
En voici une :

$formError = array();

if (strlen($identifiant) > 5)
{
    $formError['identifiant'] = 'identifiant trop court';
}

if ($password1 !== $password2) {
    $formError['password1'] =  $formError['password2'] = 'mot de passe différent';
}

//tu peux imaginer d'autres tests

//test si il y a eu des erreurs dans le form
if (count($formError)) {
    //il y a des erreurs
} else {
    //aucune erreur
}

Avec cette méthode, tu peux gérer une erreur par champ, si une autre erreur est levée sur un champ qui a déjà une erreur, alors elle écrase la précédente.
Si tu veux plus d'une erreur sur un champ, il faudra les stocker dans un tableau.
Il vaut mieux que tu utilises une méthode pour gérer cela.

Exemple :
addErreur($champ, $message);

SmyDrowl
Auteur

merci je vais "m'inspirer" de cette méthode pour en faire une :) !

C'est la meme manière qu'utilise Grafikart dans son tutoriel sur le <a href="http://www.grafikart.fr/tutoriels/php/formulaire-php-21">formulaire de contact en php</a>. Jettes-y un coup d'oeil !

Hello,

L'idée est de travailler sur des cas spécifiques et non des champs. Il se peut que tu vas vouloir controller la longueur du name et du password ... C'est mieux de faire une methode qui vérifie un champs que tu lui précises, et la longueur. Pour vérifier mes formulaires j'utilise une base que Grafikart à montré en vidéo (message de François Cammas) et j'ai rajouté pas mal de methodes.
Comme la longueur comprise entre une fourchette, pas de caractères spéciaux, que des chiffres,...

Tu fais passer l'erreur via la session, et c'est joué :)

comme le dit kewai, grafikart donne une methodologie pour rapporter les erreurs. Il faut le pousser d'avantages en y incluant les expressions régulières, des tests plus poussés ...