L'appel à une commande SSI se fait ainsi :
<!――#COMMANDE PARAM="VALEUR" ――>
Par exemple :
<!――#echo var="DATE_LOCAL" ――>
Donne l'heure locale du serveur HTTP :
Fri Sep 10 01:21:01 1999
De plus, il faut que le document en question ait une extension
.shtml, .shtm ou .sht.
Les variables sont des références sur un certain nombre d'information auxquel on peut accéder via les SSI. Le contenu d'une variable est toujours une chaîne de caractères.
Voici une liste des variables les plus courantes :
ACCEPT_LANGUAGE : Liste des langues comprises par le
client,
AUTH_TYPE : Méthode d'authentification pour valider
le client distant,
CONTENT_LENGTH : Longueur des informations attachées
dans le cas d'une soumission de formulaire,
CONTENT_TYPE : Type d'information attachée dans le
cas d'une soumission de formulaire,
DATE_GMT : Date et heure du serveur HTTP à l'heure
GMT (Greenwich Meridian Time),
DATE_LOCAL : Date et heure locales du serveur
HTTP,
DOCUMENT_NAME : Nom complet du document,
DOCUMENT_URI : Chemin d'accès courant par rapport au
répertoire d'accueil du serveur HTTP,
FROM : 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,
HTTP_ACCEPT : Type MIME accepté par le client
distant,
HTTP_COOKIE : Cookies du serveur HTTP,
HTTP_USER_AGENT : Nom du logiciel navigateur client,
LAST_MODIFIED : Date et heure de la dernière
modification du document HTML courant,
PATH_INFO : Nom du chemin relatif par rapport au
répertoire d'accueil du serveur HTTP,
PATH_TRANSLATED : Information sur la variable PATH,
QUERY_STRING : Chaîne de caractères de recherche
envoyée par le navigateur,
QUERY_STRING_UNESCAPED : Chaîne de caractères non
transformée envoyée par le client,
REFERER : URL du document HTML de provenance du
client,
REMOTE_ADDR : Adresse IP du client distant,
REMOTE_IDENT : Nom distant de l'utilisateur pour
l'authentification,
REMOTE_HOST : Nom de la station cliente,
REMOTE_USER : Nom du client distant,
REQUEST_METHOD : Méthode par laquelle le document a
été demandé,
SCRIPT_NAME : Nom du script qui est exécuté,
SERVER_NAME : Nom de la machine sur laquelle
fonctionne le serveur HTTP,
SERVER_PORT : Nom du port du serveur HTTP,
SERVER_PROTOCOL : Nom et version du serveur HTTP
servant les pages,
SERVER_SOFTWARE : Nom du serveur HTTP.
breakLa commande break permet de terminer le document HTML à un
point quelconque. On l'utilise le plus souvent en la combinant avec un
if.
Exemple :
<!――#break ――>
configLa commande config permet de positionner un certain nombre
d'options de sortie HTML.
errmsg : positionne le fichier de sortie qui sert à
afficher les messages d'erreur des commandes SSI,
timefmt : positionne le format d'affichage de
l'heure,
sizefmt : positionne le format d'affichage de la
taille des fichiers,
cmdecho : met en service ou hors service la sortie
standard lors d'une commande exec,
cmdprefix : chaîne de caractères qui sert de préfixe
aux lignes issues d'une commande exec,
cmdpostfix : chaîne de caractères qui sert de
postfixe aux lignes issues de la commande exec,
onerr : positionne l'action qui sera exécutée en cas
d'erreur des commandes SSI. Les valeurs possibles du paramètre
onerr sont :
goto label : provoque un saut vers label,print text : provoque l'affichage de text.
Le texte peut contenir des balises HTML,error : provoque l'affichage d'un message d'erreur,break : provoque la fin de la page HTML,errorbreak : provoque la fin de la page HTML et un
message d'erreur, printbreak text : provoque la fin
de la page HTML et affiche text.Exemple :
<!――#config errmsg="error.txt"
onerr="break" ――>
echoLa commande echo permet d'insérer dynamiquement du texte dans
les documents HTML. Le paramètre associé à echo est var.
Outre des chaînes de caractères classiques, echo dispose d'un
certain nombre de variables prédéfinies (celles-ci varient d'un serveur
à l'autre). Mais rien n'empêche d'utiliser des variables que l'on a
fixées nous même.
Exemple :
<!――#echo var="LAST_MODIFIED"
――>
emailLa commande email permet d'envoyer un courrier électronique dès
qu'une page est accédée ou qu'un formulaire est soumis. Les paramètres
fromhost, tohost, fromaddress et
toaddress doivent être renseignés, les autres étant
facultatifs.
Voici la liste des paramètres :
fromhost : définit le nom de l'ordinateur qui émet
le courrier,tohost : définit le nom du serveur SMTP vers lequel
le courrier sera envoyé,fromaddress : définit l'adresse e-mail de
l'expéditeur,toadress : définit l'adresse du correspondant,message : définit le corps du message,subject : définit le sujet du message,sender : définit l'adresse de l'émetteur,replyto : définit l'adresse de retour du courrier,cc : définit le champs CC,inreplyto : définit le champs inreplyto,id : définit un numéro d'identifiant du courrier.
execLa commande exec permet d'exécuter une commande quelconque sur
le système d'exploitation du serveur Web.
Voici la liste des paramètres :
cmd : Permet de spécifier le nom et les paramètres
de l'exécutable qui sera appelé sur le serveur HTTP. La sortie des
exécutables ainsi appelés sera le document HTML lui même, comme décrit
dans le paramètre cmdecho de la commande config,
cgi : 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 document HTML lui même, comme décrit dans la commande
echo.Exemple :
<!――#exec cmd="ls -l"
――>
Donne :
total 56 -rw-r--r-- 1 root root 26796 Oct 14 1998 main.c -rw-r--r-- 1 root root 26447 Jul 13 1998 main.c.pre14 -rw-r--r-- 1 root root 723 Nov 19 1995 version.c
flastmodCette commande permet d'insérer la date de la dernière modification d'un fichier dans une page HTML. Il possède deux paramètres :
virtual : permet de spécifier une URL.file : permet de spécifier un nom de chemin dans le
système de fichier.Exemple :
<!――#flastmod file="exemple.html"
――>
fsizeCette commande permet d'insérer la taille d'un fichier dans une page
HTML. Comme pour flastmod, elle possède deux paramètres :
virtual : permet de spécifier une URL.file : permet de spécifier un nom de chemin dans le
système de fichier.Exemple :
<!――#fsize virtual|file="exemple.html"
――>
Le | permet de faire un ou logique (soit
virtual, soit file).
gotoLa commande goto permet de sauter vers une étiquette
#label sans tenir compte du code entre l'instruction
courante et l'étiquette. Cette commande ne comporte pas de paramètres.
Exemple :
<!――#goto ="etiquette" ――> <P> n'est pas imprimé... <!――#label ="etiquette" ――> <P> est imprimé!
ifCette commande permet d'effectuer une exécution sous certaines conditions. Pas de paramètres. La syntaxe est la suivante :
<!――#if "opérande1" comparaison "opérande2"
commande ――>
opérande : Opérande de comparaison, ce peut être une
variable ou une expression à évaluer.
comparaison : À choisir parmi '==',
'!='.commande : Commande exécutée si le test est vrai
(goto, echo, exec, ...).Exemple :
<!――#if "REMOTE_ADDR" != "197.200.17.2" goto="hide"――> <A href="secret-link.html">Lien secret</A> <!――#label ="hide"――>
includeLa commande include permet d'inclure le contenu d'un fichier à
l'endroit de la commande. Comme pour flastmod, elle possède
deux paramètres :
virtual : permet de spécifier une URL.file : permet de spécifier un nom de chemin dans le
système de fichier.Exemple :
<!――#include file="exemple.html"
――>
labelCette commande permet de positionner une étiquette pour un
goto (voir goto).
obdcLa commande odbc permet de soumettre des requêtes à une base de
données et de la mettre à jour. Les fonctionnalités disponibles sont
vraiment minimales, mais permettent de passer des commandes SQL à un
serveur de base de données (ce qui est déjà pas mal).
L'inconvénient est que l'on est vite limité par la langage. Pour faire quelque chose de plus gros, l faudra se tourner vers les CGI ou le langage PHP.
Quatre paramètres sont possibles :
connect : permet de se connecter à une base de
données existante,
Syntaxe :
<!――#connect="base,nom,mot_de_passe"
――>
debug : affiche des diagnostics concernant les
mécanismes ODBC et SSI. Les messages apparaissent dans le corps de la
page HTML à l'endroit où l'erreur se produit,
Syntaxe : <!――#debug string
――> (string est réservé pour un usage
ultérieur)
format : fournis un modèle de format des données
retournées par la base de données (SELECT),
Syntaxe : <!――#format="ordrecprintf"
――>(ordrecprintf au format standard du
langage C)
statement : effectue une requête SQL à la base de
données.
Syntaxe : <!――#statement="requeteSQL"
――>Exemple :
<!――#odbc connect="mabase,gilles,toto" ――> <!――#odbc statement="SELECT NOM, AGE" ――> <!――#obdc format="%s a %s ans<P>" ――>
Résultat :
Gilles a 34 ans