e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<?xml version="1.0" encoding="ISO-8859-1" ?>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
0a05fab9aadd37834734ffe106fc8ad4488fb3e3rbowen<!-- English Revision: 1646392:1673947 (outdated) -->
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<!-- French translation : Lucien GENTIS -->
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<!-- Reviewed by : Vincent Deffontaines -->
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<!--
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Licensed to the Apache Software Foundation (ASF) under one or more
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor contributor license agreements. See the NOTICE file distributed with
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor this work for additional information regarding copyright ownership.
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor The ASF licenses this file to You under the Apache License, Version 2.0
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor (the "License"); you may not use this file except in compliance with
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor the License. You may obtain a copy of the License at
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor http://www.apache.org/licenses/LICENSE-2.0
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Unless required by applicable law or agreed to in writing, software
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor distributed under the License is distributed on an "AS IS" BASIS,
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor See the License for the specific language governing permissions and
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor limitations under the License.
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor-->
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<manualpage metafile="ssi.xml.meta">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<parentdocument href="./">Recettes et tutoriels</parentdocument>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis<title>Tutoriel Apache httpd : Introduction aux "Inclusions C&ocirc;t&eacute; Serveur"
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor(Server Side Includes - SSI)</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<summary>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<p>Les SSI permettent d'ajouter du contenu dynamique &agrave; des documents
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzorHTML pr&eacute;existants.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</summary>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="related"><title>Introduction</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <related>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <modulelist>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <module>mod_include</module>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <module>mod_cgi</module>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <module>mod_expires</module>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor </modulelist>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <directivelist>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <directive module="core">Options</directive>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <directive module="mod_include">XBitHack</directive>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <directive module="mod_mime">AddType</directive>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <directive module="core">SetOutputFilter</directive>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <directive module="mod_setenvif">BrowserMatchNoCase</directive>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor </directivelist>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</related>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Cet article traite des Inclusions C&ocirc;t&eacute; Serveur (Server Side
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Includes), plus commun&eacute;ment appel&eacute;s SSI. Vous trouverez ici la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor mani&egrave;re de configurer votre serveur pour permettre les SSI, ainsi
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor qu'une introduction &agrave; quelques techniques SSI de base permettant
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor d'ajouter du contenu dynamique &agrave; vos pages HTML pr&eacute;existantes.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>La derni&egrave;re partie de cet article sera consacr&eacute;e aux
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor configurations SSI plus avanc&eacute;es, telles que les expressions
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor conditionnelles dans les directives SSI.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="what"><title>Qu'est-ce que SSI ?</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>SSI (Server Side Includes) est constitu&eacute; de directives plac&eacute;es dans
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor des pages HTML, et &eacute;valu&eacute;es par le serveur au moment o&ugrave; les pages
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor sont servies. Elles vous permettent d'ajouter du contenu g&eacute;n&eacute;r&eacute;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor dynamiquement &agrave; une page HTML pr&eacute;existante, sans avoir &agrave; servir la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor page enti&egrave;re via un programme CGI, ou toute autre technologie de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor contenu dynamique.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis <p>Par exemple, vous pouvez ins&eacute;rer la directive suivante dans une
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis page HTML existante :</p>
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis <example>
739ce874d738594946c2725c8ee01ef504720991lgentis &lt;!--#echo var="DATE_LOCAL" --&gt;
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis </example>
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis <p>Ainsi, lorsque la page sera servie, la directive sera &eacute;valu&eacute;e et
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis remplac&eacute;e par sa valeur :</p>
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis <example>
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis Tuesday, 15-Jan-2013 19:28:54 EST
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis </example>
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Le choix entre l'utilisation des SSI et la g&eacute;n&eacute;ration enti&egrave;re de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor la page par un programme quelconque, est en g&eacute;n&eacute;ral dict&eacute; par la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor proportion de contenu statique et de contenu devant &ecirc;tre g&eacute;n&eacute;r&eacute;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor chaque fois que la page est servie. SSI est id&eacute;al pour ajouter de
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis petites quantit&eacute;s d'information, comme l'heure courante dans
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis l'exemple pr&eacute;c&eacute;dent. Mais si la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor plus grande partie de votre page est g&eacute;n&eacute;r&eacute;e au moment o&ugrave; elle est
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor servie, vous devez vous tourner vers une autre solution.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="configuring">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<title>Configurer votre serveur pour permettre les SSI</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Pour permettre l'utilisation des SSI sur votre serveur, vous
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor devez ajouter la directive suivante dans votre fichier
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>httpd.conf</code>, ou dans un fichier <code>.htaccess</code>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor :</p>
d89089206f40f9a6d58528ff85050447d4a52d53lgentis<highlight language="config">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Options +Includes
d89089206f40f9a6d58528ff85050447d4a52d53lgentis</highlight>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Cette directive indique &agrave; Apache que vous d&eacute;sirez permettre la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor recherche de directives SSI lors de l'interpr&eacute;tation des fichiers.
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Notez cependant que la plupart des configurations contiennent de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor nombreuses directives <directive module="core">Options</directive>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor qui peuvent s'&eacute;craser les unes les autres. Vous devrez probablement
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor appliquer ces directives <code>Options</code> au r&eacute;pertoire
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor sp&eacute;cifique pour lequel vous voulez activer les SSI, afin d'&ecirc;tre s&ucirc;r
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor qu'elles y seront bien activ&eacute;es.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Tout fichier ne fera cependant pas l'objet de recherche de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor directives SSI. Vous devez indiquer &agrave; Apache quels fichiers seront
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor concern&eacute;s. Vous pouvez y parvenir en indiquant une extension, comme
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>.shtml</code>, &agrave; l'aide des directives suivantes :</p>
d89089206f40f9a6d58528ff85050447d4a52d53lgentis<highlight language="config">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor AddType text/html .shtml<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor AddOutputFilter INCLUDES .shtml
d89089206f40f9a6d58528ff85050447d4a52d53lgentis</highlight>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Un des d&eacute;savantages de cette approche r&eacute;side dans le fait que si
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor vous voulez ajouter des directives SSI &agrave; une page pr&eacute;existante, vous
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor devrez changer le nom de cette page, et donc tout lien qui la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor contient, de fa&ccedil;on &agrave; ce qu'elle poss&egrave;de l'extension
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>.shtml</code>, condition n&eacute;cessaire pour que les directives
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor SSI qu'elle contient soient trait&eacute;es.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Une autre m&eacute;thode consiste &agrave; utiliser la directive <directive
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor module="mod_include">XBitHack</directive> :</p>
d89089206f40f9a6d58528ff85050447d4a52d53lgentis<highlight language="config">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor XBitHack on
d89089206f40f9a6d58528ff85050447d4a52d53lgentis</highlight>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>La directive <directive module="mod_include">XBitHack</directive>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor indique &agrave; Apache qu'il doit rechercher des directivves SSI dans les
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor fichiers si leur bit d'ex&eacute;cution est positionn&eacute;. Il n'est ainsi plus
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor n&eacute;cessaire de changer le nom du fichier pour ajouter des directives
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor SSI &agrave; une page pr&eacute;existante ; vous devez simplement attribuer les
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor droits d'ex&eacute;cution au fichier &agrave; l'aide de <code>chmod</code>.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor chmod +x pagename.html
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Un bref commentaire sur ce qu'il ne faut pas faire. Certaines
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor personnes peuvent vous conseiller de tout simplement indiquer &agrave;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Apache de rechercher des directives SSI dans tous les fichiers
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>.html</code>, ce qui vous &eacute;vite d'avoir &agrave; g&eacute;rer les noms de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor fichiers avec extension <code>.shtml</code>. Ils n'ont probablement
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor pas entendu parler de la directive <directive
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor module="mod_include">XBitHack</directive>. En effet, vous devez
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor garder &agrave; l'esprit qu'en faisant ceci, Apache va devoir rechercher
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor des directives SSI dans chaque fichier qu'il sert, m&ecirc;me s'il n'en
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor contient aucune. Ce n'est donc pas une bonne id&eacute;e car les
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor performances peuvent en &ecirc;tre sensiblement affect&eacute;es.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Bien entendu, sous Windows, il n'y a pas de bit d'ex&eacute;cution &agrave;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor positionner, ce qui limite un peu vos choix.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Dans sa configuration par d&eacute;faut, Apache n'envoie pas la date de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor derni&egrave;re modification ou les en-t&ecirc;tes HTTP relatifs &agrave; la taille des
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor contenus dans les pages SSI, car ses valeurs sont difficiles &agrave;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor calculer pour les contenus dynamiques. Ceci peut induire une
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor impression de diminution des performances c&ocirc;t&eacute; client, en emp&ecirc;chant
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor la mise en cache de votre document. Il existe deux m&eacute;thodes pour
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor r&eacute;soudre ce probl&egrave;me :</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <ol>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <li>Utilisez la configuration <code>XBitHack Full</code>. Elle
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor indique &agrave; Apache de d&eacute;terminer la date de derni&egrave;re modification en
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor ne regardant que la date du fichier &agrave; l'origine de la requ&ecirc;te,
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor tout en ignorant la date de modification de tout fichier inclus.</li>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <li>Utilisez les directives fournies par le module
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <module>mod_expires</module> pour d&eacute;finir de mani&egrave;re explicite la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor date d'expiration de vos fichiers, laissant par la-m&ecirc;me
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor aux navigateurs et aux mandataires le soin de d&eacute;terminer s'il est
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor opportun ou non de les mettre en cache.</li>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor </ol>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="basic"><title>Directives SSI de base</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Les directives SSI adoptent la syntaxe suivante :</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis &lt;!--#fonction attribut=valeur attribut=valeur ... --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Le format d'une directive SSI &eacute;tant similaire &agrave; celui d'un
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor commentaire HTML, si vous n'avez pas activ&eacute; correctement SSI, le
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor navigateur l'ignorera, mais elle sera encore visible dans le source
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor HTML. Si SSI est correctement configur&eacute;, la directive sera remplac&eacute;e
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor par ses r&eacute;sultats.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis <p>"fonction" peut prendre de nombreuses formes, et nous d&eacute;crirons
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor plus pr&eacute;cis&eacute;ment la plupart d'entre eux dans la prochaine version de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor ce document. Pour le moment, voici quelques exemples de ce que vous
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor pouvez faire avec SSI.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="todaysdate"><title>La date courante</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#echo var="DATE_LOCAL" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis <p>La fonction <code>echo</code> permet d'afficher la valeur d'une
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor variable. Il existe un grand nombre de variables standards, y
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor compris l'ensemble des variables d'environnement disponibles pour
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor les programmes CGI. De plus, vous pouvez d&eacute;finir vos propres
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis variables &agrave; l'aide de la fonction <code>set</code>.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Si vous n'aimez pas le format sous lequel la date s'affiche, vous
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis pouvez utiliser la fonction <code>config</code> avec un attribut
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>timefmt</code>, pour le modifier.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#config timefmt="%A %B %d, %Y" --&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Today is &lt;!--#echo var="DATE_LOCAL" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="lastmodified"><title>Date de modification du fichier</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Derni&egrave;re modification du document &lt;!--#flastmod file="index.html" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Le format peut l&agrave; aussi &ecirc;tre modifi&eacute; &agrave; l'aide de l'attribut
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>timefmt</code>.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="cgi"><title>Inclusion des r&eacute;sultats d'un programme CGI</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>C'est le cas le plus courant d'utilisation des SSI - afficher les
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor r&eacute;sultats d'un programme CGI, comme l'universellement ador&eacute;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor "compteur d'acc&egrave;s".</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#include virtual="/cgi-bin/counter.pl" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="additionalexamples">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<title>Exemples additionnels</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Vous trouverez dans ce qui suit quelques exemples sp&eacute;cifiques de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor ce que vous pouvez faire de vos documents HTML avec SSI.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="docmodified"><title>Quand ce document a-t-il &eacute;t&eacute; modifi&eacute; ?</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Nous avons mentionn&eacute; plus haut que vous pouviez utiliser SSI pour
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor informer l'utilisateur de la date de derni&egrave;re modification du
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor document. Cependant, la m&eacute;thode pour y parvenir n'a pas &eacute;t&eacute; vraiment
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor abord&eacute;e. Plac&eacute; dans votre document HTML, le code suivant va ins&eacute;rer
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor un rep&egrave;re de temps dans votre page. Bien entendu, SSI devra avoir
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &eacute;t&eacute; correctement activ&eacute;, comme d&eacute;crit plus haut.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#config timefmt="%A %B %d, %Y" --&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Derni&egrave;re modification du fichier &lt;!--#flastmod file="ssi.shtml" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Bien entendu, vous devez remplacer <code>ssi.shtml</code> par le
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor nom du fichier auquel vous faites r&eacute;f&eacute;rence. Ceci ne conviendra pas
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor si vous recherchez un morceau de code g&eacute;n&eacute;rique que vous pourrez
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor ins&eacute;rer dans tout fichier ; dans ce cas, il est pr&eacute;f&eacute;rable
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor d'utiliser la variable <code>LAST_MODIFIED</code> :</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#config timefmt="%D" --&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor This file last modified &lt;!--#echo var="LAST_MODIFIED" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Pour plus de d&eacute;tails sur le format <code>timefmt</code>, tapez
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>strftime</code> dans votre moteur de recherche pr&eacute;fer&eacute;. La
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor syntaxe est identique.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="standard-footer">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<title>Inclusion d'un pied de page standard</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Si le site que vous g&eacute;rez comporte plus que quelques pages, vous
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor allez vite vous apercevoir qu'effectuer des modifications sur toutes
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor ces pages peut devenir tr&egrave;s contraignant, en particulier si vous
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor voulez qu'elles conservent un aspect homog&egrave;ne.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Inclure un fichier pour un en-t&ecirc;te et/ou un pied de page peut
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor simplifier cette corv&eacute;e de mises &agrave; jour. Il vous suffit de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor confectionner un fichier de pied de page, et de l'inclure dans
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor chaque page &agrave; l'aide de l'&eacute;l&eacute;ment SSI <code>include</code>. Pour
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis d&eacute;finir le fichier &agrave; inclure, la fonction <code>include</code> peut
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor utiliser soit l'attribut <code>file</code>, soit l'attribut
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>virtual</code>. L'attribut <code>file</code> est un chemin de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor fichier <em>relatif au r&eacute;pertoire courant</em>. C'est &agrave; dire qu'il
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor ne peut ni avoir pour valeur un chemin absolu (commen&ccedil;ant par /), ni
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor comporter "../" dans son chemin. L'attribut <code>virtual</code> est
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor probablement plus commode, et peut sp&eacute;cifier une URL relative au
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor document servi. Elle peut commencer par un /, mais le fichier inclus
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor et le fichier servi doivent r&eacute;sider sur le m&ecirc;me serveur.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#include virtual="/footer.html" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Je combinerai souvent ces deux derniers points, en ajoutant une
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor directive <code>LAST_MODIFIED</code> dans un fichier de pied de page
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor destin&eacute; &agrave; &ecirc;tre inclus. Le fichier inclus peut contenir des
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor directives SSI, et les inclusions peuvent &ecirc;tre imbriqu&eacute;es - &agrave;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor savoir, le fichier inclus peut inclure un autre fichier, etc...</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="config">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<title>Que puis-je configurer d'autre ?</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>En plus du format de date, vous pouvez utiliser l'&eacute;l&eacute;ment
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>config</code> pour configurer deux autres choses.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>En g&eacute;n&eacute;ral, lorsque quelque chose se passe mal avec votre
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor directive SSI, vous recevez le message :</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor [an error occurred while processing this directive]
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Pour modifier ce message, vous pouvez utiliser l'attribut
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis <code>errmsg</code> avec la fonction <code>config</code> :</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#config errmsg="[Il semblerait que vous ne sachiez pas
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor utiliser les SSI]" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Il est cependant probable que les utilisateurs finaux ne voient
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor jamais ce message, car vous aurez r&eacute;solu tous les probl&egrave;mes issus de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor vos directives SSI avant que votre site ne soit mis en production.
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor (N'est-ce pas ?)</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Vous pouvez aussi modifier le format sous lequel les tailles de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor fichiers sont affich&eacute;es &agrave; l'aide de l'attribut <code>sizefmt</code>.
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Vous pouvez sp&eacute;cifier <code>bytes</code> pour un affichage en
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor octets, ou <code>abbrev</code> pour un affichage plus concis en Ko
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor ou Mo, selon le cas.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor </section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="exec">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <title>Ex&eacute;cution de commandes</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>J'ai pour projet, dans les prochains mois, d'&eacute;crire un article &agrave;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor propos de l'utilisation des SSI avec des petits programmes CGI. Pour
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis l'instant, voici ce que vous pouvez faire avec la fonction
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>exec</code>. Vous pouvez vraiment faire ex&eacute;cuter une commande
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor par SSI en utilisant le shell (<code>/bin/sh</code>, pour &ecirc;tre plus
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor pr&eacute;cis - ou le shell DOS, si vous &ecirc;tes sous Win32). Par exemple, ce
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor qui suit vous permet d'afficher le contenu d'un r&eacute;pertoire.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;pre&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#exec cmd="ls" --&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;/pre&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>ou, sous Windows</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;pre&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#exec cmd="dir" --&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;/pre&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Vous noterez probablement l'&eacute;trange formatage provoqu&eacute; par cette
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor directive sous Windows, car la sortie de <code>dir</code> contient
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor la cha&icirc;ne de caract&egrave;res "&lt;<code>dir</code>&gt;", ce qui trompe le
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor navigateur.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Notez que cette fonctionnalit&eacute; est tr&egrave;s dangereuse, car elle va
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor permettre d'ex&eacute;cuter tout code associ&eacute; &agrave; l'&eacute;l&eacute;ment
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>exec</code>. Si vous &ecirc;tes dans la situation o&ugrave; les
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor utilisateurs peuvent &eacute;diter le contenu de vos pages web, dans le cas
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor d'un "livre d'or" par exemple, assurez-vous de d&eacute;sactiver cette
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor fonctionnalit&eacute;. Vous pouvez, tout en permettant les SSI, d&eacute;sactiver
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor la fonctionnalit&eacute; <code>exec</code> &agrave; l'aide de l'argument
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>IncludesNOEXEC</code> de la directive
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>Options</code>.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor </section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="advanced">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<title>Techniques SSI avanc&eacute;es</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Outre l'affichage de contenu, les SSI d'Apache vous permettent de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor d&eacute;finir des variables, et de les utiliser dans des comparaisons et
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor des conditions.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="variables"><title>D&eacute;finition de variables</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Avec l'&eacute;l&eacute;ment <code>set</code>, vous pouvez d&eacute;finir des
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor variables pour un usage ult&eacute;rieur. Comme nous en aurons besoin plus
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor loin, nous allons en parler tout de suite. La syntaxe se pr&eacute;sente
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor comme suit :</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#set var="name" value="Rich" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Pour affecter une valeur &agrave; vos variables, en plus de la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor d&eacute;finition litt&eacute;rale de l'exemple ci-dessus, vous pouvez utiliser
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor une autre variable, y compris les <a
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor href="/env.html">variables d'environnement</a>, ou les variables
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor d&eacute;crites plus haut (comme <code>LAST_MODIFIED</code> par exemple).
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor Pour indiquer qu'il s'agit d'une variable et non d'une cha&icirc;ne, vous
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor devez utiliser le symbole dollar ($) devant le nom de la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor variable.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <example> &lt;!--#set var="modified" value="$LAST_MODIFIED" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor </example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Pour ins&eacute;rer un caract&egrave;re $ dans la valeur de votre variable,
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor vous devez l'&eacute;chapper &agrave; l'aide d'un backslash.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#set var="cost" value="\$100" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Enfin, si vous voulez ins&eacute;rer une variable dans une cha&icirc;ne, et
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor s'il y a une chance pour que le nom de la variable se confonde avec
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor le reste de la cha&icirc;ne, vous pouvez l'entourer d'accolades pour
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor eviter toute confusion (Il est difficile de trouver un bon exemple
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor pour illustrer ceci, mais j'esp&egrave;re que vous comprendrez).</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="conditional">
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<title>Expressions conditionnelles</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Maintenent que nous avons des variables, et que nous pouvons
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor d&eacute;finir et comparer leurs valeurs, nous sommes &agrave; m&ecirc;me de les
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor utiliser dans des expressions conditionnelles. Ceci conf&egrave;re &agrave; SSI le
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor statut de petit langage de programmation.
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <module>mod_include</module> fournit une structure <code>if</code>,
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>elif</code>, <code>else</code>, <code>endif</code> pour la
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor construction d'expressions conditionnelles, ce qui vous permet de
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor g&eacute;n&eacute;rer plusieurs pages logiques &agrave; partir d'une seule vraie
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor page.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>La structure de l'expression conditionnelle est :</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#if expr="condition" --&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#elif expr="condition" --&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#else --&gt;<br />
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor &lt;!--#endif --&gt;
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Une <em>condition</em> peut rev&ecirc;tir la forme de toute comparaison
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor logique - soit une comparaison de valeurs avec une autre, soit une
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor v&eacute;rification de la "v&eacute;rit&eacute;" d'une valeur particuli&egrave;re (Une cha&icirc;ne
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor donn&eacute;e est vraie si elle n'est pas vide). Pour une liste exhaustive
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor des op&eacute;rateurs de comparaison disponibles, voir la documentation du
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis module <module>mod_include</module>.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis <p>Par exemple, spour ins&eacute;rer l'heure du jour dans votre page web,
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis vous pouvez ajouter ces lignes dans la page HTML :</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis <example>
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis Good
1a5f1f993fc268586c5524d2c311560682a90e64lgentis &lt;!--#if expr="%{TIME_HOUR} &lt;12" --&gt;<br />
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis morning!<br />
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis &lt;!--#else --&gt;<br />
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis afternoon!<br />
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis &lt;!--#endif --&gt;<br />
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis </example>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>Toute autre variable (que vous avez d&eacute;finie, ou une variable
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor d'environnement normale) peut &ecirc;tre utilis&eacute;e dans les expressions
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis conditionnelles. Voir le document <a href="/expr.html">Expressions
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis rationnelles dans le serveur HTTP Apache</a> pour plus de d&eacute;tails &agrave;
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis propos du fonctionnement du moteur d'&eacute;valuation des expressions
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis rationnelles.</p>
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis <p>Associ&eacute;e &agrave; la possibilit&eacute; avec Apache de d&eacute;finir
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor des variables d'environnement &agrave; l'aide de directives
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <code>SetEnvIf</code>, ainsi que d'autres directives en rapport,
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis cette fonctionnalit&eacute; vous permet d'ajouter une grande vari&eacute;t&eacute;
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis de contenus dynamiques c&ocirc;t&eacute; serveur sans avoir &agrave; concevoir une
9cb3d98ef8a6e83f1da3e083bd9d6958376f8fe2lgentis application web de A &agrave; Z.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor<section id="conclusion"><title>Conclusion</title>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor <p>SSI ne remplace certainement pas CGI, ou d'autres technologies
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor utilis&eacute;es pour la g&eacute;n&eacute;ration de pages web dynamiques. Mais c'est une
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor bonne m&eacute;thode pour ajouter des petits contenus dynamiques &agrave; vos
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor pages, sans devoir fournir un gros effort suppl&eacute;mentaire.</p>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</section>
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor
e8df3f2d5908b6903c510c8e839a5db27d1e104bgryzor</manualpage>