PHP bietet jedem ausgeführtem Skript eine Vielzahl von
vordefinierten Variablen an. Viele dieser Variablen können
jedoch nicht vollständig erläutert werden, da sie abhängig
sind vom Web-Server, der Version und dem Setup des Web-
Servers sowie weiteren Faktoren. Einige dieser Variablen
stehen nicht zur Verfügung, wenn PHP-Skripte per Kommando-
Zeilen-Aufruf ausgeführt werden.
Ungeachtet dieser Faktoren folgt nun eine Liste von
vordefinierten Variablen innerhalb einer Basis-PHP 3-
Installation als Modul und einer Basis-Installation des
Apache-Web-Servers in der
Vers. 1.3.6.
Eine Liste aller vordefinierten Variablen (und weitere
nützliche Informationen) erhalten sie durch Lesen der Infos
zu (und den Gebrauch) der phpinfo()-Funktion.
Anmerkung:
Diese Liste ist weder vollständig noch erhebt sie Anspruch
auf Vollständigkeit. Sie dient lediglich als Anleitung zu den
möglicherweise zu erwartenden Arten von vordefinierten
Variablen und dem Zugriff darauf.
Apache-Variablen
Diese Variablen werden durch den Apache-Web-Server erzeugt. Sollten
sie einen anderen Web-Server nutzen, gibt es keine Garantie,
dass dieser die selben Variablen unterstützt. Es könnten
einige sein; es könnten aber auch hier nicht aufgeführte sein.
Viele dieser Variablen werden in den CGI 1.1 Spezifikationen aufgeführt.
Darauf sollten sie vorbereitet sein.
Beachten Sie, dass nur wenige, wenn überhaupt, dieser Variablen
zur Verfügung stehen (oder tatsächlich eine beliebige Bedeutung haben),
wenn Sie PHP per Kommandozeile aufrufen.
$GATEWAY_INTERFACE
Die Revision der CGI-Spezifikation, die der Web-Server
benutzt, z.B. 'CGI/1.1'.
$SERVER_NAME
Der Host-Name des Web-Servers, der das Skript ausführt. Das
kann auch der Name eines virtuellen Servers sein.
$SERVER_SOFTWARE
Der Identifikations-String des Web-Servers (aus den Headern),
sobald er Anforderungen beantwortet.
$SERVER_PROTOCOL
Name und Revision des Informations-Protokolls, über das die
Seite angefordert wurde, z.B. 'HTTP/1.0'.
$REQUEST_METHOD
Welche Methode zum Zugriff auf die Seite benutzt wurde,
z.B. 'GET', 'HEAD', 'POST', 'PUT'.
$QUERY_STRING
Der Abfrage-(Query-)String (falls vorhanden), mit dem auf
die Seite zugegriffen wurde.
$DOCUMENT_ROOT
Das Verzeichnis des gerade ausgeführten Skripts aus Sicht
des in der Konfigurations-Datei des Servers definierten
Dokument-Wurzel-Verzeichnisses.
$HTTP_ACCEPT
Inhalt des Accept:-Headers der aktuellen
Anforderung (so es einen solche Header gibt).
$HTTP_ACCEPT_CHARSET
Inhalt des Accept-Charset:-Headers der
aktuellen Anforderung (sofern es einen gibt).
Beispiel: 'iso-8859-1,*,utf-8'.
$HTTP_ENCODING
Inhalt des Accept-Encoding:-Headers der
aktuellen Anforderung (wenn es einen gibt).
Beispiel: 'gzip'.
$HTTP_ACCEPT_LANGUAGE
Inhalt des Accept-Language:-Headers in
der aktuellen Anforderung, sofern dieser Header existiert.
Beispiel: 'en'.
$HTTP_CONNECTION
Inhalt des Connection:-Headers des
aktuellen Request, so er vorhanden ist.
Beispiel: 'Keep-Alive'.
$HTTP_HOST
Inhalt des Host:-Headers der aktuellen
Anforderung, wenn er existiert.
$HTTP_REFERER
Die Adresse (URL) - sofern vorhanden - der Seite, von
der aus auf die aktuelle Seite gesprungen wurde. Dieser
wird vom Browser des Benutzers gesetzt. Nicht alle Browser
unterstützen dies.
$HTTP_USER_AGENT
Inhalt der User_Agent:-Header-Angabe
der aktuellen Anfrage (wenn eine Angabe existiert). Dabei
handelt es sich um eine Zeichenkette, welche der Browser
benennt, mit dem die aktuelle Seite aufgerufen
wurde, z.B. Mozilla/4.5 [en] (X11; U;
Linux 2.2.9 i586). Abgesehen von anderen
Dingen können sie diesen Wert zusammen mit der
get_browser() Funktion dazu verwenden,
ihre Web-Seiten in Abhängigkeit von den Möglichkeiten des
jeweils benutzten Browsers anzeigen zu lassen.
$REMOTE_ADDR
Die IP-Adresse, von der aus gerade auf die Web-Seite
zugegriffen wird.
$REMOTE_PORT
Der Port, der zum Zugriff auf ihren Web-Server seitens
des Anwender-Computers benutzt wird.
$SCRIPT_FILENAME
Der absolute Pfadname des gerade ausgeführten Skripts.
$SERVER_ADMIN
Der Inhalt der in der Konfigurations-Datei des Web-Servers
(Apache) stehenden Angabe zum SERVER_ADMIN. Bei virtuellen
Hosts der dafür eingetragene Wert.
$SERVER_PORT
Der vom Server für den Web-Server benutzte Kommunikations-
Port (normalerweise '80'). Verwenden sie z.B. SSL, wird
dieser Port derjenige sein, den sie für sicheres HTTP
definiert haben.
$SERVER_SIGNATURE
Sofern eingeschaltet, enthält diese Zeichenkette die Server-
Version und den virtuellen Host-Namen. Sie wird den durch
den Server generierten Seiten hinzu gefügt.
$PATH_TRANSLATED
In Abhängigkeit vom Datei- / File-System der Pfad des
aktuellen Skripts, nachdem der Server das virtuelle
Mapping in ein reales Mapping umgesetzt hat (nicht der
Dokument-Wurzel-Pfad).
$SCRIPT_NAME
Enthält den Pfad des aktuellen Skripts. Nützlich für
Seiten, die auf sich selbst verweisen müssen.
$REQUEST_URI
Die URI, die durch den Zugriff auf die aktuelle Seite
gegeben ist, z.B. '/index.html'.
Umgebungs- / Environment-Variablen
Diese Variablen werden aus der Umgebung, in der PHP läuft, in
den globalen Namensbereich von PHP importiert. Viele werden
durch die jeweilige Shell, in der PHP läuft, unterstützt bzw.
gebildet. Da es verschiedenste Systemumgebungen mit den
unterschiedlichsten Shell`s gibt, ist es nicht möglich, eine
abschließende Liste der definierten Umgebungs-Variablen
aufzustellen. Lesen sie deshalb in der Anleitung zu ihrer
Shell nach, um eine Liste dieser systembezogenen Variablen
zu erhalten.
Andere Umgebungs-Variablen beinhalten die CGI-Variablen,
die ohne Rücksicht darauf, ob PHP als Web-Server-Modul
oder im CGI-Modus läuft, gesetzt werden.
PHP-Variablen
Diese Variablen werden durch PHP selbst erzeugt.
$HTTP_*_VARS Variablen stehen nur zur Verfügung,
wenn die Option track_vars in der
php.ini auf "on" gesetzt ist. Wenn dies der Fall ist, werden diese Variablen
immer gesetzt, selbst wenn es leere Arrays sind. Das verhindert, dass ein
böswilliger Nutzer diese Variablen manipuliert.
Anmerkung:
Seit PHP 4.0.3 ist track_vars immer aktiviert,
ohne Rücksicht auf die Einstellungen in der Konfigurationsdatei.
Anmerkung:
Die neuen "Superglobals" stehen seit der PHP Version 4.1.0. zur
Verfügung. Im 4.1.0 Release
Announcement können Sie mehr Details nachlesen.
Dieses sind die Arrays
$_GET, $_POST,
$_ENV, $_SERVER,
$_COOKIE, $_REQUEST$_FILES und $_SESSION
und werden informell als Superglobals bezeichnet,
weil sie immer zur Verfügung stehen, ohne Berücksichtigung des
Geltungsbereichs.Damit sind die alten, beziehungsweise die
$HTTP_*_VARS Arrays veraltet.
Wenn register_globals
aktiviert ist,stehen auch diese Variablen im globalen Namensbereich
des Skripts zur Verfügung; z.B. getrennt von den Arrays
$HTTP_*_VARS und $_*.
Verwandte Informationen erhalten Sie im Kapitel über Sicherheit
unter dem Abschnitt
Verwendung von Register Globals.
$argv
Ein Array von Argumenten, die dem Skript übergeben
werden. Wird das Skript an der Befehlszeile aufgerufen,
ermöglicht dies C-ähnlichen Zugriff auf die Kommando-
Zeilen-Parameter. Beim Aufruf per GET-Methode enthält
dieses Array die Abfragewerte.
$argc
Anzahl der per Kommando-Zeile dem Skript übergebenen
Parameter (wenn von dort aufgerufen).
$PHP_SELF
Der Dateiname des gerade ausgeführten Skripts, relativ
zum Wurzel-Verzeichnis des Dokuments. Bei Kommando-Zeilen-
Aufrufen ist diese Variable nicht verfügbar.
$HTTP_COOKIE_VARS
Ein assoziatives Array von Variablen, das dem aktuellen Skript
über HTTP-Cookies übergeben wurde.
$_COOKIE
Ein assoziatives Array von Variablen, das dem aktuellen Skript
über HTTP-Cookies übergeben wurde. Automatisch global in jedem
Geltungsbereich. Eingeführt in PHP 4.1.0.
$HTTP_GET_VARS
Ein assoziatives Array von Variablen, das dem aktuellen
Skript per HTTP-GET-Methode übergeben wurde.
$_GET
Ein assoziatives Array von Variablen, das dem aktuellen
Skript per HTTP-GET-Methode übergeben wurde.Automatisch global in
jedem Geltungsbereich. Eingeführt in PHP 4.1.0.
$HTTP_POST_VARS
Ein assoziatives Array aus Varaiblen, welches dem aktuellen
Skript per HTTP-POST-Methode übergeben wurde.
$_POST
Ein assoziatives Array aus Variablen, welches dem aktuellen
Skript per HTTP-POST-Methode übergeben wurde. Automatisch global in
jedem Geltungsbereich. Eingeführt in PHP 4.1.0.
$HTTP_POST_FILES
Ein assoziatives Array aus Variablen, das Informationen über
per HTTP POST-Methode hochgeladene Dateien enthält. Siehe Dateiuploads mit POST
für Informationen über den Inhalt der
$HTTP_POST_FILES. Eingeführt in PHP 4.0.0.
$_FILES
Ein assoziatives Array aus Variablen, das Informationen über
per HTTP POST-Methode hochgeladene Dateien enthält. Siehe Dateiuploads mit POST
für Informationen über den Inhalt der
$_FILES.Automatisch global in jedem
Geltungsbereich. Eingeführt in PHP 4.1.0.
$HTTP_ENV_VARS
Ein assoziatives Array aus Variablen, die dem aktuellen Skript
über die Umgebung zur Verfügung stehen.
$_ENV
Ein assoziatives Array aus Variablen, die dem aktuellen Skript
über die Umgebung zur Verfügung stehen. Automatisch global in
jedem Geltungsbereich. Eingeführt in PHP 4.1.0.
$HTTP_SERVER_VARS
Ein assoziatives Array aus Variablen, die dem aktuellen Skript
vom jeweiligen HTTP-Server übermittelt werden. Diese Variablen
sind analog zu den oben beschriebenen Apache-Variablen.
$_SERVER
Ein assoziatives Array aus Variablen, die dem aktuellen Skript
vom jeweiligen HTTP-Server übermittelt werden. Diese Variablen
sind analog zu den oben beschriebenen Apache-Variablen. Automatisch
global in jedem Geltungsbereich. Eingeführt in PHP 4.1.0.
$HTTP_SESSION_VARS
Ein assoziatives Array aus Session-Variablen, die dem aktuellen
Skript übergeben wurden.
$_SESSION
Ein assoziatives Array aus Session-Variablen, die dem aktuellen
Skript übergeben wurden. Automatisch global in jedem
Geltungsbereich. Werden dem Array $_SESSION neue Einträge
hinzugefügt, werden diese automatisch als Session-Variablen
registriert, genau so als ob die Funktion
session_register() aufgerufen worden wäre.
Eingeführt in PHP 4.1.0.
$_REQUEST
Ein assoziatives Array zusammengesetzt aus den GET, POST und Cookie
Variablen. Mit anderen Worten - alle Informationen die vom Nutzer
kommen und denen aus Sichtweise der Sicherheit nicht zu trauen ist.
Automatisch global in jedem Geltungsbereich. Eingeführt in
PHP 4.1.0.