FTLS.org 
Francais     English
 
 
Accueil
 
 Linux
Introduction
Liens
 
 Initiation
Internet
HTML
CGI
Perl
 
 Archives
Java
Perl Tools
Scripts CGI
Scripts PHP
 
 Calculatrices
HP 48
TI 92
 
 Gratuit du Net
A Gratuit
Comparatifs
Se divertir
 
 Aide Webmasters
Trucs & Astuces
JavaScript
 
 Site
Partenaires
Contact
 
 Powered by
linux
 

Initiation


Introduction au CGI (Common Gateway Interface)



6. Les Server Side Includes

    Nous avons vu précédemment les différentes façons d'appeler un CGI :
via son URL, via une balise HTML comme <A HREF="URL">, <IMG SRC="URL"> ou <FORM ACTION="URL">.

    Dans ces conditions, il est donc impossible de faire un CGI qui insère des informations directement dans une page HTML statique (sauf pour une image).

    Les Server Side Includes (SSI) ou Server Parsed HTML apportent cette. En effet, un SSI fait directement appel à un CGI, au coeur d'une page HTML et affiche sont résultat à la l'endroit de l'appel. Pour ce faire, on insère des commandes spécifiques dans des commentaires HTML (<!-- -->) et on renomme la page HTML avec l'extension .shtml.

    Ainsi si l'option est activée sur le serveur, à chaque fois que le serveur rencontre une page l'extension .shtml, il va analyser son contenu afin de rechercher et exécuter les éventuelles commandes SSI qui s'y trouvent. Bien sûr, ce mécanisme entraîne naturellement une légère surcharge de travail pour le serveur.

    6.1 Quelques commandes SSI

        Afin d'appeler une commande SSI il faut insérer un code du type suivant dans le corps de votre page HTML à l'endroit ou vous désirez que le résultat s'affiche.

            <!--#commande arg1=val1 arg2=val2 ... -->

        Les principales commandes reconnues sont :

    config :
    Permet de définir un certain nombre de paramètres relatifs à l'utilisation des SSI, comme le format date /heure ('timefmt') ou le format taille des fichiers ('sizefmt') renvoyées par d'autres commandes. L'argument a pour valeur une chaîne de format entre guillemets ("") pouvant contenir un certain nombre de codes de champs précédés du caractère "%".
        Exemple:
        <!--#config timefmt="%d/%m/%y %H:%M:%S"--> définit le format de date tel que : 12/01/97 16:02:43.

    echo :
    Affiche la valeur d'une variables d'environnement spécifiée et reconnues par les SSI, à savoir : DATE_GMT (date courante GMT), DATE_LOCAL (date locale), DOCUMENT_NAME (nom du fichier HTML courant), DOCUMENT_URI (le chemin d'accès au document courant) et LAST_MODIFIED (date de dernière modification de la page).
        Exemple:
        <!--#echo var="LAST_MODIFIED"-->

    exec :
    Permet d'exécuter soit un programme CGI (cgi="/cgi-bin/nom_cgi.cgi"), soit une commande quelconque du système (cmd="commande"), la sortie étant insérée à l'emplacement où exec a été appelé. Il est a noté qu'en cas d'exécution d'un CGI, les arguments passé au programmes sont ceux de la page shtml.
        Exemple:
        <!--#exec cmd="date"--> affiche la date système.

    fsize :
    Renvoie la taille d'un fichier dont le chemin est indiqué via l'argument file ou virtual (suivant que le chemin est exprimé par rapport au répertoire / du serveur ou non).
        Exemple:
        <!--#fsize file="index.html"--> renvoie la taille du fichier index.html du répertoire courant.

    flastmod :
    Indique la date de dernière modification d'un fichier. Cette commande admet les mêmes arguments que la commande précédente.
        Exemple:
        <!--#flastmod file="index.html"--> renvoie la date de dernière modification du fichier index.html du répertoire courant.

    include :
    Permet d'insérer le contenu d'un fichier (file="min_fichier") dont on indique le chemin avec les mêmes arguments que pour les deux dernières commandes. Ou le résultat de l'exécution d'un programme (virtual="/cgi-bin/nom_cgi.cgi") Il est a noté qu'en cas d'exécution d'un CGI, les arguments passé au programme sont ceux le la commande.
        Exemple:
        <!--#include file="index.html"--> affiche le contenu du fichier index.html du répertoire courant.
        <!--#include virtuel="/cgi-bin/nom_cgi.cgi?mes_rags"--> affiche le résultat de l'exécution du CGI.


        Il existe d'autre commandes, en particulier certaine permettant d'exécuter des conditions, pour cela il est préférable de consulter la documentation du serveur web.

    Exemple :
        Cette exemple très simple mais particulièrement utile permet afficher automatique la date de dernière modification d'un fichier HTML. Bien sur, vous devez enregistrer ce fichier avec l'extension .shtml .

        Dans cet exemple, on définit tout d'abord le format d'affichage des dates dans le reste du documents, puis on insère la date de dernière modification du fichier considéré, grâce à la variable d'environnement LAST_MODIFIED.

    <HTML>
    <HEAD><TITLE>Exemple d'utilisation des SSI</TITLE></HEAD>
    <BODY>
    ...
    Date de dernière modification :
    <!--#config timefmt="%d/%m/%y %H:%M:%S"-->>
    <!--#echo var="LAST_MODIFIED"-->
    </BODY>
    </HTML>

    6.2 Sécurité et SSI

        La commande exec ou virtual permet d'exécuter n'importe quelle commande présente sur le serveur. Il y a donc d'importants risques en matière de sécurité au même titre que les programmes CGI. C'est pour cela que la plupart des hébergeurs publics désactivent ces options...



 
© Copyright 2000 FTLS (Tyndiuk Frédéric). All rights reserved.
Last Update 08/03/2000 - Send all comments to webmaster@ftls.org