Home Programmierung
und BIOS
Shareware-
FAQ
Kontakt u.
Infos

Server Side Includes (SSI)

Server Side Includes werden normalerweise dazu eingesetzt, bestimmte dynamische Elemente und/oder kleine CGI-Skripte in HTML-Dokumente einzubinden. Eine Liste dieser Elemente ist auf dieser Seite zu finden.

SSIs sind normalerweise nicht freigeschaltet, da sie ein hohes Gefahrenpotential für den Server darstellen. Um nun diese Freischaltung vorzunehmen, gibt es zwei Möglichkeiten: (a) den Webmaster bitten, dies zu tun oder (b) die Datei .htaccess zu bearbeiten bzw. zu erstellen, welche im selben Verzeichnis wie die HTML-Datei mit den SSIs stehen muß. Letzteres muß natürlich vom Server unterstützt werden. Beispiel für die Freischaltung von SSIs in allen Dokumenten mit der Endung .shtml:


Options +Includes

AddType text/x-server-parsed-html .shtml

Eine alternative Schreibform, mittlerweile wohl die "offizielle" Fassung:


Options +Includes

AddType text/html .shtml

AddHandler server-parsed .shtml

Sofern Ihr keine Programme über #exec einbinden wollt, sondern nur mit den CGI-Variablen etc. arbeitet, könnt Ihr statt "+Includes" auch "+IncludesNOEXEC" verwenden, in dem Fall ist die Option #exec nicht verfügbar (ggf. sicherheitstechnisch relevant in Bereichen, wo Benutzereingaben (ungeprüft?) im Browser wiedergegeben werden).

Nun, da die SSIs funktionieren, gibt es die folgenden Optionen (nicht alle werden von jedem Server unterstützt!):

Sämtliche SSIs werden als Kommentare eingebunden.

#config
Beschreibung Definiert die Formate für die Ausgabe von Uhrzeit, Datum (siehe #echo bzw. #flastmod) oder Dateigröße (siehe #fsize). Außerdem kann ein Text konfiguriert werden, der im Fehlerfall statt des SSIs angezeigt wird.
Attribute errmsg Text, der im Fehlerfall statt des SSIs angezeigt wird.
Sizefmt Format, mit dem Dateigrößen angegeben werden (über #fsize)
  • abbrev: Rundung auf Kilobytes (KB)
  • bytes: Ausgabe in Bytes
Timefmt Format, mit dem Uhrzeit und Datum angegeben werden (über #echo oder #flastmod) Diverse Platzhalter im Formatstring geben das Format an (s.u.).
Platzhalter %a Abkürzung des Wochentages Tue
%A ausgeschriebener Wochentag Tuesday
%b Abkürzung des Monats Dec
%B ausgeschriebener Monatsname December
%d Tag des Monats (ohne führende Null bei einstelligen Zahlen) 1
%D Datum (mm/tt/yyyy) 12/24/1999
%e Tag des Monats (mit führender Null bei einstelligen Zahlen) 01
%H Stunde (24h-Format) 17
%I Stunde (12h-Format) 5
%j Jahrestag 360
%m numerischer Monat 12
%M Minuten 05
%p Vor-/Nachmittag pm oder am
%r Uhrzeit (%I:%M:%S %p) 12h 07:45:22 pm
%S Sekunden 09
%T Uhrzeit (%H:%M:%S) 24h 19:45:22
%U Kalenderwoche 06
%W Kalenderwoche 06
%w Wochentag (01=Sonntag) 01
%y Jahr ohne Jahrhundert 99
%Y Jahr mit Jahrhundert 1999
%Z Zeitzone GMT +0060
Beispiel <!--#config sizefmt="abbrev" timefmt="%d.%m.%Y" errmsg="Fehler!" -->

#include
Beschreibung Hiermit kann man den Inhalt einer Datei in den Quelltext des HTML-Dokumentes einbinden. Enthält die Datei HTML-Tags, werden diese interpretiert, als stünden sie im eigentlichen Dokument.
Attribute file gibt die Datei an, die eingebunden werden soll. Die Datei muß sich im gleichen Verzeichnis wie das HTML-Dokument befinden.
virtual gibt eine Datei an, die in einem der virtuellen Server-Verzeichnisse steht.
Die beiden Attribute dürfen nicht zusammen verwendet werden. Einige Server unterstützen SSIs auch in den eingebundenen Dokumenten - dort muß unbedingt darauf geachtet werden, daß durch weitere #includes keine Zirkelbezüge entstehen!
Beispiel <!--#include file="hinweis.txt" -->

#echo
Beschreibung Über dieses Kommando können Sie Umgebungsvariablen ausgeben. Zur Verfügung stehen Ihnen dabei die CGI-Umgebungsvariablen sowie einige zusätzliche Variablen (s.u.).
Attribute var gibt die auszugebende Variable an
zusätzliche SSI-Variablen DOCUMENT_NAME Name des aufrufenden HTML-Dokuments test.html
DOCUMENT_URI virtueller Pfad zum aktuellen Dokument /documents/tabell30.htm
QUERY_STRING_UNESCAPED Der Querystring, in dem die Escape-Sequenzen (z.B. %29) bereits übersetzt wurden ?Param1=Walter Mueller&Param2=Musterstrasse 12
DATE_LOCAL Aktuelles Datum/Uhrzeit (Format einstellbar über #config) 12:34:56 31 Jul 1999
DATE_GMT Aktuelle Weltzeit (Greenwich Mean Time, GMT) (Format einstellbar über #config) 11:34:56 31 Jul 1999
LAST_MODIFIED Datum/Uhrzeit der letzten Änderung der HTML-Datei (Format einstellbar über #config) 12:34:56 31 Jul 1999
Beispiel <!--#echo var=DATE_LOCAL-->

#exec
Beschreibung Erlaubt die ausführung externer Programme sowie von CGI-Programmen. Die Ausgaben dieser Programme werden in das HTML-Dokument eingebunden.
Attribute cmd bezeichnet das auszuführende externe Programm.
cgi bezeichnet das auszuführende CGI-Programm
Sofern der Server dieses Tag überhaupt unterstützt, sollte es unbedingt mit größter Sorgfalt behandelt werden!
Beispiel <!--#exec cgi="hallo.pl" -->
oder
<!--#exec cmd="dir c:\ServerRoot\*.htm" -->

#flastmod
Beschreibung gibt das Datum der letzten Änderung an einer gegebenen Datei aus.
Attribute file gibt eine Datei an, die sich im gleichen Verzeichnis wie das HTML-Dokument befindet.
virtual gibt eine Datei an, die in einem der virtuellen Server-Verzeichnisse steht.
Das Format der Ausgabe kann über #config gesteuert werden.
Beispiel <!--#flastmod file="Download.zip" -->
oder
<!--#flastmod virtual="ftp://ftp.datasource.de/pub/Download.zip" -->

#fsize
Beschreibung gibt die Größe einer gegebenen Datei aus.
Attribute file gibt eine Datei an, die sich im gleichen Verzeichnis wie das HTML-Dokument befindet.
virtual gibt eine Datei an, die in einem der virtuellen Server-Verzeichnisse steht.
Das Format der Ausgabe kann über #config gesteuert werden.
Beispiel <!--#fsize file="Download.zip" -->
oder
<!--#fsize virtual="ftp://ftp.datasource.de/pub/Download.zip" -->

Alle Angaben ohne Gewähr.

Achtung: bitte Hinweise zur Aktualitšt der Daten beachten! Copyright