Forum und email

Vordefinierte Variablen

Seit PHP 4.1.0 wird empfohlen, externe Variablen über die Superglobals, die weiter unten beschrieben werden, abzufragen. Davor war man entweder auf die register_globals -Einstelliung oder die Langformen der vordefinierten PHP-Arrays ($HTTP_*_VARS) angewiesen. Seit PHP 5.0.0 können Sie die Registrierung der langen von PHP vordefinierten Arrays mit der Konfigurationsoption register_long_arrays abschalten.

Server-Variablen: $_SERVER

Hinweis: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie stattdessen $HTTP_SERVER_VARS.

$_SERVER ist ein Array, in dem Informationen über Header, Pfade oder den Speicherort des Skripts gespeichert sind. Die Einträge dieses Arrays werden vom Webserver generiert. Es gibt keine Garantie, dass jeder Webserver alle diese Einträge erzeugt. Manche Server werden Einträge auslassen oder andere einfügen, die hier nicht aufgeführt sind. Ein grosser Teil dieser Variablen stammt aus der » CGI 1.1 Spezifikation.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_SERVER; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_SERVER_VARS notwendig ist.

$HTTP_SERVER_VARS enthält dieselben Informationen ist aber nicht automatisch global. (Beachten Sie, dass $HTTP_SERVER_VARS und $_SERVER verschiedene Variablen sind, die von PHP auch so behandelt werden.)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_SERVER und $HTTP_SERVER_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Möglicherweise finden Sie das eine oder andere der folgenden Elemente nicht in $_SERVER. Beachten Sie, dass nur wenige, falls überhaupt, verfügbar sind (oder von Bedeutung sind) wenn sie PHP auf der Kommandozeile betreiben.

'PHP_SELF'
Der Name des aktuell ausgeführten Skripts, relativ zum Wurzelverzeichnis des Servers. Zum Beispiel gibt $_SERVER['PHP_SELF'] in einem Skript mit der Adresse http://example.com/test.php/foo.bar den Namen /test.php/foo.bar zurück. Falls PHP auf der Kommandozeile ausgeführt wird, ist diese Variable nicht verfügbar.
'argv'
In diesem Array sind die Argumente enthalten, die an ein Skript übergeben wurden. Wenn das Skript auf der Kommandozeile ausgeführt wird, haben Sie einen C-ähnlichen Zugriff auf die Kommandozeilenparameter. Wenn es mit der GET-Methode aufgerufen wird, enthält das Array den Abfragestring.
'argc'
Enthält die Anzahl der Kommandozeilenparameter, die an das Skript übergeben wurden (falls es von der Kommandozeile aus aufgerufen wurde).
'GATEWAY_INTERFACE'
Die vom Server genutzte Revision der CGI Spezifikation, zB. 'CGI/1.1'.
'SERVER_ADDR'
Die IP-Adresse des Servers unter der das aktuelle Script ausgeführt wird.
'SERVER_NAME'
Der Name des Server Hosts unter dem das aktuelle Skript ausgeführt wird. Falls das Skript unter einem virtuellen Host läuft, wird der Name, der für diesen virtuellen Host vergeben wurde, angezeigt.
'SERVER_SOFTWARE'
Die Identifikation des Servers, mit der sich ein Server im Header bei der Beantwortung einer Anforderung identifiziert.
'SERVER_PROTOCOL'
Name und Versionsnummer des Protokolls, über das die Seite angefordert wurde. Z. B. 'HTTP/1.0';
'REQUEST_METHOD'
Die HTTP-Methode mit der auf die Seite zugegriffen wurde, zB. 'GET', 'HEAD', 'POST', 'PUT'.

Hinweis: Ist die Zugriffsmethode HEAD so wird das Skript nach dem Senden der Header (also mit der ersten nicht von der Ausgabepufferung abgefangenen Ausgabe) beendet.

