CGI avec PERL RESUME SOMMAIRE TABLES DES MATIERES

Transcription

CGI avec PERL RESUME SOMMAIRE TABLES DES MATIERES
CGI avec PERL
ERIC HERMANN
RESUME
Avec Le Programmeur CGI avec Perl, vous disposez de tout ce qu'il vous
faut pour créer des pages Web interactives et dynamiques. Nul besoin d'être
programmeur confirmé pour aborder cet ouvrage : une présentation complète de
l'environnement propre à la programmation CGI (Common des Gateway Interface)
et des analyse détaillées des mécanismes de Perl vous aideront à maitriser la
programmation pour Internet.
Ainsi, à travers de nombreux exemples, vous apprendrez à développer des pages
en HTML.
Vous serez rapidement capables de dynamizer vos pages Web en leur
ajoutant interactivité, sons, listes d'adresses, formulaires, animations, décompte
d e s visiteurs, etc. Vous découvrirez également les différents méthodes pour
sécuriser l'accès à votre site et obtenir les informations sur vos visiteurs.
SOMMAIRE
Introduction
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
CGl et son environnement
Communication entre serveur et browser
Commandes Server Side lnclude
Formulaires pour collecter et envoyer des douées
Décoder les données envoyées à un programme Col
Les variables d'environnement
Créer un catalogue en ligne
Les bibliothèques Col
Images cliquables dans une page Web
En savoir plus sur les visiteurs de son site
Utilisation de Internat Mail
Protéger son serveur des intrusions
Déboguer ses programmes CG
Astuces, conseils et perspectives
Annexe A:
Tqpes et extensions de fichier MIME
Annexe B :
Formulaires HTML
Annexe C :
Codes d'état et phrases de raison
Annexe D :
Programme imagemap.c de NCSA
Index
5
29
57
83
111
145
111
209
247
275
321
341
371
395
413
417
429
433
441
TABLES DES MATIERES
Introduction
Conventions du livre
15
2
CGI et son environnement
Common Gateway Interface (CGI)
HTML, HTTP et le programme CGI
Rôle de HTML
En-têtes HTTP
Programme CGl
Répertoires du serveur
7
9
9
11
12
13
16
17
18
Répertoires du serveur
Racine du serveur (server root)
Racine document
Privilèges, permissions et protection de fichiers .
Serveurs Web
Serveurs Windows
Serveur CERN
Serveur NCSA
Serveur Netscape
Principes de la programmation CGI
Programmes CGI et sécurité
Méthodes de transfert de données de CGl
Environnement CGI sans état
Quelques bogues courants
Dites au serveur que votre fichier est exécutable
Rendez votre programme exécutable
Résumé
Questions - Réponses
13
13
15
15
19
19
20
20
20
21
21
22
22
24
25
26
27
28
Communication entre serveur et browser
Localisateur uniforme de ressource (URL)
Protocole
Nom de domaine
Répertoire, fichier ou programme CGI
Demander une page Web avec un browser
Utiliser la connexion Internet
TCP/lP, le socket public et le port
Pour mieux comprendre : l'analogie du standard téléphonique
Utiliser les en-têtes HTTP
Codes d'état dans les en-têtes de réponse
En-tête de requête Method
En-tête de requête Full Method
En-tête de requête Accept
En-tête de réponse HTTP
Renvoyer des pages Web différentes selon le contenu de l'en‑tête User-Agent
Exercice 2. 1. Lire et décoder le champ User-Agent
Résumé
Questions - Réponses
30
30
30
31
32
35
35
35
36
37
38
38
42
43
47
51
54
55
Commandes server Side Include
Utiliser les négations SSI
Fonctionnement des SSI
Activer ou non des SSI
Directive Options
Commande AddType
Fichier srm.conf
Ajouter automatiquement la date de dernière modification sur une page
Présenter la syntaxe complète des commandes SSI
Commande SSI config
Commande include
Commande flastmod
Commande fsize
Commande echo
Exercice 3.1. La commande exec
Les SSI et la sécurité
Résumé
Questions - Réponses
58
59
59
60
60
61
62
64
65
69
71
74
74
77
80
80
81
Formulaires pour collecter et enoyer des données
Présentation de la balise Form de HTML
Attribut Method de Form
84
85
Générer une page Web dynamiquement
Différences entre pages Web CGI et fichiers HTML .
87
87
Exercice 4.1. Votre premier programme CGI
Analyse de first.cgi :
Envoyer des variables dans son programme CGI
Balise HTML Input
Envoyer des données à votre programme CGI à l'aide du champ Text
Le bouton Submit pour envoyer des données à son programme CGI
Formulaire de saisie de texte rapide et élégant
Formater son formulaire à l'aide d'un tableau
Scripts NPH-CGI
Rapidité des scripte NPH-CGl
Données codées
Ce qui arrive aux données saisies dans un formulaire
88
89
90
93
94
96
97
99
100
100
100
102
19
20
21
22
Ce qui arrive aux données saisies dans un formulaire
Paires nom/valeur
Codage dans L'URL
Résumé
Questions - Réponses
102
103
104
107
108
Décoder les données envoyées à un programme CGI
Méthode Post
Boutons radio dans les formulaires et les scripts .
Format du bouton radio HTML
Attribut Name
Attribut Value
Attribut Checked
Règles du bouton radio
Lire et décoder des données dans un programme CGI
Fonction ReadParse
Créer des paires nomlvaleur à partir de la chaîne de requête QUERY STRING
Décoder les paires nom/valeur
Exercice 5.1. Renommer les variables de ReadParse
Utiliser la méthode Post
Fonction read
Inclure d'autres fichiers et fonctions dans vos programmes CGI
Utiliser les données envoyées par des boutons radio
Bloc If Elsif de Perl
Cases à cocher
Une base de données dans un programme CGI
Des menus déroulants dans ses scripts et dans ses formulaires
Balise HTML Select
Attribut Option
Données provenant d'un fichier
Ouvrir un fichier
Lire des données formatées
Utiliser des données formatées dans un fichier
Données pour simplifier la programmation
Résumé
Questions - Réponses
112
113
114
114
116
117
117
117
118
121
122
124
125
125
128
129
130
130
132
132
132
133
135
138
138
139
140
142
143
Les variables d'environnement
Présentation des variables d'environnement
Portée d'un programme
Variable d'environnement Path
Afficher les variables d'environnement
Envoyer des variables d'environnement à son adresse e-mail
Sous-routines de Perl
Sous-routine Unescape
Sous-routine cgi_encode
Programme principal
Deux types de variables d'environnement
Variables d'environnement dépendant du serveur
Variables d'environnement dépendant des en-têtes de requête
Savoir qui appelle sa page Web
Obtenir le nom d'utilisateur d'un visiteur de .sa page Web
Utiliser les cookies
Résumé
146
146
148
150
153
156
157
158
158
162
163
163
167
170
171
175
Questions - Réponses
176
Créer un catalogue en ligne
Utiliser formulaires, en-têtes et codes d'état
Effectuer l'inscription de son client
Mettre en place une protection par mot de passe
Utiliser le fichier de mot de passe
Utiliser la méthode d'authentification
Gérer des formulaires multiples
Résumé
Questions - Réponses
178
183
193
193
196
198
206
207
Les bibliothèques CGI
Bibliothèque cgi-lib.pl
Déterminer la méthode de requête
Décoder des données CGI entrantes
Imprimer l'en-tête de contenu HTTP
Imprimer les variables envoyées à .son programme CGI
Imprimer en format compact les variables envoyées à son programme CGI
Utiliser CGI. pm pour créer et lire des formulaires HTML
Installer CGI. pm
210
211
211
212
212
213
213
214
23
24
25
Installer CGI. pm
Lire des données d'entrée
Enregistrer les données reçues
Enregistrer l'état courant d'un formulaire
Créer les en-têtes HTTP
Créer un en-tête HTML
Terminer un document HTML
Créer des formulaires
Créer un bouton Submit
Créer un bouton Reset
Créer un bouton Remise à zéro
Créer un champ caché
Créer un bouton d'image cliquable
Traiter les caractères HTML spéciaux
Bibliothèque CGI pour C : cgic
Ecrire une application CGI
Fonctions de chaîne
Fonctions numériques
Fonctions de sortie d'en-tête
Tableau de référence des variables cgic
Résumé
Questions - Réponses
214
215
215
217
218
218
219
219
227
228
228
228
229
229
230
230
231
234
239
240
243
243
Images cliquables dans une page Web
Définir des coordonnées graphiques
Transmettre les coordonnées X,Y au serveur
Attribut Ismap et balise Img Balise Ismap et instruction
<INPUT TYPE=IMAGE>
Créer un lien avec le programme de gestion de coordonnées graphiques
Programme imagemap.c
Exploiter le fichier de correspondances graphiques
Syntaxe du fichier de correspondances
Emplacement du fichier de correspondances graphiques
Optimiser le traitement de l'image dynamique
Utiliser une URL par défaut
Classement des correspondances
Utiliser des images serveur cliquables
Attribut Usemap
Balise Map
Balise Area et .ses attributs
Résumé
Questions - réponses
248
252
253
254
256
257
259
260
261
261
262
263
269
269
270
270
272
273
Eu savoir plus sur les visiteurs de son site
Définir un compteur d'accès
Utiliser les fichiers de log
Utiliser page-stats.pl pour établir des statistiques par page
Récupérer les statistiques de consultations : wusage 3.2
Configurer wusage
Accès par domaine :
Exécuter wusage
276
276
279
283
284
285
286
Quand et pourquoi purger le fichier access_log
Principes de bases concernant les compteurs textuels et graphiques
Travailler avec des fichiers DBM
Verrouiller un fichier
Créer son propre système de verrouillage de fichiers
Utiliser la commande flock()
Exclure des domaines lors du comptage
Afficher le compteur
Transformer des compteurs en graphiques
Générer des compteurs à partir d'une image bitmap
Utiliser le compteur d'accès aux pages d'accueil Web
Utiliser la bibliothèque gd 1.2 pour générer des compteurs d'images à la volée
Utiliser la bibliothèque gd 1.2. pour générer des images à la volée
Types globaux
Fonctions de création, de destruction, et de manipulation de fichiers
Fonctions de dessin
Fonctions d'interrogation
Manipulation de textes et de polices
Fonctions de manipulation des couleurs
Fonctions de copie et de redimensionnement
Résumé
Questions - Réponses
287
287
288
290
290
291
292
293
294
294
300
303
305
307
308
310
313
314
315
316
318
318
Utilisation de Internet Mail
25
26
27
28
Utilisation de Internet Mail
Présentation
Programme UNIX mail
Programme UNlX .sendmail
Utiliser des programmes e-mail CGI
WWW Mail Cateway
Utilisation de variables
Exploitation d'un utilitaire de messagerie
Créer un outil de messagerie personnalisé
Personnalisation d'un formulaire
Envoi d'un formulaire vierge
Limitation des accès de la messagerie
Sécurité d'une messagerie
Définir une expression standard
Syntaxe de l'expression standard
Nombre d'occurrences
Utiliser des caractères spéciaux
Résumé
Questions - Réponses
322
322
324
326
326
327
328
330
330
333
334
341
342
342
343
343
345
345
Protéger son serveur des intrusions
Protéger ses CGI contre les saisies des utilisateurs
Protéger ses répertoires à l'aide du fichier de contrôle d'accès
Mise en place d'une protection par mot de passe
Utilisation des directives d'autorisation
Directive AuthType
Aspects secondaires de la sécurisation
Mode Taint (Protecteur) de Perl
Nettoyage des Fichiers de Cookies
Résumé
Questions - Réponses
349
352
360
362
362
364
366
366
368
369
Déboguer ses programmes CGI
Identifier le programme fautif
Déterminer si le programme s'exécute
Vérifier la syntaxe du programme
Vérification de la syntaxe dans la ligne de commande
Compréhension des messages d'erreur de Perl
Erreurs de syntaxe les plus courantes
Visualiser les sorties HTML produites par Perl
Utiliser les en-têtes MIME
Examiner les erreurs dans le code HTML renvoyé
Visualiser l'environnement du programme CGI
Afficher l'environnement « brut »
Afficher les couples nom/valeur
372
373
374
374
374
375
378
378
379
380
380
382
Déboguer en ligne de commande
Tester sans passer par le serveur HTTP
Simuler une requête Get
Utiliser le mode Débogage de Perl
Lire le fichier de suivi d'erreur du serveur
Déboguer avec la commande print
Quelques programmes de débogage
Afficher l'environnement
Afficher les valeurs d'appel - méthode Get
Afficher les valeurs d'appel - méthode Post
Afficher des informations de débogage
Un dernier mot sur le débogage
Résumé
Questions - réponses
382
382
383
384
386
387
389
389
390
391
391
392
393
393
Astuces, conseils et perspectives
Créer des pages s'adaptant aux browsers
Simplifier un code Perl
Un Perl évolué : Perl 5
Python : un nouveau langage de programmation CGI
Comparaison entre Python et Perl
Présentation du langage Python
Implémenter Python
Java: mettre un peu de vie dans HTML
Fonctionnement de Java
Exécution d'un programme Java
Exemple d'applet Java
Implémenter Java
Ressources CGI
Ressources Internet utiles pour la programmation CGI
396
397
399
400
400
401
402
402
403
403
404
404
407
407
Ressources Internet utiles pour la programmation CGI
Ressources Perl
Ressources de produits spécifiques
Résumé
407
408
409
411
Annexe A: Types et extensions de fichier MIME
Annexe B : Formulaires HTML
Attributs du formulaire
Action
EncType
Method
Script
Champs de saisie
Cases à cocher
Attachements de fichiers
Champs cachés
Champs image
Champs à mot de passe
Boutons radio
Champs d'intervalle
Boutons Reset
Champs image inscriptible (Scribble on image)
Champs texte à ligne unique
Attributs autorisés pour l'élément Input
Accept
Class
Disabled
Error
ID
Lang
Max
MaxLength
MD
Min
Name
Size
SRC (Source)
Type
Value
Textarea
Cols
Rows
Eléments Select
Height
Multiple
SRC (Source)
Units
Width
Eléments Option
Selected
419
419
419
419
419
420
420
420
420
420
421
421
421
421
421
422
422
422
423
423
423
423
424
424
424
424
424
424
424
425
425
425
425
426
426
426
427
427
427
427
427
428
428
Annexe C : Codes d'état et phrases de raison
429
Annexe D : Programme imagemap.c de NCSA
433
Index
TOP
441

Documents pareils