perl:programmation_web_cgi
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
perl:programmation_web_cgi [2009/03/15 01:13] – modification externe 127.0.0.1 | perl:programmation_web_cgi [2013/03/13 11:12] (Version actuelle) – root | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== CGI ====== | ||
+ | |||
====== 1. Programmation CGI simple ====== | ====== 1. Programmation CGI simple ====== | ||
Ligne 6: | Ligne 8: | ||
Un serveur web peut être configuré pour exécuter à la demande un script sous certaines conditions. Par exemple, avec Apache on peut utiliser cette directive pour exécuter automatiquement les fichiers //*.cgi// : | Un serveur web peut être configuré pour exécuter à la demande un script sous certaines conditions. Par exemple, avec Apache on peut utiliser cette directive pour exécuter automatiquement les fichiers //*.cgi// : | ||
+ | <code apache> | ||
AddHandler cgi-script .cgi | AddHandler cgi-script .cgi | ||
Options ExecCGI | Options ExecCGI | ||
+ | </ | ||
Si l' | Si l' | ||
+ | <code perl> | ||
# | # | ||
| | ||
Ligne 15: | Ligne 20: | ||
print " | print " | ||
print Dumper(\%ENV); | print Dumper(\%ENV); | ||
+ | </ | ||
Alors la consultation de l'URL exécutera notre script et nous verrons les informations suivantes : | Alors la consultation de l'URL exécutera notre script et nous verrons les informations suivantes : | ||
+ | <code php> | ||
$VAR1 = { | $VAR1 = { | ||
' | ' | ||
Ligne 30: | Ligne 37: | ||
' | ' | ||
}; | }; | ||
+ | </ | ||
On constate alors que la communication **en entrée** avec le programme s' | On constate alors que la communication **en entrée** avec le programme s' | ||
Ligne 36: | Ligne 44: | ||
Enfin, le résultat correspond simplement à la **sortie standard** du programme, avec une contrainte importante: elle commence par les entêtes HTTP de la réponse (optionnels, | Enfin, le résultat correspond simplement à la **sortie standard** du programme, avec une contrainte importante: elle commence par les entêtes HTTP de la réponse (optionnels, | ||
- | |||
===== Module CGI ===== | ===== Module CGI ===== | ||
Ligne 42: | Ligne 49: | ||
Exemple : | Exemple : | ||
+ | <code perl> | ||
# | # | ||
| | ||
Ligne 60: | Ligne 68: | ||
| | ||
print end_html(); | print end_html(); | ||
+ | </ | ||
La gestion des paramètres du CGI est très similaire à celle de //getopt//, sous la forme de paires clé/ | La gestion des paramètres du CGI est très similaire à celle de //getopt//, sous la forme de paires clé/ | ||
Ligne 77: | Ligne 86: | ||
Pour se préserver de surprises, Perl possède un mode de sécurité automatique appelé **taint mode**: toutes les informations en entrée (paramètres, | Pour se préserver de surprises, Perl possède un mode de sécurité automatique appelé **taint mode**: toutes les informations en entrée (paramètres, | ||
+ | <code perl> | ||
# | # | ||
| | ||
Ligne 88: | Ligne 98: | ||
$ENV{' | $ENV{' | ||
system(" | system(" | ||
+ | </ | ||
====== 2. mod_perl ====== | ====== 2. mod_perl ====== | ||
Ligne 101: | Ligne 111: | ||
L' | L' | ||
+ | <code apache> | ||
SetHandler perl-script | SetHandler perl-script | ||
PerlHandler Apache:: | PerlHandler Apache:: | ||
Options ExecCGI | Options ExecCGI | ||
+ | </ | ||
Pour programmer des applications plus complexes basées sur mod_perl, la méthode la plus efficace est très probablement d' | Pour programmer des applications plus complexes basées sur mod_perl, la méthode la plus efficace est très probablement d' | ||
- |
perl/programmation_web_cgi.1237079591.txt.gz · Dernière modification : 2013/03/13 11:10 (modification externe)