'REQUEST_TIME'
Der Startzeitpunkt des Requests. Verfügbar ab PHP 5.1.0
'QUERY_STRING'
Der Query-String, falls vorhanden, mit dem auf die Seite zugegriffen wurde.
'DOCUMENT_ROOT'
Das Wurzelverzeichnis des Webservers, unter dem das aktuelle Skript ausgeführt wird, so wie es in der Konfigurationsdatei des Webservers hinterlegt ist.
'HTTP_ACCEPT'
Der Inhalt des Accept:-Headers der aktuellen Anforderung, falls dieser Header vorhanden ist.
'HTTP_ACCEPT_CHARSET'
Der Inhalt des Accept-Charset:-Headers der aktuellen Anforderung, so vorhanden. Z. B. 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Der Inhalt des Accept-Encoding:-Headers der aktuellen Anforderung, so vorhanden. Beispiel: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Der Inhalt des Accept-Language:-Headers der aktuellen Anforderung, so vorhanden. Beispiel: 'en'.
'HTTP_CONNECTION'
Der Inhalt des Connection:-Headers der aktuellen anforderung, so vorhanden. Beispiel: 'Keep-Alive'.
'HTTP_HOST'
Der Inhalt des Host:-Headers der aktuellen Anforderung, so vorhanden.
'HTTP_REFERER'
Die Adresse der Seite (falls es eine gibt), die den Browser auf die aktuelle Seite verwies. Dieser Header wird vom Browser gesetzt, aber nicht von allen. Einige Browser bieten die Möglichkeit, den HTTP_REFERER zu modifizieren. Kurz, auf diesen Header kann man sich nicht verlassen.
'HTTP_USER_AGENT'
Inhald des User-Agent: Headers des aktuellen Requests falls vorhanden. Dieser String beschreibt den auf die Seite zugreifenden Client. Ein typisches Beispiel ist Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Sie können diesen unter anderem im Zusammenhang mit der Funktion get_browser() benutzen um die Ausgaben Ihres Scripts an die Fähigkeiten des Clients anzupassen.
'HTTPS'
Dieser Eintrag ist gesetzt wenn der Zugriff auf das Script über das HTTPS Protokoll erfolgte. protocol. Wenn das ISAPI des IIS genutzt wird so ist diese Variable auch bei nicht-HTTPS Zugriffen gesetzt und enthält in diesem Fall den Wert off.
'REMOTE_ADDR'
Die IP-Adresse des Rechners, der die aktuelle Seite angefordert hat.
'REMOTE_HOST'
Der Hostname des Servers, von dem die aktuelle Seite geladen wurde. Der reverse dns lookup basiert auf dem REMOTE_ADDR-Header.

Hinweis: Um diese Variable zu erzeugen, muss Ihr Webserver entsprechend eingestellt sein. Zum Beispiel muss beim Apache HostnameLookups On in der httpd.conf aktiv sein. Siehe auch unter gethostbyaddr().

'REMOTE_PORT'
Der Port über den der Rechner des Benutzers mit dem Webserver kommuniziert.
'SCRIPT_FILENAME'

Der absolute Pfadname des aktuell ausgeführten Skripts.

Hinweis: Falls das Skript auf der Kommandozeile mit einem relativen Pfad aufgerufen wird, wie z. B. file.php oder ../file.php, enthält $_SERVER['SCRIPT_FILENAME'] den relativen Pfad, den der Benutzer angegeben hat.

'SERVER_ADMIN'
Der Wert, der in der Server Konfiguration der Direktive SERVER_ADMIN (bei Apache) zugewiesen wurde. Falls das Skript unter einem virtuellen Host läuft, wird der Wert angegeben, der für diesen virtuellen Host angegeben wurde.
'SERVER_PORT'
Der Port, den der Server zur Kommunikation benutzt. Bei Standardinstallationen ist dies der Port '80'. Bei Verwendung von SSH ändert sich der Wert zu Ihrem definierten SSH Port.
'SERVER_SIGNATURE'
Ein String, der bei Seiten, die vom Server generiert wurden, die Server Version und den Namen des virtuellen Hosts enthält, falls diese Option aktiviert ist.
'PATH_TRANSLATED'
Filesystem- (not document root-) based path to the current script, after the server has done any virtual-to-real mapping.

