La maintenance des pages web, tout autant que l'insertion de contenu
"à la volée", deviennent des opérations
particulièrement simples en tirant profit des Server Side
Includes (SSI). Il s'agit d'un jeu d'instructions du CGI (Common
Gateway Interface) qui permettent d'insérer (Includes)
dynamiquement du code HTML dans la page web, côté
serveur (Server Side), de sorte que la page envoyée à
votre navigateur soit entièrement en HTML, à savoir
sans instructions SSI qui, elles, n'apparaissent que dans le code
de la page correspondante stockée sur le serveur.
Tous les serveurs ne permettent pas l'analyse syntaxique des instructions
SSI, aussi la première étape consiste à s'assurer
que le serveur qui héberge votre site ne fait pas partie
de cette catégorie.
Syntaxe
Les instructions SSI sont insérées lors de la
conception de la page web sous forme de commentaires HTML.
Ainsi par exemple, on pourra écrire (au sein des balises
<BODY> et </BODY>):
<!-- #echo var="DATE_LOCAL"
-->
(certains serveurs rendent indispensable la présence
d'un espace avant "-->")
Cette commande (#echo) affichera la date et l'heure de l'affichage
de la page sur votre navigateur. L'inscription (et non la commande
SSI) figurera dans le code de la page (au contraire du fonctionnement
d'instructions Javascript par exemple).
Ainsi, la commande:
<!-- #include virtual="boutdepage.html"
-->
permettra d'inclure le code entier de boutdepage.html dans
le code de la page comportant l'instruction SSI, et ceci de manière
transparente puisque le navigateur n'affichera qu'un code "agrégé"
pour la page correspondante.
La fichier de la page web qui contient des instructions SSI comporte
usuellement l'extension .shtml au lieu de .html, mais certains
serveurs permettent à des pages en .html de comporter des
instructions SSI. (dans ce cas, il est néanmoins bon de caractériser
les pages comportant des instructions SSI, ou, à défaut,
de caractériser les pages qui contiendront des portions de
code destinées à être incluses par la commande
#include).
Principales commandes SSI
Outre #echo, qui permet d'afficher une variable d'environnement
CGI et SSI, sur le modèle donné plus haut, et #include,
qui permet d'inclure des portions de code HTML - on lui transmet
un fichier .htm, .html, .shtml ou .txt (mais pas de scripts CGI)
de deux manières: soit en spécifiant un chemin "virtuel"
(depuis la racine de votre site) par virtual="nomdefichier",
soit en spécifiant le chemin relatif (depuis le répertoire
de la page web contenant l'instruction SSI) par file="chemin/du/fichier/nomdefichier")
-, les principales autres commandes SSI sont les suivantes:
config |
permet de configurer les messages
d'erreur SSI (#config errmsg="message"), le
format de la date et de l'heure (#config timefmt="format")
ou le format de la taille d'un fichier (#config sizefmt="format"). |
fsize |
écrit la taille d'un fichier
transmis par file="..." ou virtual="..." |
flastmod |
écrit la date de dernière
modification d'un fichier transmis par file="..."
ou virtual="..." |
exec |
permet d'exécuter une commande Unix
sur le serveur (exemple: #exec cmd="/bin/date") ou
d'exécuter un script CGI (#exec cgi="monscriptcgi.cgi") |
Ce tableau appelle deux remarques:
- la première concerne le format de la date, de l'heure et
de la taille de fichier: la chaine format est bâtie
à l'aide des codes suivants;
- le script CGI transmis à la commande #exec ne doit pas
comporter de "?" - ceci n'est pas un problème car
un bouton de formulaire renvoyant à une page web contenant
l'instruction SSI #exec transmettra au CGI la chaine QUERY_STRING
(pourvu que la méthode GET
ait été employée), bien qu'une page web ait
été la cible première.
Il existe d'autres commandes SSI, mais celles qui précèdent
sont susceptibles de vous faire gagner un temps précieux
dans l'élaboration et surtout la maintenance de votre site
web (des morceaux de code HTML utilisés par toutes les pages
peuvent ainsi être modifiés avec l'assurance que la
répercussion sera automatiquement effectuée dans toutes
les pages qui les incluent). Un exemple concret d'utilisation du
SSI est donné par
http://bignosebird.com/sdocs/enable.shtml
|