Page suivante Page précédente Table des matières

3. Les XSSI

Les XSSI (eXtended Server Side Include) ont été introduits pour combler certaines lacunes des SSI. L'esprit reste toujours de faire un langage de script minimum, mais la syntaxe a été rendue plus flexible (gestion des expressions rationnelles et des variables), la commande if a été modifiée pour être plus naturelle, et la commande printenv a été ajoutée.

3.1 La syntaxe

Les XSSI permettent d'utiliser des expressions régulières et des variables au sein des chaînes de caractères. Cet ajout rend ce langage beaucoup plus puissant.

<!――#COMMANDE PARAM="$VARIABLE" ――>

Ou encore :

<!――#COMMANDE PARAM="blabla${VARIABLE}blabla" ――>

On peut utiliser les expressions régulières habituelles sous Unix. Je ne détaillerais pas la syntaxe des expresions rationelles dans ce document.

À propos des expressions rationnelles, je vous conseille fortement la lecture de la page manuel de la commande egrep (man egrep) ou de sh (man sh).

Par exemple :

<!――#if expr="\"${SERVER_NAME}\" = /.*\.linux-france\.fr/" ――>

S'execute seulement si le serveur qui l'a contacté a une adresse qui se finit en ".linux-france.fr".

On peut, de plus, faire des affectations de valeur à une variable :

<!――#set var="VARIABLE" value="VALEUR"――>

Par exemple :

<!――#set var="DOCUMENT_NAME" value="Ma PageWeb"――>

À partir de cette balise, la variable DOCUMENT_NAME contiendra la chaîne de caractères Ma PageWeb.

3.2 Les commandes

La commande printenv est ajouté et la syntaxe if est plus naturelle.

printenv

Écrit la liste de toutes les variables existantes et leur valeurs.

if, elif, else, endif

Ces commandes permettent d'effectuer une exécution sous certaines conditions. La syntaxe se rapproche beaucoup de celle de la programmation classique :


<!――#if expr="TEST1" ――>
    CODE HTML 1
<!――#elif expr="TEST2" ――>
    CODE HTML 2
<!――#else ――>
    CODE HTML 3
<!――#endif ――>

Si TEST1 est vrai, c'est CODE HTML 1 qui sera executé. Si TEST1 est faux et TEST2 est vrai, c'est CODE HTML 2 qui sera executé. Enfin, si ni TEST1, ni TEST2 ne sont vrai, c'est CODE HTML 3 qui sera executé.

Les TEST sont des comparaisons de chaînes de caractères (on peut utiliser les expressions régulières). Voici un rapide survol des possibilités :

string

Vrai si string est non vide,

string1 = string2

Teste l'égalité des chaînes de caractères,

string1 != string2

Teste la différence des chaînes de caractères,

(test)

Test si test est vrai,

!test

Teste la négation de test,

test1 && test2

Teste la conjonction de test1 et test2 (ET logique),

test1 || test2

Teste si l'un des deux est vrai (OU logique).

Exemple :


<!――#if expr="REMOTE_ADDR != 197\.1??\.17\.2"――>
<A href="secret-link.html">Lien secret</A>
<!――#endif ――>


Page suivante Page précédente Table des matières