Les directives d'inclusion côté serveur (Server Side Includes) permettent de construire des pages Web avant leurs envoi à l'agent utilisateur.

<!--#Directive Instructions...-->

Les directives SSI sont capables d'exécuter diverses tâches à partir du serveur hôte :

  • Insertion directe dans la page Web de valeurs de variables d'environnement HTTP.
  • Exécution d'une commande de Shell ou d'une application CGI dans les pages.
  • Insertion des valeurs résultants d'une commande ou d'une application.
  • Insertion de la date, de l'heure et de la dernière modification d'une page.
  • Insertion de la taille d'un fichier.
  • Insertion d'une page dans une autre.
Les Directives
Directive
Description
<!--#config timefmt="Codes_Date_Heure"
| errmsg="Message d'erreur" | sizefmt="ABBREV | BYTE"-->
applique, pour chaque page, une option de configuration date et heure (timefmt), de gestion d'erreurs (errmsg), ou la taille d'un fichier (sizefmt) en kilo-octets (ABBREV) ou en octets (BYTE).
<!--#echo var="VARIABLE_HTTP"-->
affiche la valeur d'une variable d'environnement HTTP.
<!--#exec cmd | cgi="Instruction"-->
exécute une instruction directement sur le serveur hôte. Si une commande de Shell doit être exécutée, il faut utiliser cmd. Si une application CGI doit être exécutée, il faut utiliser cgi.
<!--#flastmod file | virtual="Fichier"-->
retourne la date et l'heure de la dernière modification du fichier.
<!--#fsize file | virtual="Fichier"-->
retourne la taille d'un fichier.
<!--#include file | virtual="Fichier"-->
inclut le contenu d'une page dans une autre.

Selon la localisation du fichier, il faut utiliser soit file, si un chemin physique (\rep\fichier.asp)est utilisé ou si la cible se trouve dans le même répertoire, sinon virtual (rep/fichier.asp) dans le cas où un chemin virtuel est employé.

En ce qui concerne l'inclusion des fichiers par la directive #include, couramment il est fait appel à l'extension inc pour différencier les fichiers à inclure des fichiers ASP. Cependant, cette pratique peut provoquer des problèmes de sécurités, c'est-pourquoi, il est préférable de conserver une extension asp pour tous les fichiers contenant du code sensible.

La directive #exec peut également provoquer de graves problèmes de sécurités puisqu'il est possible de lancer des commandes de Shell sur le serveur avec toutes les conséquences que cela comporte. En conséquence, l'utilisation de tels instructions doivent se faire avec le maximum de précautions.

Exemple [voir]
<!-- #config errmsg="Une erreur est survenue sur la page !"-->
<!-- retourne le message d'erreur. -->
Une erreur est survenue sur la page !

<!-- #config timefmt="%d/%m/%Y"-->
<!-- retourne la date selon le format JJ/MM/AA -->
10/11/2001

<!-- #echo var="PATH_INFO" -->
<!-- retourne -->
/laltruiste/coursado/exemple_ado/directive_ssi.asp

<!-- #exec cmd="dir *.zip"-->
<!-- retourne -->
fichier.zip
...
fichierN.zip

<!-- #exec cgi="cgi-bin/application.exe"-->
<!-- exécute le fichier application.exe -->

<!-- #config timefmt="%d/%m/%Y %H:%M:%S"-->
<!-- #flastmod file="index.html"-->
<!-- retourne la date de dernière modification selon le format spécifié. -->
10/11/2001 20:45:20

<!-- #config sizefmt="BYTE"-->
<!-- #fsize file="\download\fichier.zip"-->
'retourne la taille en octet -->
1245800

<!-- #include virtual="../rep/fichier.asp"-->
<!-- Incorpore tout le contenu dans la page courante. -->
Sommaire