- Le formulaire en HTML
Graphiquement, le formulaire se présente de la façon suivante :
La zone de saisie dans laquelle j'ai tapé le texte c'est déjà testé
Les deux boutons RADIO oui a été choisi
Le source est le suivant :
<HTML>
<HEAD>
<TITLE>Exemple simple d'association HTML et C</TITLE>
</HEAD>
<BODY>
<H1>Exemple simple d'association HTML et C</H1>
<HR>
<H4>
<FORM ACTION="/BIN/progcours.exe?dico_francais+nom_propre" METHOD="POST">
<INPUT NAME="zone" TYPE="TEXT" VALUE="Entrez votre texte">Entrez votre texte
<BR>
<BR>
Avez vous tout compris ?
<BR>
<INPUT NAME="bouton" TYPE="RADIO" VALUE="oui">oui
<BR>
<INPUT NAME="bouton" TYPE="RADIO" VALUE="non">non
<BR>
<CENTER>
<INPUT TYPE="SUBMIT" VALUE="soumettre">
</CENTER>
</FORM>
</H4>
</BODY>
</HTML>
Explications :
<FORM ACTION="/BIN/progcours.exe?dico_francais+nom_propre" METHOD="POST">
Cette ligne indique que le formulaire fait appel à un programme exécutable en C qui se nomme progcours.exe. De plus nous passons en ligne de commande deux paramètres, dico_francais et nom_propre.
- Le programme en C
Le programme source aboutissant à l'exécutable progcours.exeBR>est le suivant :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
main(argc,argv)
int argc;
char *argv[];
{
char buffer[2048];
scanf("%s",buffer);
printf("Content-type: text/html\n\n");
printf("<HTML><H4>Le buffer lu contient : |%s|<BR>",buffer);
printf("argc = %d<BR>",argc);
printf("argv[0] = %s<BR>",argv[0]);
printf("argv[1] = %s<BR>",argv[1]);
printf("argv[2] = %s<BR>",argv[2]);
printf("</H4> </HTML>");
printf("<IMG SRC=\"./fil.gif\">");
}
Explications :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
|
Déclaration des librairies utiles lors de la compilation
|
main(argc,argv)
int argc;
char *argv[];
|
BR>
Déclaration des variables d'entrées afin de récupérer les éléments passés en ligne de commande.
|
char buffer[2048];
|
Déclaration du vecteur de caractères qui contiendra les données transmises par le formulaire
|
scanf("%s",buffer);
|
Fonction permettant de récupérer les données transmises par le formulaire
|
printf("Content-type: text/html\n\n");
|
Ligne préparant l'envoi de données sur une page web
|
printf("<HTML><H4>Le buffer lu contient : |%s|<BR>",buffer);
|
Affichage des données brutes lues
|
printf("argc = %d<BR>",argc);
|
Affichage du nombre de paramètres passés sur la ligne de commande
|
printf("argv[0] = %s<BR>",argv[0]);
printf("argv[1] = %s<BR>",argv[1]);
printf("argv[2] = %s<BR>",argv[2]);
|
Affichage des arguments passés sur la ligne de commande. Le argv[0] contient le nom du programme exécutable
|
La compilation est lancée grâce à la commande :
cc -o progcours.exe progcours.c
- Le résultat
Lorsque l'utilisateur clique sur soumettre le programme progcours.exe est exécuté et affiche le résultat suivant :
Nous remarquons que les caractères accentués sont bien codés et devront être transformés avant toute utilisation.
La première ligne contient les couples NOM=VALEUR pour zone et bouton.
zone=... contient le texte qui a été tapé dans la zone de saisie. zone étant le nom de la variable.
& sépare les deux couples NOM=VALEUR
bouton=oui contient la valeur du bouton cliqué (VALUE=...). Ici oui
argc et les argv[..] contiennent les informations passées sur la ligne de commande