CGI:Envoyer des données à un script
Un article de WikiTuto.
Sommaire |
Généralités
L'envoi de données à un script CGI se fait par l'intermédiaire d'un formulaire HTML.
Les formulaires HTML se créent à l'aide de la balise <FORM> contenant des boutons, des champs, des listes et/ou des cases à cocher repérés par des noms auxquels seront associés des valeurs, fonction de la saisie des utilisateurs, puis d'un bouton de soumission du formulaire qui enverra l'ensemble des informations au script indiqué en tant qu'attribut Action de la balise FORM selon la méthode GET ou POST. Chaque élément du formulaire doit posséder un nom unique, de telle façon que la valeur associé à l'élément forme avec le nom de celui-ci une paire nom/valeur du type Nom_de_l_element=valeur.
L'ensemble des paires nom/valeur sont séparées par des esperluettes (le caractère "&"). Ainsi, l'envoi d'un formulaire crée une chaîne de la forme champ1=valeur1&champ2=valeur2&champ3=valeur3.
L'envoi de cette chaîne se fera différemment selon que la méthode utilisée pour l'envoi du formulaire est GET ou POST.
Il faut néanmoins dans les deux cas décoder cette chaîne.
Encodage de l'URL
Les données transmises par un formulaire consistent en une suite de paires nom/valeur. Avant de transmettre ces données vers le serveur et le programme CGI, le navigateur les encode en utilisant une convention appelée encodage URL. La procédure d'encodage est la suivante :
1. encodage de certains caractères non alpha-numériques. Cette étape consiste en le remplacement de ces caractères avec un signe %, suivi de la valeur hexadécimale du caractère. Les plus répandus sont :
Caractère Encodage URL
" %22
, %2C
; %3B
@ %40
é %E9
è %E8
ê %EA
à %E0
2. remplacement de tous les espaces par le signe +
3. séparation de chaque nom de chaque valeur par le signe =
4. séparation de chaque paire nom/valeur par le caractère &
Par exemple, supposons que nous ayons les paires suivantes :
nom Jean Dupont emploi testeur de matelas courriel Jean.Dupont@trecalopillo.com
Afin d'encoder ces paires, nous allons commencer par remplacer les caractères non alpha-numériques. Dans cet exemple, un seul caractère de ce type existe, @, que nous remplaçons par %40 :
nom Jean Dupont emploi testeur de matelas courriel Jean.Dupont%40trecalopillo.com
Il faut maintenant remplacer tous les espaces par des signes + :
nom Jean+Dupont emploi testeur+de+matelas courriel Jean.Dupont%40trecalopillo.com
Ensuite, il faut insérer des signes = :
nom=Jean+Dupont emploi=testeur+de+matelas courriel=Jean.Dupont%40trecalopillo.com
Enfin, séparer chaque paire par un &: nom=Jean+Dupont&emploi=testeur+de+matelas&courriel=Jean.Dupont%40trecalopillo.com.
Sources
Voir aussi
- La communication CGI/navigateur
- Envoyer des données à un script CGI
- Variables d'environnement
- Sécurité



