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