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. |