Hinweis: As of PHP 4.3.2, PATH_TRANSLATED is no longer set implicitly under the Apache 2 SAPI in contrast to the situation in Apache 1, where it's set to the same value as the SCRIPT_FILENAME server variable when it's not populated by Apache. This change was made to comply with the CGI specification that PATH_TRANSLATED should only exist if PATH_INFO is defined. Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define PATH_INFO.

'SCRIPT_NAME'
Contains the current script's path. This is useful for pages which need to point to themselves. The __FILE__ constant contains the full path and filename of the current (i.e. included) file.
'REQUEST_URI'
The URI which was given in order to access this page; for instance, '/index.html'.
'PHP_AUTH_DIGEST'
When running under Apache as module doing Digest HTTP authentication this variable is set to the 'Authorization' header sent by the client (which you should then use to make the appropriate validation).
'PHP_AUTH_USER'
Wenn HTTP-Authentifizierung mit Apache als Modul benutzt wird, enthält diese Variable den Benutzernamen, der vom Anwender angegeben wurde.
'PHP_AUTH_PW'
Wenn HTTP-Authentifizierung mit Apache als Modul benutzt wird, enthält diese Variable das Passwort, das vom Anwender angegeben wurde.
'AUTH_TYPE'
Wenn HTTP-Authentifizierung mit Apache als Modul benutzt wird, enthält diese Variable den Authentifizierungs-Typ.

Umgebungsvariablen: $_ENV

Hinweis: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_ENV_VARS.

Diese Variablen werden aus der Systemumgebung, in der der Parser läuft in den globalen Namensraum Von PHP importiert. Viele davon werden vom System generiert, unter dem der Parser läuft und unterschiedliche Systeme benutzen unterschiedliche Umgebungsvariablen. Eine verbindliche Liste anzugeben ist daher unmöglich. Schauen Sie in der Dokumentation Ihres Systems nach den dort definierten Umgebungsvaraiblen.

Andere Umgebungsvariablen einschließlich der CGI-Variablen, sind hier aufgeführt, egal ob PHP als Servermodul oder CGI Prozess läuft.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_ENV; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_ENV_VARS notwendig ist.

$HTTP_ENV_VARS enthält dieselben Informationen ist aber nicht automatisch global. (Beachten Sie, dass $HTTP_ENV_VARS und $_ENV verschiedene Variablen sind, die von PHP auch so behandelt werden.)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_ENV und $HTTP_ENV_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

HTTP Cookies: $_COOKIE

Hinweis: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_COOKIE_VARS.

Ein assoziatives Array mit Variablen, das an das aktuelle Skript mit HTTP-Cookies übergeben wurde. Es ist automatisch global in allen Gültigkeitsbereichen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_COOKIE; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_COOKIE_VARS notwendig ist.

$HTTP_COOKIE_VARS contains the same initial information, but is not an autoglobal. (Note that HTTP_COOKIE_VARS and $_COOKIE are different variables and that PHP handles them as such)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_COOKIE und $HTTP_COOKIE_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

HTTP GET Variablen: $_GET

Hinweis: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_GET_VARS.

Ein assoziatives Array mit Variablen, das an das aktuelle Skript mit der GET-Methode übergeben wurde. Es ist automatisch global in allen Gültigkeitsbereichen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_GET; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_GET_VARS notwendig ist.

$HTTP_GET_VARS enthält dieselben Informationen ist aber nicht automatisch global. (Beachten Sie, dass $HTTP_GET_VARS und $_GET verschiedene Variablen sind, die von PHP auch so behandelt werden.)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_GET und $HTTP_GET_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

