Jusqu'ici, nos pages affichaient. Le formulaire change la donne : il permet au visiteur
de saisir des informations et de les envoyer. Inscription, connexion, recherche,
commentaire : tout passe par un formulaire.
1. La balise <form>
<form action="traitement.php" method="post">
<!-- les champs viennent ici -->
</form>
Attribut
Rôle
action
L'adresse qui recevra et traitera les données
method
La façon de les envoyer : get ou post
GET ou POST ?
get
post
Où passent les données
Dans l'URL, visibles
Dans le corps de la requête
Taille
Limitée
Importante
Usage typique
Recherche, filtre
Connexion, inscription, envoi de fichier
Règle pratique : jamais de mot de passe en get, il s'afficherait
dans la barre d'adresse et resterait dans l'historique.
2. Le champ de base : <input>
<input> est une balise orpheline. C'est son attribut
type qui détermine sa nature.
L'attribut name est indispensable : c'est sous ce nom que la donnée
arrive côté serveur. Un champ sans name n'est tout simplement pas envoyé.
3. L'étiquette : <label>
<label for="nom">Votre nom :</label>
<input type="text" name="nom" id="nom">
Le for du label doit reprendre exactement l'id du champ. Deux bénéfices
concrets : cliquer sur le texte place le curseur dans le champ (précieux sur mobile), et un lecteur
d'écran annonce l'intitulé. Chaque champ mérite son label.
required : champ obligatoire, le navigateur bloque l'envoi s'il est vide
placeholder : exemple affiché en gris ; ne remplace jamais le label
min, max : bornes d'un nombre ou d'une date
maxlength : nombre maximal de caractères
value : valeur pré-remplie
Attention : ces contrôles sont une commodité, pas une sécurité. Ils
s'exécutent dans le navigateur et se contournent aisément. Les données doivent toujours être
revérifiées côté serveur.
À retenir
<form> a besoin de action et method
post pour tout ce qui est sensible, get pour une recherche
Sans name, un champ n'est pas transmis
Un <label for> par champ, relié par l'id
La validation du navigateur ne dispense pas de celle du serveur
Exercices d'application
Exercice 1. Formulaire de contactCréez un formulaire avec nom, e-mail et âge, chacun muni de son label. Méthode post. Rendez nom et e-mail obligatoires.
Exercice 2. GET contre POSTFaites un formulaire de recherche en get, envoyez-le, et observez l'URL. Expliquez pourquoi un mot de passe n'y aurait pas sa place.
Exercice 3. Labels cliquablesVérifiez que cliquer sur chaque intitulé active bien le champ. Si ce n'est pas le cas, comparez le for et l'id.
Faites-les dans un fichier .html et ouvrez-le dans votre navigateur : c'est en testant que l'on retient.