Ecrire un script cgi.
Mettre le script dans le répertoire cgi-bin du serveur.
Ecrire un programme HTML pour appler le script.
- cgi 1 -
Hello World
Nous allons écrire un script pour afficher Hello
World en réponse à un clic dans un document
HTML
cgi1 .pl
#!/usr/local/bin/perl5
|
cgi1.htm
<html> <head><title>Essai CGI Hello World</title></head> <body> <form method="get" action="/cgi-bin/cgi1.pl"> <input type="submit" value="Afficher"> </form> </body> </html> |
#!/usr/local/bin/perl5 Demande au serveur d'appler l'interpréteur PERL dans /usr/local/perl5
à changer selon l'emplacement du PERL
- cgi 2 -
Afficher en Couleurs
cgi2.pl
#!/usr/local/bin/perl5 print "Content-type: text/html\n\n"; exit(0);
|
cgi2.htm
<html> <head><title>Test CGI2</title></head> <body> <form method="get" action="/cgi-bin/cgi2.pl"> <input type="submit" value="Afficher"> </form> </body> </html> |
- cgi 3 -
Afficher en format texte
Pour afficher du texte ordinaire, il suffit de
spécifier le format texte pour les données.
print "Content-type: text/plain\n\n";
cgi3.pl
#!/usr/local/bin/perl print "Content-type: text/plain\n\n"; |
cgi3.htm
<html> <head><title>Test CGI3</title></head> <body> <form method="get" action="/cgi-bin/cgi3.pl"> <input type="submit" value="Afficher"> </form> </body> </html> |
- cgi 4 -
GET ou POST
Les variables d'environnement sont dans un tableau associatif Perl :
%ENV
Il est facile dans ce cas d'obtenir la méthode utilisée par la requête ; GET ou
POST en accedant à la variable d'environnement REQUEST_METHOD comme suite
:
$methode=$ENV{'REQUEST_METHOD'};
cgi4.pl
#!/usr/local/bin/perl5 $methode=$ENV{'REQUEST_METHOD'}; # méthode utilisée par la requête |
cgi4.htm
<html><head><title>Test CGI4</title></head> <body> <form method="post" action="/cgi-bin/cgi4.pl"> <input type="submit" value="Affichier Méthode"> </form> </body> </html> |
- cgi 5 -
Les Données et GET
Avec la méthode GET les données sont gardées dans une variable
d'environnement :
QUERY_STRING. Pour récupérer
ces données, il suffit d'une instruction comme
$donnees=$ENV{'QUERY_STRING'};
cgi5.pl
#!/usr/local/bin/perl5 $donnees=$ENV{'QUERY_STRING'}; # les données sont dans QUERY_STRING |
cgi5.htm
<html><head><title>Test CGI5</title></head> <body> <form method="get" action="/cgi-bin/cgi5.pl"> Nom : <input type="text" name="nom"> <input type="submit" value="Envoi"> </form> </body> </html> |
- cgi 6 -
Les Données avec POST
Avec la méthode POST les données sont lues sur le flux d'entrée
STDIN. La variable d'environnement CONTENT_LENGTH indique la taille des données.
$taille=$ENV{'CONTENT_LENGTH'};
# obtenir la taille des données
read(STDIN,$buff,$taille); # lire sur l'entrée standard et
mettre les données dans $buff
cgi6.pl
#!/usr/local/bin/perl5 $taille=$ENV{'CONTENT_LENGTH'}; # taille données |
cgi6.htm
<html><head><title>Test CGI6</title></head> <body> <form method="post" action="/cgi-bin/cgi6.pl"> Nom : <input type="text" name="nom"> <input type="submit" value="Envoi"> </form> </body> </html> |