HTTP POST Variablen: $_POST

Hinweis: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_POST_VARS.

Ein assoziatives Array mit Variablen, das an das aktuelle Skript mit der POST-Methode übergeben wurde. Es ist automatisch global in allen Gültigkeitsbereichen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_POST; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_POST_VARS notwendig ist.

$HTTP_POST_VARS enthält dieselben Informationen ist aber nicht automatisch global. (Beachten Sie, dass $HTTP_POST_VARS und $_POST verschiedene Variablen sind, die von PHP auch so behandelt werden.)

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_POST und $HTTP_POST_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Variablen für HTTP Dateiuploads: $_FILES

Hinweis: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_POST_FILES.

Ein assoziatives Array mit Elementen, die in das aktuelle Skript mit der HTTP-POST-Methode hochgeladen wurden. Es ist automatisch global in allen Gültigkeitsbereichen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_FILES; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_POST_FILES notwendig ist.

$HTTP_POST_FILES enthält dieselben Informationen, ist aber nicht autoglobal.

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_FILES und $HTTP_POST_FILES Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Variablen einer Anforderung: $_REQUEST

Hinweis: Dieses Array wurde mit PHP 4.1.0 neu eingeführt. Es gibt kein entsprechendes Array in älteren Versionen.

Hinweis: Vor der PHP Version 4.3.0 waren die Informationen des Arrays $_FILES auch im Array $_REQUEST enthalten.

Ein assoziatives Aray, das die Inhalte der Arrays $_GET, $_POST und $_COOKIE enthält.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_REQUEST; in Funktionen oder Methoden importieren, um darauf zuzugreifen.

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von dem Array $_REQUEST. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Session Variablen: $_SESSION

Hinweis: Dieses Array wurde mit PHP 4.1.0 eingeführt. In älteren Versionen benutzen Sie das Array $HTTP_SESSION_VARS.

Ein assoziatives Array, das die Sessionvariablen für das aktuelle Skript enthält. Mehr über die Verwendung dieses Arrays finden Sie bei der Dokumentation zu den Session Funktionen.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $_SESSION; in Funktionen oder Methoden importieren, um darauf zuzugreifen, so wie es bei $HTTP_SESSION_VARS notwendig ist.

$HTTP_SESSION_VARS enthält dieselben Informationen, ist aber nicht automatisch global.

Falls die Direktive register_globals gesetzt ist, sind diese Variablen auch im globalen Sichbarkeitsbereich eines Skripts verfügbar, d.h., unabhängig von den $_SESSION und $HTTP_SESSION_VARS Arrays. Lesen Sie für weitere Informationen das Kapitel über Sicherheit Verwendung von Register Globals. Diese individuellen globalen Variablen sind nicht automatisch global.

Globale Variablen: $GLOBALS

Hinweis: $GLOBALS steht seit PHP 3.0.0 zur Verfügung.

Ein assoziatives Array, das Referenzen zu allen Variablen, die gegenwärtig im globalen Gültigkeitsbereich des Skripts definiert sind. Die Variablennamen sind die Indizes dieses Arrays.

Dies ist eine 'superglobale' oder automatisch globale Variable. Das bedeutet, dass die Variable in allen Sichtbarkeitsbereichen eines Skripts verfügbar ist. Sie brauchen dieses Array nicht mit global $GLOBALS; in Funktionen oder Methoden importieren, um darauf zuzugreifen.

Die letzte Fehlermeldung: $php_errormsg

$php_errormsg ist eine Variable, die den Text der zuletzt aufgetretenen PHP Fehlermeldung enthält. Hierauf kann nur in dem Gültigkeitsbereich zugegriffen werden, in dem der Fehler auftrat, und nur dann, wenn die Direktive track_errors in der Konfiguration aktiviert ist (standardmäßig ist diese Direktive deaktiviert).