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

© 1997  Stefan Münz, s.muenz@euromail.com