|
|
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. Für eine Liste dieser Variablen lesen Sie bitte
den Abschnitt Vordefinierte
Variablen.
| Warnung |
Ab PHP 4.2.0 ist der standardmäßige Wert für die PHP-Anweisung
register_globals
off. Dies ist eine wesentliche Änderung in
PHP. Die Anweisung register_globals off
beeinflusst den Satz von vordefinierten Variablen, die im
globalen Bereich verfügbar sind. Um zum Beispiel
DOCUMENT_ROOT zu bekommen, müssen Sie
$_SERVER['DOCUMENT_ROOT'] statt
$DOCUMENT_ROOT verwenden oder um
$id von der URL
http://www.example.com/test.php?id=3 zu
bekommen $_GET['id'] statt
$id oder $_ENV['HOME']
statt $HOME.
Für diese Änderung betreffende Informationen lesen Sie bitte den
Konfigurations-Eintrag für register_globals, das
Sicherheitskapitel über die Verwendung von Register
Globals und außerdem die PHP
4.1.0 und
4.2.0 Release
Announcements.
Die reservierten vordefinierten Variablen, wie die
Superglobalen
Arrays, sollten bevorzugt verwendet werden.
|
Ab Version 4.1.0 stehen in PHP eine zusätzliche Reihe
vordefinierter Arrays zur Verfügung, die Variablen vom Webserver
(gegebenenfalls), von der Umgebung und von Benutzereingaben
enthalten. Diese neuen Arrays sind insofern etwas sehr Spezielles,
als sie automatisch global sind -- d.h., sie stehen automatisch in
jedem Bereich zur Verfügung. Deshalb sind sie auch bekannt als
'Autoglobale' oder 'Superglobale'. (Es gibt in PHP keinen
Mechanismus für benutzerdefinierte Superglobale.) Die Superglobale
werden nachfolgend aufgelistet, aber für eine Liste ihres Inhalts
und die weitere Diskussion vordefinierter Variablen und ihres
Wesens lesen Sie bitte den Abschnitt Reservierte vordefinierte
Variablen. Außerdem werden Sie feststellen, dass die alten
vordefinierten Variablen ($HTTP_*_VARS) noch
existieren.
Seit PHP 5.0.0 können Sie die
Registrierung der langen von PHP
vordefinierten Arrays mit der Konfigurationsoption
register_long_arrays
abschalten.
Falls bestimmte Variablen nicht unter variables_order angegeben
sind, dann bleiben auch ihre entsprechenden vordefinierten Arrays
leer.
PHP Superglobale - $GLOBALS
Diese Variable enthält eine Referenz zu jeder Variable, die
im globalen Bereich des laufenden Skripts zur Verfügung
steht. Die Schlüssel dieses Arrays sind die Namen der globalen
Variablen. $GLOBALS gibt es seit PHP 3.
- $_SERVER
Variablen, die vom Webserver gesetzt werden oder anderweitig
direkt mit der ausführenden Umgebung des aktuellen Skripts
zusammenhängen. Entspricht dem alten
$HTTP_SERVER_VARS-Array, das zwar noch zur
Verfügung steht, aber abzulehnen ist.
- $_GET
Variablen, die dem Skript über HTTP GET geliefert werden.
Entspricht dem alten $HTTP_GET_VARS-Array,
das zwar noch zur Verfügung steht, aber abzulehnen ist.
- $_POST
Variablen, die dem Skript über HTTP POST geliefert werden.
Entspricht dem alten $HTTP_POST_VARS-Array,
das zwar noch zur Verfügung steht, aber abzulehnen ist.
- $_COOKIE
Variablen, die dem Skript über HTTP Cookies geliefert werden.
Entspricht dem alten
$HTTP_COOKIE_VARS-Array, das zwar noch zur
Verfügung steht, aber abzulehnen ist.
- $_FILES
Variablen, die dem Skript über HTTP Post Datei-Uploads
geliefert werden. Entspricht dem alten
$HTTP_POST_FILES-Array, das zwar noch zur
Verfügung steht, aber abzulehnen ist. Für mehr Informationen
lesen Sie bitte Dateiuploads mit
POST.
- $_ENV
Variablen, die dem Skript über die Umgebung geliefert werden.
Entspricht dem alten $HTTP_ENV_VARS-Array,
das zwar noch zur Verfügung steht, aber abzulehnen ist.
- $_REQUEST
Variablen, die dem Skript über die GET-, POST- und
COOKIE-Eingabemechanismen geliefert werden und von daher nicht
vertrauenswürdig sind. Die Präsenz und die Reihenfolge der
Aufnahme der Variablen in dieses Array ist entsprechend der
Konfigurationsanweisung variables_order definiert.
Dieses Array hat in PHP vor Version 4.1.0 keine direkte
Entsprechung. Siehe auch
import_request_variables().
| Achtung |
Seit PHP 4.3.0 gibt es in $_REQUEST keine
FILE-Informationen von $_FILES mehr.
|
Anmerkung:
Wenn PHP-Skripte auf der Kommandozeile ausgeführt
werden, sind die Einträge argv und
argc nicht in diesem
Array enthalten; diese befinden sich im
$_SERVER-Array.
- $_SESSION
Variablen, die aktuell in der Session eines Skripts registriert
sind. Entspricht dem alten
$HTTP_SESSION_VARS-Array, das zwar noch zur
Verfügung steht, aber abzulehnen ist. Für mehr Informationen
lesen Sie bitte den Abschnitt Session Funktionen.
|