La validation des formulaires

Valider côté client pour le confort et côté serveur pour la sécurité, les règles de validation, le renvoi du formulaire avec ses erreurs et ses valeurs, et la redirection après un envoi réussi.

  • 24 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • Validation côté serveur : de quoi s'agit-il ?

    Voir la réponse

    Contrôle des données reçues, fait par l'application avant de les utiliser ou de les enregistrer, quel que soit l'outil qui les a envoyées.

    Le serveur ne peut pas se fier au navigateur : un script ou curl envoie ce qu'il veut. C'est le seul contrôle qui protège réellement les données.

  • Le serveur valide un code postal avec ce motif. Quelle saisie accepte-t-il à tort ?

    ```javascript
    /[0-9]{5}/.test(saisie)
    `

    • ab75011cd
    • 7501
    • 750 11
    • 7501A
    Voir la réponse

    ab75011cd

    Sans ^ ni $, le motif cherche cinq chiffres consécutifs n'importe où dans le texte, et 75011 s'y trouve. Les trois autres saisies n'ont jamais cinq chiffres à la suite. Le bon motif est /^[0-9]{5}$/.

  • Le navigateur contrôle un champ grâce à des attributs HTML5 : required, type='email', min, max et ….

    Voir la réponse

    Le navigateur contrôle un champ grâce à des attributs HTML5 : required, type='email', min, max et pattern.

    Le champ <input name='cp' pattern='[0-9]{5}'> refuse l'envoi si la saisie n'est pas composée de cinq chiffres. Le navigateur ancre le motif tout seul.

  • Validation côté client : de quoi s'agit-il ?

    Voir la réponse

    Contrôle fait dans le navigateur, par des attributs HTML5 ou du JavaScript, avant même l'envoi du formulaire.

    Il donne une réponse immédiate et épargne un aller-retour. Mais l'utilisateur peut le contourner, donc il ne remplace jamais le contrôle du serveur.

  • Une commande à prix négatif arrive en base, alors que le champ HTML porte min='0'. Quelle est la cause et la réparation ?

    • Il manquait required : le navigateur ignore min sans lui
    • La base de données accepte tout ; il faut changer le type de colonne
    • Le navigateur s'est mal comporté ; il faut le mettre à jour
    • Le formulaire a été contourné ; revalider côté serveur
    Voir la réponse

    Le formulaire a été contourné ; revalider côté serveur

    min n'agit que dans le navigateur, quand l'utilisateur clique sur le bouton d'envoi, et sans avoir besoin de required dès qu'une valeur est saisie. Un script ou curl écrit la requête POST lui-même, sans aucun contrôle. Le serveur doit refuser tout prix négatif.