SELFHTML: CGI/Perl / Server Side Includes in HTML
Description: (SELFHTML 7.0) Was Server Side Includes sind und welche Server Side Includes es gibt.
Keywords: SELFHTML, CGI, SSI, Server Side Includes

SELFHTML/Quickbar CGI/Perl Voraussetzungen/Allgemeines

| ## Server Side Includes in HTML
| Allgemeines zu Server Side Includes Übersicht der Server Side Includes

## Allgemeines zu Server Side Includes

Mit Hilfe von Server Side Includes (auch unter der Abkürzung SSI bekannt) können Sie direkt innerhalb von HTML-Dateien dynamische Information, z.B. Datum und Uhrzeit, einbinden. Sie können auch CGI-Programme starten und deren Ausgaben, beispielsweise einen Zählerstand mit Anzahl Zugriffen auf die aktuelle Datei, in die HTML-Datei einbinden. Oder Sie geben den aktuellen Inhalt diverser CGI-Umgebungsvariablen direkt in HTML aus - ohne Umweg über ein separates CGI-Script.

Server Side Includes werden nur ausgeführt, wenn der WWW-Browser die HTML-Datei über einen installierten WWW-Server aufruft, also mit einer URL-Adresse vom Typ `http://...`. Voraussetzung ist ferner, daß der installierte WWW-Server die Server Side Includes unterstützt. Nicht alle WWW-Server tun das, andere interpretieren nur einen Teil der möglichen Angaben. Wenn der Server keine Server Side Includes kennt, funktionieren die entsprechenden Anweisungen in der HTML-Datei nicht. Beim Austesten mit einem lokal installierten WWW-Server lesen Sie hierzu bitte in der Dokumentation des Servers nach. Beim Einsatz auf einem öffentlichen WWW-Server fragen Sie Ihren Provider, ob dessen WWW-Server die Server Side Includes unterstützt.

Damit ein WWW-Server sofort erkennt, daß eine HTML-Datei Server Side Include Anweisungen enthält, ist es wichtig, solche HTML-Dateien mit einer speziellen Dateinamenendung zu kennzeichnen. Üblich sind die Dateiendungen `.shtml`, `.shtm` oder `.sht`. Die meisten Server ignorieren Server Side Include Anweisungen, wenn diese in einer gewöhnlichen HTML-Datei mit der Endung .htm oder .html stehen!

### Beispiel: HTML-Datei test.shtml mit Server Side Includes

    <html>
    <head>
    <title>Dynamisches HTML mit Server Side Includes</title>
    </head>
    <body>
    <h1>Dynamisches HTML mit Server Side Includes</h1>
    Datum/Uhrzeit auf dem Server-Rechner: <!--#echo var="DATE_LOCAL"--><br>
    Name dieser HTML-Datei: <!--#echo var="DOCUMENT_NAME"--><br>
    Installierte Server-Software: <!--#echo var="SERVER_SOFTWARE"--><br>
    Ihr WWW-Browser: <!--#echo var="HTTP_USER_AGENT"-->
    <h3>Weitere Informationen:</h3>
    <!--#exec cgi="/cgi-bin/plapper.pl"-->
    </body>
    </html>

### Erläuterung:

Server Side Includes müssen Sie in einer HTML-Datei innerhalb eines Kommentars notieren. Es gibt verschiedene Server Side Include Anweisungen, beginnend mit einem Gatterzeichen `#`. Im obigen Beispiel kommen die Anweisungen `#echo` und `#exec` vor. Hinter der Anweisung folgt in der Regel eine Angabe der Art Typ="Wert". Im Zusammenhang mit der Anweisung `#echo` ist beispielsweise die Angabe `var="Variablenname"` erlaubt, wobei "Variablenname" ein bestimmter, erlaubter Name sein muß. Es kann sich um Namen von CGI-Umgebungsvariablen handeln oder um spezielle Server Side Include Variablennamen (siehe Liste weiter unten). Bei der Anweisung `#exec`, die ein Programm auf dem Server-Rechner ausführt, müssen Sie den Typ des Programms (im obigen Beispiel: `cgi`) und als Wert die Adresse des ausführbaren Programms (im obigen Beispiel: `"/cgi-bin/plapper.pl"`), angeben.

## Übersicht der Server Side Includes

Die Liste ist nach Anweisungen alphabetisch sortiert.

