US

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.

1 
2 
3 
4 
5 
 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
<HTML>
    <HEAD>
        <TITLE>Traitement du formulaire</TITLE>
    <BODY>
        <FORM name="survey" enctype="text/plain" method="post" action="mailto:webmaster@ukonline.be?subject=Traitement du formulaire">
            <P>
                <b> :</b> <INPUT type="text" name="prenom">
                <b>Nom :</b> <INPUT type="text" name="nom">
            <P><b>Sexe :</b>
                <INPUT type="radio" name="sexe" value="H" checked> Homme
                <INPUT type="radio" name="sexe" value="F"> Femme
            <P><b>Langue(s) :</b>
                <INPUT type="checkbox" name="francais">
                <INPUT type="checkbox" name="neerlandais">
                <INPUT type="checkbox" name="allemand"> Allemand
                <INPUT type="checkbox" name="anglais"> Anglais
            <P><INPUT type="submit" value="Envoyer"> <INPUT type="reset" value=>
        </FORM>
Listing 6.10 Traiter un formulaire par email.
Traiter un formulaire par email
Figure 6.9 Traiter un formulaire par email.

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.

1 
2 
3 
<FORM name="recherche" action="traitement.php">
    ...
</FORM>
Listing 6.11 Définir l'action d'un formulaire.

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.

1 
 
2 
3 
<FORM name="loadfile" action="loadfile.php" method="post" enctype="multipart/form-data" accept="image/png,image/gif">
    <P>Votre fichier : <INPUT type="file" name="file">
</FORM>
Listing 6.12 Un formulaire permettant à l'utilisateur d'envoyer un fichier.
  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • Règlement
  • Erreur
  • Newsletter