| HTML-Dateien selbst erstellen
|  | Dokumentation: CGI/Perl
|  |  | CGI und 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 innnerhalb 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 Sie 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" -->

| Blättern: |
CGI-Umgebungsvariablen |  |  | HTML-Formulare und CGI

| HTML-Dateien selbst erstellen
|  | Dokumentation: CGI/Perl
|  |  | CGI und Perl: Voraussetzungen/Allgemeines