IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vos avis sur la gestion des messages d'erreurs dans un formulaire


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut Vos avis sur la gestion des messages d'erreurs dans un formulaire
    Salut à tous,

    Voila, je viens de faire un petit formulaire de contact et je voulais avoir vos avis concernant ma façon de traiter et d'afficher les messages d'erreurs dans le formulaire..

    la syntaxe et la propreté du code sont-t'elles bonnes ? Pour un site utilisant plusieurs formulaires faut-t'il mieux traiter les erreurs dans une class ?

    LE RENDU :

    Nom : formulaire de contact.png
Affichages : 4554
Taille : 36,4 Ko

    LE CODE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
     
    if (!empty($_POST)) {
     
        $errors = array();
     
        if (empty($_POST['nom_prenom'])) {
            $errors['nom_prenom'] = 'Veuillez renseigner votre nom et prénom';
        }
     
        if (empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $errors['email'] = 'Votre email n\'est pas valide';
        }
     
        if (empty($_POST['message'])) {
            $errors['message'] = 'Votre message est trop court';
        }
     
        if (empty($errors)) {
     
        // ici le traitement etc.. j'ai volontairement supprimé cette partie car la question porte essentiellement sur la gestion des erreurs.
     
        }
    }
     
    ?>
     
    <h1>Nous contacter</h1>
     
    <p>Utilisez le formulaire ci-dessous pour nous écrire.</p>
     
            <?php if(!empty($errors)): ?>
                <div class="alert alert-danger">
                    <p>Vous n'avez pas rempli le formulaire correctement</p>
                </div>
            <?php endif; ?>
     
            <form action="" method="post">
                <div class="form-group <?php if(!empty($errors['nom_prenom'])): ?> has-error <?php endif; ?>">
                    <label for="nom_prenom">Nom et prénom</label>
                    <input type="text" name="nom_prenom" class="form-control" id="nom_prenom" placeholder="Nom et prénom">
                    <?php if(!empty($errors['nom_prenom'])): ?>
                        <span class="help-block"><?= $errors['nom_prenom'] ?></span>
                    <?php endif; ?>
                </div>
                <div class="form-group <?php if(!empty($errors['email'])): ?> has-error <?php endif; ?>">
                    <label for="email">Adresse email</label>
                    <input type="text" name="email" class="form-control" id="email" placeholder="Adresse email">
                    <?php if(!empty($errors['email'])): ?>
                        <span class="help-block"><?= $errors['email'] ?></span>
                    <?php endif; ?>
                </div>
                <div class="form-group <?php if(!empty($errors['message'])): ?> has-error <?php endif; ?>">
                    <label for="message">Votre message</label>
                    <textarea name="message" class="form-control" id="message" rows="6"></textarea>
                    <?php if(!empty($errors['message'])): ?>
                        <span class="help-block"><?= $errors['message'] ?></span>
                    <?php endif; ?>
                </div>
                <button type="submit" class="btn btn-primary">Envoyer</button>
            </form>
    Merci d'avance pour vos conseils.

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Bonjour, voilà mon humble avis . Dans ton contrôle de champs tu ne vérifie pas la taille on peut avoir un prénom de 1 lettre? Jquery est pas mal sa évite de recharger la page et comme ça tu fais un double contrôle https://jqueryvalidation.org/ . Pour le côté POO je pense qu'il est vrai que faire une class dédié te fera gagner du temps et rendra ton code plus évolutif.

  3. #3
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    personnellement je colle tout dans une fonction ou méthode (pas d'importance ici) du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function displayError($errors, $field) {
     if(isset($errors[$field])) {
    echo '<span class="help-block">'.$errors[$field].'</span>';
    }
    }
    ça centralise pas mal pour l'affichage. Plus une fonction du même type pour réafficher les données dans les input text.
    (NB: pitié pas de conseil jquery sur le forum php)

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    A mon avis, c'est une façon comme une autre de traiter les erreurs : chaque message est associé à son champ et tu peux afficher différents messages en fonction de l'erreur pour un même champ (par exemple "email non renseigné" et "email non valide")

    Pour la validation proprement dite, ça peut être bien d'ajouter plus de conditions (nombre minimum de caractères)
    Mettre en place une validation côté client comme le conseille kevin254kl me parait également être une bonne idée, mais sans aller jusqu'à ajouter un plugin pour ça : avec HTML5, la plupart des navigateurs modernes gèrent les validations automatiques de base, notamment les champs obligatoires avec l'attribut required, et les formats spécifiques (par exemple un champ de type email au lieu d'un champ de type text)

  5. #5
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Merci pour vos réponses

    oui celira, je vais peut-être faire une verif en "temps réel" pour le pseudo par exemple, pour le fun^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/06/2014, 14h50
  2. Réponses: 0
    Dernier message: 16/01/2012, 23h40
  3. Réponses: 3
    Dernier message: 06/11/2007, 19h15
  4. Conseil ou avis sur la gestion des statistics
    Par lenitoy dans le forum Sybase
    Réponses: 3
    Dernier message: 28/03/2007, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo