Traitement du formulaire
Si on insère des formulaires dans une page web, c'est pour récolter des informations précises sur l'utilisateur et effectuer ensuite un certain traitement et enfin, donner un feedback à l'utilisateur sur le traitement. On peut faire des formulaires pour poster un commentaire, voter dans un sondage, envoyer un email, ...
Prenons un exemple simple pour commencer. On va réaliser un formulaire qui demande des informations sur un utilisateur et qui les envoie par email lorsque l'utilisateur soumet le formulaire.
|
|
Une fois que vous aurez cliqué sur le bouton de soumission de ce formulaire, les données qui y ont été encodées seront rassemblées et envoyées par email à l'adresse webmaster@ukonline.be
, avec « Traitement du formulaire » comme sujet. L'email devra être manuellement envoyé par l'utilisateur, seul son contenu est automatiquement généré et contiendra :
prenom=Sébastien nom=Combéfis sexe=H francais=on neerlandais=on anglais=on
Définir l'action à effectuer
Pour définir l'action qui doit être appliquée lorsque l'utilisation soumet les données d'un formulaire, il faut utiliser l'attribut action
de l'élément FORM
. Cet attribut permet de définir la destination qui va traiter les données. Dans le cas d'un envoi par e-mail, on va donner la valeur mailto:adresse_email?subject=un_sujet
qui aura pour effet d'envoyer les valeurs entrées dans le formulaire à l'e-mail spécifié avec le sujet précisé.
Les données du formulaire peuvent également être envoyée vers une page dynamique écrite par exemple en PHP, ASP, JSP, CFM, ... Dans ce cas, il suffit de fournir l'URL de la page de traitement comme le montre l'exemple suivant.
|
|
Méthode d'envoi
Les données d'un formulaire peuvent être envoyées de deux manières différentes lorsqu'il s'agit de les communiquer à une autre page web. Il y a deux méthodes d'envoi : get
et post
. La méthode get
va envoyer toutes les données via l'URL de la page tandis que la méthode post
va mettre toutes les données dans l'entête de la page. La différence entre les deux techniques est qu'avec la première, la quantité de données qui va pouvoir être transmise est limitée. De plus, les données seront directement visible dans l'URL de la page qui est montrée dans le navigateur.
Afin de vous rendre compte par vous-même de la différence, vous pouvez consulter l'exemple d'envoi qui contient un formulaire de recherche dont les données peuvent être envoyées en get
ou en post
vers une page PHP.
Encodage des données
On peut spécifier le type d'encodage des données du formulaire avec l'attribut enctype
. Il permet de définir le type MIME qui sera utilisé pour l'envoi des données du formulaire une fois soumis par l'utilisateur. Dans notre exemple, on a utilisé la valeur text/plain
qui indique qu'il s'agit d'un simple texte en clair.
La valeur par défaut pour le type d'encodage est application/x-www-form-urlencoded
. Dans ce cas, la transmission n'utilise que les caractères standard. Certains caractères vont donc être encodés différemment comme vous avez peut-être pu le voir en utilisant la méthode get
avec l'exemple d'envoi. Il s'agit en fait de la méthode d'URL encoding.
Enfin, si vous voulez permettre à l'utilisateur d'envoyer un fichier, en utilisant l'élément de formulaire l'élément INPUT
avec comme type file
, il faudra spécifier multipart/form-data
comme type d'envoi pour le formulaire. Dans ce dernier cas, vous pouvez également restreindre les types de fichiers que l'utilisateur pourra envoyer en utilisant l'attribut accept
. Notez néanmoins que ce dernier n'est que très peu supporté par les navigateurs.
|
|