Menu :

 
Général :
· Afficher nos Bannières et News
· Statistiques Réseau
· Dénoncer un site illégal !

Demande :
· Demande d'Hébergement

Client FTP Gratuit :
Télécharger :
· FileZilla v2.2.24b

Visualiser :
· Utiliser FileZilla en 5 minutes

Accès :
· Accès Page Personnelle

Consulter :
· Récupérez vos Paramètres
· Code pour Bannières

Gérer :
· Sauvegardez votre base Mysql
· Administrer votre base Mysql

· Supprimer son site
· Annuler la suppresion !

Aide :
· Install Nuked-Klan automatiquement
· Install Nuked-Klan manuelement
· Créer des .htaccess, .htgroup, .htpasswd
· Commandes SSI
· Java script
· Documentation CHMOD

Les SSI

 
Dans cette page, vous apprendrez à vous servir judicieusement des SSI. Les SSI sont une très bonne alternative entre les scripts CGI et le HTML car ils permettent, là où ils sont acceptés par le serveur, de faire effectuer des commandes puissantes au serveur. Voici leurs avantages et inconvénients :

Avantages

  • Faciles à utiliser
  • Puissants
  • Facile à comprendre
Inconvénients
  • Le serveur doit les accepter
  • Ralenti le système

Comment ça marche ?

Les SSI sont des sortes de "commandes" que le serveur doit connaître. C'est pour ça qu'on dit que le serveur doit les accepter. Aussi, pour voir ces commandes, le serveur doit analyser le document afin de les trouver. C'est pourquoi, sur la plupart des serveurs, pour ne pas utiliser trop de ressources, vous devez renommer votre fichier .html en un autre nom de fichier. C'est ainsi que vous dîtes au serveur : "Il y a des commandes SSI dans ce document". Sur STCommunications, vous devez renommer votre fichier en .shtml.

Ça ressemble à quoi ?

Une commande SSI, dans un document, ça ressemble à un commentaire. Chaque commande SSI est encadrée par
<!--# et -> Les différentes commandes sont les suivantes :

Break

La commande "break" sert à dire au serveur : "Tu n'affiche pas la suite". Donc, si vous avez un document HTML du genre :
<HTML>
...
<BODY>
Voici un document qui vous <!--#break-> montre comment...
</BODY>
</HTML>
document la partie avant le "break" est affichée, c'est-à-dire : "Voici un document qui vous".

Echo, printenv, set

