Formulaires

Ce chapitre présente les formulaires. Ils peuvent être traités de plusieurs façon. La méthode la plus classique consiste à utiliser la passerelle CGI. Un logiciel exécuté sur le serveur communique avec le démon httpd (c'est-à-dire le logiciel serveur WEB) selon certaines règles.

Sommaire

  1. La déclaration d'un formulaire
  2. Les éléments de formulaires
    1. Les éléments INPUT
    2. Les éléments SELECT
    3. Les éléments TEXTAREA
  3. Traitement des formulaires

La déclaration d'un formulaire

La définission des différents éléments du formulaire se fait en utilisant l'élément <FORM>. L'action a réaliser pour traiter le formulaire doit être précisée en utilisant les deux attributs suivants :

La syntaxe habituelle est donc :
<FORM METHOD="POST" ACTION="http://www.serveur.fr/cgi-bin/script">
...
</FORM>

Les éléments de formulaires

Les éléments de formulaires sont répartis en 3 classes :

Chaque élément doit être nommé, pour cela on utilise l'attribut NAME. Le nom ainsi défini permet d'identifier les données lors de leur envoi. Il doit être unique, sauf dans le cas d'un ensemble composé de plusieurs éléments (boutons radio par exemple). Un autre attribut VALUE est commun à ces balises, mais son rôle est différent selon le type d'élément utilisé.

Les éléments input

Cet élément est utilisé pour définir des zones d'entrée de texte simple, des boutons, des cases à cocher ou des boutons radio. Le type d'élément dont il s'agit sera précisé en utilisant l'attribut TYPE.

typesyntaxeexemple
sans <input name="ident">
<input name="ident" value="Par défaut">
submit <input type="submit" value="Envoi">
checkbox <input type="checkbox" name="pfm" value="linux" checked> Linux<BR>
<input type="checkbox" name="pfm" value="dos"> Dos<BR>
<input type="checkbox" name="pfm" value="win"> Windows
Linux
Dos
Windows
radio <input type="radio" name="media" value="cd" checked> CD-ROM<BR>
<input type="radio" name="media" value="dk"> Disquette
CD-ROM
Disquette
password <input type="password" name="pass"
reset <input type="reset" value="Efface">

L'élément SELECT

Cet élément sert à définir des listes (menus déroulant ou ascenseurs). Elle s'utilise avec l'élément OPTION.

syntaxeexemple
<select name="menu">
<option> Pomme
<option> Banane
<option> Orange
<option selected> Citron
<option> Pêche
<option> Poire
<select >
<select name="menu" size=4>
...
<select name="menu" size=4 multiple>
...

L'élément TEXTAREA

Permet de créer une zone de texte en spécifiant sa taille grâce aux attributs ROWS et COLS.

<textarea name="comm" rows=10 cols=40>
Tapez vos commentaires ici
</textarea>

Traitement des formulaires

Il s'agit de récupérer les données saisies par l'utilisateur et de les retraiter. Il existe 3 techniques.

La passerelle CGI

La technique la plus classique consiste à utiliser la passerelle CGI (Common Gateway Interface) pour exécuter un programme de traitement sur le serveur. Le programme en question recevra toutes les données saisies par l'utilisateur et construira une nouvelle page en réponse.

Cette technique est la plus puissante et reste la seule à être capable de traiter un grand volume de données. Néanmoins elle nécessite l'accès à la programmation du serveur.

Les scripts

Ils permettent de réaliser de petites applications simples sans interaction avec le serveur.

Se faire expédier les données par mail

Cette méthode reste la plus simple à utiliser même si elle ne permet pas de traiter un grand nombre de données. Il suffit d'indiquer une adresse électronique comme action.

<form action="mailto:mon.nom@mon.adresse.fr" method="POST">

Cette technique présente deux inconvénients majeurs :

Différents serveurs proposent des passerelles CGI-email gratuites. Il suffit d'indiquer comme action un programme sur ces serveurs et de faire un petit paramétrage. Le site suivant propose ce genre de services (un exemple parmi d'autres, qui semble relativement stable dans le temps).


Dominique Archambault, 1999