Présentation des SSI - Formation Continue
Transcription
Présentation des SSI - Formation Continue
Mathieu Berthet, IUT de vélizy Prés entation d e s SSI. 1. Introduction . Les SSI (Server Side Include) quand elles sont support ées par votre serveur sont un bon compro mi s entre le langage Javascript et les CGI. En effet si elles sont suppor t ée s par le serveur http, elle seront compatibles avec tous les navigateurs puisque le code des SSI sera transfor m é en HTML. Cependa n t il se peut que le serveur qui abrite votre page HTML les accepte, mais que pour des raisons de sécurité votre administrat e u r système ne vous autorise pas l'accès à cette option. ( voir le TP sur la configuration du serveur ). La technologie SSI qui n'était pas norm alisée jusqu'à présent est aujour d'h ui adoptée par les principaux serveurs http ( Netscape, Microsoft, Apache ), qui l'ont implanté sur leur serveur HTTP. Les SSI permet te n t d'exécuter de façon simple des primitives en temps réél sur le serveur, com me l'affichage de la date, le nombre de visiteurs ou de faire des tests conditionnels, pour envoyer un courrier électronique ou d'interroger une base de données pour y référencer la personne qui vient de vous lire. Tout cela peut être fait sans aucune progra m m a t ion de type CGI, mais par des portions de code incluses n'impor te où dans votre page HTML. Le format d'un appel SSI est le suivant : <!- - #<balis e > < v ariables > - - > Les balises reconnue s sont break, config, echo, email, exec, if, include, fsize, flast mo d, label, goto et odbc. Le mot réservé && placé devant une variable permet de l'évaluer avant d'éxecuter la comm a n d e SSI. 2. Configuration serveur. Afin que les fichiers suffixés .shtml soient pris en compte le fichier http d.conf doit comport er les para mèt res suivants: AddType text / h tml .shtml AddHandler server - parsed .shtml 3. Manipulation. Une page utilisant les SSI sera reconn u comme tel par le serveur Apache si elle porte l'extension .shtml. 1°) Utiliser la balise include pour insérer systé ma tique m e n t dans vos pages HTML un en tête et un pied de page : La balise include permet d'inclure le conten u d'un fichier dans la page HTML. Cette balise peut être récursive en SSI +. Les variables suivantes peuvent être ajoutées : · Virtual : cette variable permet de spécifier un nom de chemin relatif par rappor t au répertoire racine du serveur http. · File : cette variable permet de spécifier un nom de chemin relatif par rapport au répertoire du docume n t HTML courant. Ex : < ! - - #include file= ''toto.html '' - - > Pour systém a tiser un en- tête et un pied de page, vous devez donc créer trois pages : 1/ 3 Mathieu Berthet, IUT de vélizy · entete.ht ml qui contient les marque u r s html et le texte de l'en tête. · piedpage.ht ml qui contient les marqueu r s html et le texte du pied de page. · La page .shtml contena nt les balises include, en faisant attention à ce que l'ense m ble des trois pages forme un docume n t ou la syntaxe html est respectée. 2°) Afficher la date de dernière modification d'un fichier : La balise flastm o d permet d'insérer la date de dernière modification d'un fichier dans le docume n t HTML à l'endroit de la balise SSI. Les variables suivantes peuvent être ajoutées : Virtual : cette variable permet de spécifier un nom de chemin relatif par rapport au répertoire racine du serveur http. File : cette variable permet de spécifier un nom de chemin relatif par rapport au répertoire du docume n t HTML courant. 3°) Exécuter un progra m m e et renvoyer le résultat dans la page html. La balise exec permet d'exécuter une com ma n d e quelconque par le systè me d'exploitation du serveur. Les variables suivantes peuvent être utilisées: · cmd : cette variable permet de spécifier le nom et les para mèt re s de l'exécutable qui sera appelé sur le serveur http. La sortie des exécutables ainsi appelés sera le docum e n t HTML lui même, comm e décrit dans la balise format, cmdecho. · cgi : cette variable permet de spécifier un nom de CGI relatif au répertoire racine des CGI sur le serveur. La sortie des CGI ainsi appelés sera le docume n t HTML lui même, com me décrit dans la balise echo Insérer <! - - #exec cmd =" who " - - > pour savoir qui est connecté sur votre machine. 4°) Obtenir les valeurs des variables d'environne m e n t du serveur. La balise echo permet d'insérer certaines données dans une page HTML. La variable associée est var, qui est transfor m é e en une chaîne de caractères à l'intérieur du source HTML à l'endroit de la variable. Syntaxe : <!- - #echo var="DATE_LOCAL" - - > est la date du jour On peut assigner des variables issues de form ulaires par la méthode POST et des variables d'environne m e n t. Dans le cas où les variables sont issues d'un formulaire il suffit de donner en regard du mot var=, le nom que vous avez donné à la variable. La liste des variables d'environne m e n t peut varier d'un serveur à un autre mais la liste des variables les plus courant es est la suivante : ACCEPT_LANGUAGE liste des langues comprises par le client. AUTH_TYPE méthode d'aut he n tification pour valider le client distant. CONTENT_LENGTH la longueur des inform a tions attachées dans le cas d'une soumission de formulaire. CONTENT_TYPE type d'infor m ation attachée dans le cas d'une soumis sion de formulaire. DATE_GMT la date et l'heure courant es du serveur HTTP à l'heure GMT (Greenwich Meridian Time). DATE_LOCAL la date et l'heure locales du serveur HTTP. DOCUMENT_NAME le nom complet du docume n t. DOCUMENT_URI est le chemin d'accès du docum e n t courant par rapport au répertoire d'accueil du serveur HTTP. FROM l'adresse e- mail du client. FORWARDED nom du proxy server qui a rerouté le client. GATEWAY_INTERFACE nom et version du CGI utilisé sur le serveur HTTP. 2/ 3 Mathieu Berthet, IUT de vélizy HTTP_ACCEPT type MIME accepté par le client distant. HTTP_COOKIE cookies du serveur HTTP. HTTP_USER_AGENT le nom du logiciel navigateur client. LAST_MODIFIED la date et l'heure de la dernière modification du docume n t HTML courant. PATH_INFO le nom du chemin relatif par rapport au répert oire d'accueil du serveur HTTP. PATH_TRANSLATED informa tion sur la variable PATH traduite physique m e n t (avec informa tion de disque ou d'unité logique) vers l'URI. QUERY_STRING la chaîne de caractères de recherche envoyée par le navigateur. QUERY_STRING_UNESCAPED c'est la chaîne de caractères non transfor m ée envoyée par le client, ainsi les caractères blancs seront encore avec des valeurs de transfert. REFERER l'URL du docum en t HTML de provenance du client. REMOTE_ADDR l'adresse IP du client distant. REMOTE_IDENT le nom distant de l'utilisateur pour l'authen tification selon la recom m a n d a tio n RFC931 REMOTE_HOST le nom de la station cliente. REMOTE_USER le nom du client distant. REQUEST_METHOD méthode par laquelle le docume n t a été dema n dé. SCRIPT_NAME le nom du script qui est exécuté. SERVER_NAME le nom de la machine sur laquelle fonctionne le serveur HTTP. SERVER_PORT le nom du port du serveur HTTP. SERVER_PROTOCOL le nom et la version du serveur HTTP servant les pages. SERVER_SOFTWARE nom du serveur HTTP. 3/ 3