Dans le langage des SSI, la commande "echo" permet d'inclure certaines donnée dans la page HTML. La commande "echo" possède une variable qui est transformée en qqch dans l'affichage du document HTML. Voici la syntaxe : <!--#echo var="variable"-->. Le mot Variable peut être remplacé par une liste de variables qui diffèrent d'un serveur à l'autre. Voici la liste des variables les plus répandues sur les différents serveurs :
  • ACCEPT_LANGUAGE liste des langues comprises par le client
  • AUTH_TYPE méthode d'authentification pour valider le client distant
  • CONTENT_LENGTH la 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 la date et l'heure courantes du serveur HTTP à l'heure GMT (Greenwich Mean Time)
  • DATE_LOCAL la date et l'heure locales du serveur HTTP
  • DOCUMENT_NAME le nom complet du document
  • DOCUMENT_URI est le chemin d'accès du document courant par rapport au répertoire d'accueil du serveur HTTP
  • FROM l'adresse e-mail du client
  • FORWARDED nom du serveur proxy qui a re-routé 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 le nom du logiciel navigateur client
  • LAST_MODIFIED la date et l'heure de la dernière modification du document HTML courant.
  • PATH_INFO le nom du chemin relatif par rapport au répertoire d'accueil du serveur HTTP
  • PATH_TRANSLATED information sur la variable PATH traduite physiquement (avec information de disque ou d'unité logique) vers l'URI
  • QUERY_STRING la chaîne de caractères de recherche envoyée par le navigateur
  • QUERY_STRING_UNESCAPED c'est la chaîne de caractères non transformée envoyée par le client, ainsi les caractères blancs seront encore avec des valeurs de transfert.
  • REFERER l'URL du document HTML de provenance du client.
  • REMOTE_ADDR l'adresse IP du client distant
  • REMOTE_IDENT le nom distant de l'utilisateur pour l'authentification selon la recommandation RFC931
  • REMOTE_HOST le nom de la station cliente
  • REMOTE_USER le nom du client distant
  • REQUEST_METHOD méthode par laquelle le document a été demandé
  • SCRIPT_NAME le nom du script qui est exécuté
  • SERVER_NAME le nom de la machine sur laquelle fonctionne le serveur HTTP
  • SERVER_PORT le nom du document serveur HTTP
  • SERVER_PROTOCOL le nom et la version du serveur HTTP servant les pages
  • SERVER_SOFTWARE nom du serveur HTTP
Toutes ces variables sont des variables dîtes d'environnement, c'est-à-dire qu'elle sont présentes sur le serveur. Maintenant, une autre commande utile est la commande <!--#printenv-->. Cette commande dit au serveur d'imprimer toutes les variables disponibles.
Maintenant, dans certains cas, il peut être apprécié de créer ses propres variables. Vous pouvez faire ceci à partir de la commande <!--#set var="nom" value="valeur"-->. Vous n'avez qu'à remplacer nom par le nom que vous voulez donner à la variable et valeur par sa valeur. Voici un exemple :
<!--#set var="browser" value="MSIE"-->.

If, else

Les commandes "if" et "else" permettent d'effectuer des petits tests pour optimiser l'affichage d'une certaine page. Voici sa syntaxe :
<!--#if "variable1" operateur "variable2"-->
operation1
<!--#else-->
operation2
<!--#endif-->
Où :
  • variable1 est la première variable
  • operateur est un des signes suivants : "==" "!=" "<" ">" "!<" "!>" "hasstring"
  • variable2 est la deuxième variable
  • operation1 est l'opération à exécuter si le if est vrai
  • operation2 est l'opération à exécuter sinon
Voici la signification des opérateurs :
  • == : variable1 est égales à variable2
  • < : variable1 est plus petite que variable2 (au point de vue alphanumérique ou numérique)
  • >: variable1 est plus grande que variable2 (au point de vue alphanumérique ou numérique)
  • !< : variable1 n'est pas plus petite que variable2 (donc, plus grande OU égale) (au point de vue alphanumérique ou numérique)
  • !> : variable1 n'est pas plus grande que variable2 (donc, plus petite OU égale) (au point de vue alphanumérique ou numérique)
  • hasstring : variable1 est présente dans variable2
Exemple :
Admettons que vous avez une page pour MSIE et une autre pour Netscape, vous pouvez orienter le navigateur sur l'une ou l'autre dépendamment. Voici comment faire en utilisant les commandes vues jusqu'à présent ainsi que la commande "include" qui suit celle-ci:
<!--#set var="browser" value="/MSIE/-->
<!--#if expr="${HTTP_USER_AGENT} = $browser"-->
<!--#include File="indexMSIE.html-->
<!--#else-->
<!--#include File="indexNets.html-->
<!--#endif-->
Analyse :
<!--#set var="browser" value="/MSIE/-->
Dans cette ligne, il y a un truc. C'est que, en entourant MSIE de //, on demande d'analyser si MSIE est dans l'autre chaîne. Donc, ça fait à peut près la même chose que l'opérateur "hasstring". Donc, normalement, on aurait pu utiliser la comparaison suivante :
<!--#if expr="${HTTP_USER_AGENT} = "/MSIE""-->
mais, comme vous le remarquez, il y a trop de guillemet et le serveur se tromperais. Donc, pour se faire, vous créez une nouvelle variable avec la commande ci-haut.

<!--#if expr="${HTTP_USER_AGENT} = $browser"-->
Il y a moyen que le serveur sache lui-même la valeur d'une variable en la préfixant de $. Donc, ${HTTP_USER_AGENT}lui donne la valeur de la variable d'environnement HTTP_USER_AGENT et $browser lui donne /MSIE/ (puisque c'est la valeur de cette variable).

Ce sont les deux lignes les plus importantes étant donné que les deux "include" sont traitées dans la section suivante.


Include

La commande "include" dit au serveur : "Tu mets cette page dans celle-ci". En d'autres termes, si vous avez un texte qui est répété dans plusieurs page, vous pouvez utiliser cette commande (et mettre votre texte dans un fichier) pour inclure ce texte dans la page. Voici sa syntaxe : <!--#include virtual|File="fichier"-->. Vous remarquerez que vous avez le choix entre virtual et File, voici la différence. Si vous écrivez virtual, le fichier doit spécifier le chemin du fichier depuis le répertoire racine du serveur. Si vous choisissez File, fichier doit spécifier le chemin du fichier depuis le répertoire courant du document HTML. Donc, la plupart du temps, c'est virtual qui est utilisé.
Exemple :
<!--#include virtual="../Doc/HTML/Map.html"-->

Label

La balise Label sert seulement à identifier un lieu précis dans un document. Voici sa syntaxe :
<!--#label="nom"-->. La balise label ne servirait à rien sans son jumeau : goto.

Goto

La balise goto (se prononce gautou, de l'anglais Go to : aller à.) est utile seulement avec une balise Label. Voici sa syntaxe : <!--#goto="nom_du_label"-->. Voici donc un exemple de goto=>label.
<!--#goto="nom"-->
<P> cette ligne n'est pas imprimée.
<!--#label="nom"-->
<P> celle-ci est imprimée.
Ces balises peuvent être utiles pour afficher un certain texte que sous certaines conditions.

Config

La commande "config" est utile pour configurer certaines options du serveur. Voici sa syntaxe :
<!--#config nom="valeur"-->. Dans le cas de la commande "config" nom représente le nom de l'option et valeur représente la manière de le configurer. Voici des options :
  • Errmsg
  • Timefmt
  • Sizefmt
  • Cmdecho
  • Cmdprefix
  • Cmdposfix
  • Onerr

Errmsg

L'option Errmsg sert à dire quel fichier afficher en cas d'erreur d'analyse des SSI. Ce qui veux dire que, si il y a une commande qu'il ne comprend pas, il affichera ce fichier.
<!--#config Errmsg="nom_du_fichier"-->

Timefmt

L'option Timefmt permet de définir le format d'affichage de l'heure et de la date. Il accepte les paramètres suivants :
  • %d : la journée
  • %A : le nom du jour (en Anglais, Monday, Tuesday, etc.)
  • %m : le mois
  • %B : le nom du mois (en Anglais)
  • %Y : l'année
  • %H : l'heure
  • %I : l'heure aussi
  • %M : les minutes
  • %p : AM ou PM
Si vous voulez que la date s'affiche : Le JJ/MM/AA à HH:MM, par exemple : Le 10/12/98 à 12:34, vous écrirez ceci :
<!--#config timefmt="Le %d/%m/%Y à %H:%M"-->
dernière mise à jour <!--#echo var="last_modified"-->
Ainsi, il écrira : dernière mise à jour Le 16/09/1999 à 02:09.
Exemples : Le Thursday September 1999, 16/09/1999 à 02:09AM, 02:09AM
<!--#config timefmt="Le %A %B %Y, %d/%m/%Y à %H:%M%p, %I:%M%p"--><!--#echo var="last_modified"-->

Sizefmt

L'option Sizefmt permet de définir le format d'affichage de la taille. La valeur doit être soit de "abbrev" ou de "bytes". Exemple : <!--#config sizefmt="abbrev"-->. Voici un exemple d'utilisation de Sizefmt :
Le fichier Chap1.shtml pèse Cannot perform fsize( 'Chap1.shtml' ): Win32 Error Code = 2
ou Cannot perform fsize( 'Chap1.shtml' ): Win32 Error Code = 2

Onerr

La balise Onerr sert à dire l'action qui sera exécutée si le serveur ne comprend pas une commande. Elle peut avoir les valeurs suivantes :
  • goto label : provoque un saut vers label
  • print texte : provoque l'affichage de texte
  • error : affiche un message d'erreur
  • break : provoque la fin de la page HTML
  • errorbreak : affiche un message d'erreur et provoque la fin de la page HTML
  • printbreak texte : provoque l'affichage de texte et provoque la fin de la page HTML
Je ne suis pas familier avec cette commande, cependant, voici la syntaxe que je penses qu'elle serait correcte :
<!--#config onerr="goto label"-->, ou
<!--#config onerr="print le message d'erreur"-->
dîtes moi si j'ai tort.

Autres

  • Cmdecho permet de mettre en service ou hors service la sortie standard lors d'une commande exec.
  • Cmdprefix permet de fixer la chaîne de caractères qui sert de préfixe pour toutes les lignes issues d'une commande par la balise exec
  • Cmdposfix permet de fixer la chaîne de caractères qui sert de posfixe pour toutes les lignes issues d'une commande par la balise exec

Exec

La commande exec permet d'exécuter une commande, un programme quelconque par le serveur. Il accepte les variables
cmd : elle spécifie le nom et les paramètres du programme qui sera partie sur le serveur.
cgi : elle permet de spécifier le nom du script CGI qui sera exécuté. Le chemin de ce script est relatif au répertoire de CGI sur le serveur.

Fsize

La commande fsize permet d'insérer la taille d'un fichier dans la page HTML à l'endroit de la commande. Voici sa syntaxe : <!--#fsize virtual|File="fichier"-->.
  • Virtual : ça dit au serveur que le chemin qui suit est le chemin du fichier par rapport au répertoire racine du serveur
  • File : ça dit au serveur que le chemin qui suit est le chemin par rapport au répertoire du document HTML courant
Exemple : Le fichier Chap1.shtml pèse 17

Flastmod

La balise Flastmod est la cousine de Fsize, elle fonctionne de la même façon, mais elle indique la date de dernière modification du fichier. Syntaxe : <!--#flastmode Virtual|File="fichier"-->. La signification de virtual et File est exactement la même que pour Fsize.
Exemple : La date de dernière modification de Chap1.shtml est : 16/09/1999 à 02:09 (GMT)

1996-2005 Games-Expert. Contact us for more information on Games-Expert