Anweisung | Parameter/Wert | Beispiele
--- | --- | ---
`#config` | `errmsg="[Fehlermeldung]"` `sizefmt="[Wert]"` `timefmt="[Wert]"` `errmsg` ist sinnvoll, um bei nicht anzeigbaren Server Side Includes eine verständliche Fehlermeldung auszugeben. `sizefmt` bestimmt das Format für Dateigrößenangaben, z.B. sinnvoll vor dem Gebrauch von `#fsize`. Erlaubte Werte: `"abbrev"` (Dateigrößenangaben erfolgen in Kbyte). `"bytes"` (Dateigrößenangaben erfolgen in Byte). `timefmt` bestimmt das Ausgabeformat für Datum/Uhrzeit, z.B. sinnvoll vor dem Gebrauch von `#echo var="LOCAL_TIME"`. Erlaubte Platzhalter: `%a` = Wochentag kurz, z.B. sat `%A` = Wochentag lang, z.B. Saturday `%b` = Monat kurz, z.B. Apr `%B` = Monat lang, z.B. April `%d` = Tag im Monat 2stellig, z.B. 09 `%e` = Tag im Monat, z.B. 9 `%H` = Uhrzeit 24stündig, z.B. 15 `%I` = Uhrzeit 12stündig, z.B. 03 `%j` = julianisches Datum, z.B. 278 `%m` = Monat als Zahl, z.B. 05 `%M` = Minuten nach Stunde, z.B. 07 `%p` = bei%I: AM/PM, z.B. PM `%S` = Sekunden, z.B. 01 `%U` = Kalenderwoche, z.B. 52 `%w` = n-ter Tag der Woche, z.B. 5 `%y` = Jahr 2stellig, z.B. 97 `%Y` = Jahr 4stellig, z.B. 1997 `%Z` = Zeitzone, z.B. MEZ | `<!--#config errmsg="SSI nicht anzeigbar!"-->` `<!--#config sizefmt="bytes"-->` `<!--#config timefmt="%d.%m.%Y, %H.%M"-->`
`#echo` | `var="[Variablenname]"` Bei [Variablenname] sind CGI-Umgebungsvariablen erlaubt oder die folgenden, speziellen Variablennamen: `DOCUMENT_NAME` (Name der HTML-Datei) `DOCUMENT_URI` (Pfad der HTML-Datei) `LAST_MODIFIED` (Zeitstempel der HTML-Datei) `QUERY_STRING_UNESCAPED` (Unkodierter GET-Übergabestring) `DATE_LOCAL` (Datum/Uhrzeit, lokal nach Server) `DATE_GMT` (Datum/Uhrzeit, nach Greenwich-Zeit) | `<!--#echo var="SERVER_NAME"-->` `<!--#echo var="DATE_LOCAL"-->`
`#exec` | `cmd="[Pfad/Programmdatei]"` `cgi="[CGI-Pfad/CGI-Programm/Script]"` Benutzen Sie `cmd`, um ein beliebiges Programm auf dem Server-Rechner zu starten. Benutzen Sie `cgi`, um ein CGI-Programm/CGI-Script auf dem Server-Rechner auszuführen. Es sollte sich um Programme handeln, die Daten auf die Standardausgabe schreiben. Diese Datenausgaben werden dann direkt in die HTML-Datei geschrieben. | `<!--#exec cmd="/prog/search.exe *.htm"-->` `<!--#exec cgi="/cgi-bin/counter.pl"-->`
`#fsize` | `file="[Pfad/Datei]"` Gibt die Größe der angegebenen Datei aus. | `<!--#fsize file="/download/selfhtml.zip"-->`
`#flastmod` | `file="[Pfad/Datei]"` Gibt den Zeitstempel der angegebenen Datei aus. | `<!--#flastmod file="/index.htm"-->`
`#include` | `file = "[Pfad/Datei]"` `virtual = "[Pfad/Datei]"` Gibt den Inhalt der angegebenen Datei aus. Verwenden Sie `file` für absolute Pfadangaben auf dem Server-Rechner und `virtual` für relative Pfadangaben bezogen auf das Wurzelverzeichnis für Dokumente des WWW-Servers. | `<!--#include virtual="/news/news.htm"-->`

weiter: | HTML-Formulare und CGI
zurück: | CGI-Umgebungsvariablen

SELFHTML/Quickbar CGI/Perl Voraussetzungen/Allgemeines

© 1998 Stefan Münz, muenz@csi.com