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

# CGI-Umgebungsvariablen

Allgemeines zu CGI-Umgebungsvariablen
Übersicht der CGI-Umgebungsvariablen

## Allgemeines zu CGI-Umgebungsvariablen

Zur sogenannten "CGI-Schnittstelle" gehören auch die CGI-Umgebungsvariablen. Ein installierter WWW-Server stellt solche Variablen auf Betriebssystemebene zur Verfügung. Bei jedem Aufruf eines CGI-Scripts füllt er einige dieser Variablen mit Informationen. Das CGI-Script kann den Inhalt dieser Variablen auslesen und für eigene Zwecke nutzen. Das CGI-Script kann einige dieser Variablen auch selbst mit Inhalt füllen oder einen dort gespeicherten Inhalt ändern. CGI-Umgebungsvariablen existieren unabhängig von den Variablen, die Sie in einem CGI-Script selbst definieren können.

In CGI-Umgebungsvariablen ist während der Ausführung eines CGI-Scripts beispielsweise der Namen des Server-Rechners gespeichert, oder Information zum verwendeten Browser des Anwenders, der den Aufruf des CGI-Programms verursacht hat. Wenn zum Aufruf des CGI-Scripts aus einem Formular die GET-Methode verwendet wurde, stehen die Daten, die der Anwender in das Formular eingegeben hat, in einer CGI-Umgebungsvariablen (siehe auch den Abschnitt Formulardaten übertragen mit GET oder POST).

Um CGI-Umgebungsvariablen aus einem CGI-Programm heraus zu nutzen, müssen Sie in der verwendeten Programmiersprache die Techniken zum Auslesen von Umgebungsvariablen nutzen. So können Sie in Perl über $ENV{'UMGEBUNGS_VARIABLENNAME'} auf CGI-Umgebungsvariablen zugreifen. Mit einer Anweisung wie print $ENV{'SERVER_NAME'}; können Sie beispielsweise den Namen des Servers ausgeben. Da die Umgebungsvariablen aus Sicht von Perl in einem Hash gespeichert sind, können Sie mit einer Anweisung wie print %ENV alle verfügbaren Umgebungsvariablen ausgeben.

## Übersicht der CGI-Umgebungsvariablen

Die folgende Liste ist nach Variablennamen alphabetisch sortiert.

Variablenname | Erläuterung
--- | ---
`CONTENT_LENGTH` | Enthält die Anzahl der Zeichen, die beim Aufruf des CGI-Scripts über die POST-Methode übergeben wurden. Wenn das CGI-Script beispielsweise beim Absenden eines HTML-Formulars aufgerufen wurde und dort als Übertragungsmethode POST angegeben ist, steht in dieser Umgebungsvariablen, wie viele Zeichen das Script von der Standardeingabe lesen muß, um die übermittelten Formulardaten vollständig einzulesen.
`CONTENT_TYPE` | Enthält beim Aufruf über die POST-Methode den Mime-Type der übergebenen Daten. Wenn das CGI-Script beispielsweise beim Absenden eines HTML-Formulars aufgerufen wurde und dort als Übertragungsmethode POST angegeben ist, steht in dieser Umgebungsvariablen der für HTML-Formulare typische Mime-Type application/x-www-form-urlencoded.
`GATEWAY_INTERFACE` | Enthält die Version der CGI-Schnittstelle, die von dem installierten Server unterstützt wird, z.B. CGI/1.1, wenn die gegenwärtig übliche Version 1.1 der Schnittstellendefinition unterstützt wird.
`HTTP_ACCEPT` | Enthält die Liste der Mime-Types, die der aufrufende WWW-Browser akzeptiert. Die Angabe */* bedeutet: der WWW-Browser akzeptiert alles.
`HTTP_REFERER` | Enthält die URL-Adresse der WWW-Seite, von der aus das CGI-Script aufgerufen wurde. Der Wert wird jedoch nicht von allen WWW-Browsern übermittelt, ist also nicht in jedem Fall verfügbar.
`HTTP_USER_AGENT` | Enthält Produkt- und Versionsinformationen zum aufrufenden WWW-Browser. Ein CGI-Script kann auf diese Weise ermitteln, welchen Browser ein Anwender verwendet.
`PATH_INFO` | Enthält spezielle Pfadinformationen, wenn das Script über die GET-Methode aufgerufen wurde, und zwar relativ zu den im WWW-Server eingestellten Root-Verzeichnissen.
`PATH_TRANSLATED` | Enthält spezielle Pfadinformationen, wenn das Script über die GET-Methode aufgerufen wurde - im Unterschied zu PATH_INFO jedoch Pfadangaben entsprechend der Verzeichnisstruktur des Server-Rechners.
`QUERY_STRING` | Enthält beim Aufruf über die GET-Methode eine Zeichenkette mit Daten, die dem Script übergeben wurden. Wenn ein Anwender ein HTML-Formular ausgefüllt hat, bei dessen Absenden das CGI-Script aufgerufen wurde, stehen in dieser Umgebungsvariablen die aufsgefüllten Formulardaten. Die Daten sind nach den Regeln des Mime-Types application/x-www-form-urlencoded kodiert.
`REMOTE_ADDR` | Enthält die IP-Adresse des Server-Rechners, über den das CGI-Script aufgerufen wurde, wenn es ein anderer Server ist als der, auf dem das CGI-Script liegt. Dieser Wert wird jedoch nicht in allen Fällen gesetzt.
`REMOTE_HOST` | Enthält die Domain-Adresse des Server-Rechners, über den das CGI-Script aufgerufen wurde, wenn es ein anderer Server ist als der, auf dem das CGI-Script liegt. Dieser Wert wird jedoch nicht in allen Fällen gesetzt.
`REMOTE_IDENT` | Enthält Protokollinformation, wenn auf dem Server das Protokoll ident für geschützte Zugriffe läuft.
`REMOTE_USER` | Enthält den Benutzernamen, der das CGI-Script aufgerufen hat. Dieser Wert wird nur gesetzt, wenn die Server-Authentifizierung eingeschaltet ist.
`REQUEST_METHOD` | Enthält den HTTP-Befehl, mit dem das CGI-Programm aufgerufen wurde. Entweder GET oder POST. Ein CGI-Script kann beispielsweise diese Variable auslesen und danach entscheiden, wie es Formulardaten einlesen kann: entweder von der Standardeingabe (bei Methode POST) oder aus der Umgebungsvariablen QUERY_STRING (bei Methode GET).
`SCRIPT_NAME` | Enthält die URL-Adresse des aufgerufenen CGI-Scripts realtiv zur Domain-Adresse, also z.B. /cgi-bin/search.pl.
`SERVER_NAME` | Enthält den Namen des Servers (z.B. www.xy.com) oder die IP-Adresse (z.B. 127.0.0.1).
`SERVER_PORT` | Enthält die Portnummer, die für den WWW-Server eingerichtet wurde. Normalerweise ist dies für WWW-Server die Nummer 80.
`SERVER_PROTOCOL` | Enthält die Version des HTTP-Protokolls, das der installierte WWW-Server unterstützt, z.B. HTTP/1.0, wenn die gegenwärtig übliche Version 1.0 des HTTP-Protokolls unterstützt wird.
`SERVER_SOFTWARE` | Enthält die Produktbezeichnung der installierten Server-Software, z.B. OmniHTTPd/2.0a1 (Win32; i386)

| Blättern: |
CGI-Scripts auf öffentlichem WWW-Server installieren |  |  | Server Side Includes in HTML

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