$_SERVER
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER — Informationen über Server und Ausführungsumgebung
Beschreibung
$_SERVER ist ein Array, das Informationen wie Header,
Pfade und die verschiedenen Wege, das Skript anzusprechen beinhaltet. Die
Einträge in diesem Array werden vom Webserver erstellt, weshalb es keine
Garantie dafür gibt, dass jeder Webserver alle diese Einträge unterstützt -
Server können einige weglassen oder andere Einträge unterstützen, die hier
nicht aufgeführt sind. Die meisten dieser Variablen werden jedoch in der
» CGI/1.1-Spezifikation ausgewiesen
und sind wahrscheinlich definiert.
Hinweis:
Wenn PHP auf der Kommandozeile
läuft, sind die meisten dieser Einträge nicht verfügbar oder haben keine
Bedeutung.
Zusätzlich zu den unten aufgelisteten Elementen erstellt PHP weitere
Elemente mit Werten aus Anfrage-Headern. Diese Einträge erhalten die
Bezeichnung HTTP_
, gefolgt vom Namen des Headers in
Großbuchstaben und mit Unterstrichen anstelle von Bindestrichen. Zum
Beispiel wäre der Accept-Language
-Header als
$_SERVER['HTTP_ACCEPT_LANGUAGE']
verfügbar.
Indizes
- 'PHP_SELF'
-
Der Dateiname des aktuell ausgeführten Skripts, relativ zum
Document-Root. Beispielsweise enthält
$_SERVER['PHP_SELF'] in einem Skript, das über die
Adresse http://example.com/foo/bar.php aufgerufen
wird, den Wert /foo/bar.php. Die Konstante
__FILE__ enthält
den vollständigen Pfad und Dateinamen der aktuellen (z. B. via include
eingebundenen) Datei.
Falls PHP als Kommandozeilenprogramm läuft, enthält diese Variable den
Namen des Skripts.
- 'argv'
-
Das Array der an das Skript übergebenen Argumente. Wenn das Skript auf
der Kommandozeile ausgeführt wird, ermöglicht dies den Zugriff auf die
Kommandozeilenparameter im C-Stil. Wird das Skript via GET aufgerufen,
enthält die Variable den Querystring.
- 'argc'
-
Enthält die Anzahl der per Kommandozeile an das Skript übergebenen
Parameter (sofern das Skript auf der Kommandozeile ausgeführt wird).
- 'GATEWAY_INTERFACE'
-
Enthält die Version der vom Server verwendete CGI-Spezifikation, z. B.
'CGI/1.1'
.
- 'SERVER_ADDR'
-
Die IP-Adresse des Servers, auf dem das aktuelle Skript ausgeführt
wird.
- 'SERVER_NAME'
-
Der Hostname des Servers, auf dem das aktuelle Skript ausgeführt wird.
Wenn das Skript auf einem virtuellen Host läuft, wird dieser Wert vom
virtuellen Host bestimmt.
Hinweis:
Unter Apache 2 müssen UseCanonicalName = On
und
ServerName
gesetzt werden. Ansonsten reflektiert
dieser Wert den Hostnamen, der vom Client gesendet wurde und
vorgetäuscht werden kann. Es ist nicht sicher, sich in einem
sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.
- 'SERVER_SOFTWARE'
-
Die Identifikation der verwendeten Server-Software, die bei einer
Antwort auf den eingegangenen Request verwendet wird.
- 'SERVER_PROTOCOL'
-
Der Name und die Versionsnummer des verwendeten Übertragungsprotokolls,
mittels dessen die aktuelle Seite aufgerufen wurde, z. B.
'HTTP/1.0'
.
- 'REQUEST_METHOD'
-
Die Requestmethode, die verwendet wurde, um die Seite aufzurufen; z. B.
'GET'
, 'HEAD'
,
'POST'
, 'PUT'
.
Hinweis:
Ist die Requestmethode HEAD
, wird ein PHP-Skript
beendet, nachdem die Header gesendet wurden (sofern Ausgaben ohne die
Verwendung des Ausgabepuffers (output buffering) erzeugt werden).
- 'REQUEST_TIME'
-
Der Timestamp des Zeitpunkts, an dem der Request eintraf.
- 'REQUEST_TIME_FLOAT'
-
Der Timestamp des Zeitpunkts, an dem der Request eintraf, in
Mikrosekunden-Genauigkeit.
- 'QUERY_STRING'
-
Sofern vorhanden, der Querystring, mittels dessen auf die Seite
zugegriffen wurde.
- 'DOCUMENT_ROOT'
-
Das Document-Root-Verzeichnis, unter dem das aktuelle Skript ausgeführt
wird, so wie es in der Konfiguration des Servers festgelegt wurde.
- 'HTTPS'
-
Wird auf einen nicht-leeren Wert gesetzt, wenn das Skript via HTTPS
aufgerufen wurde.
- 'REMOTE_ADDR'
-
Die IP-Adresse, von der aus der Benutzer die aktuelle Seite ansieht.
- 'REMOTE_HOST'
-
Der Name des Hosts, von dem aus der Benutzer die aktuelle Seite
ansieht. Der Auflösung der IP-Adresse (Reverse DNS Lookup) basiert auf
der REMOTE_ADDR des Benutzers.
Hinweis:
Der Webserver muss so konfiguriert sein, dass er diese Variable
erzeugt. Zum Beispiel muss bei Apache in der httpd.conf die
Direktive HostnameLookups On
gesetzt werden, damit
sie existiert. Siehe auch gethostbyaddr().
- 'REMOTE_PORT'
-
Der vom Rechner des Benutzers verwendete Port, um mit dem Webserver zu
kommunizieren.
- 'REMOTE_USER'
-
Der beglaubigte Benutzer.
- 'REDIRECT_REMOTE_USER'
-
Der beglaubigte Benutzer, falls der Request intern weitergeleitet
wurde.
- 'SCRIPT_FILENAME'
-
Der absolute Pfad des aktuell ausgeführten Skripts.
Hinweis:
Wenn ein Skript als CLI mit einem relativen Pfad wie
file.php oder ../file.php
ausgeführt wird, enthält
$_SERVER['SCRIPT_FILENAME'] den vom Benutzer
angegebenen relativen Pfad.
- 'SERVER_ADMIN'
-
Der Wert, der für die SERVER_ADMIN-Direktive (für Apache) im
Konfigurationsfile des Webservers eingestellt wurde. Wenn das Skript
auf einem Virtuellen Host läuft, wird der für diesen Virtuellen Host
definierte Wert verwendet.
- 'SERVER_PORT'
-
Der Port, der auf dem Server vom Webserver für die Kommunikation
genutzt wird. In einer Standardumgebung ist dies
'80'
; wenn Sie beispielsweise SSL verwenden, wird
dieser Wert auf den Port geändert, über den Sie Ihre verschlüsselte
HTTP-Kommunikation abwickeln.
Hinweis:
Unter Apache 2 müssen UseCanonicalName = On
sowie
UseCanonicalPhysicalPort = On
gesetzt werden, um
den physikalischen (wirklichen) Port zu erhalten; andernfalls kann
dieser Wert gefälscht werden und gibt dann den Wert des physikalischen
Ports zurück oder auch nicht. Es ist nicht sicher, sich in einem
sicherheitsabhängigen Umfeld auf diesen Wert zu verlassen.
- 'SERVER_SIGNATURE'
-
Ein String, der die Version der verwendeten Serversoftware und den
Namen des Virtuellen Hosts enthält, der, sofern die Option auf dem
Server aktiviert ist, an die servergenerierten Seiten angefügt wird.
- 'PATH_TRANSLATED'
-
Auf dem Dateisystem (nicht dem Document-Root!) basierender Pfad zum
aktuellen Skript, nachdem der Server ein Virtual-to-Real-Mapping
durchgeführt hat.
Hinweis:
Apache 2-Benutzer können die Direktive AcceptPathInfo =
On
in der httpd.conf verwenden, um
einen Wert für PATH_INFO zu definieren.
- 'SCRIPT_NAME'
-
Enthält den Pfad zum aktuellen Skript. Dies ist nützlich für Seiten,
die auf sich selbst verweisen sollen. Die Konstante
__FILE__ enthält
den vollständigen Pfad und Dateinamen der aktuellen (z. B. via include
eingebundenen) Datei.
- 'REQUEST_URI'
-
Der URI, der angegeben wurde, um auf die aktuelle Seite zuzugreifen,
beispielsweise '
/index.html
'.
- 'PHP_AUTH_DIGEST'
-
Wenn die Digest HTTP Authentication verwendet wird, wird diese Variable
mit dem Inhalt des vom Client gesendeten 'Authorization'-Headers
gefüllt, welchen Sie für eine adäquate Validierung nutzen sollten.
- 'PHP_AUTH_USER'
-
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit
dem vom Benutzer angegebenen Usernamen gefüllt.
- 'PHP_AUTH_PW'
-
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit
dem vom Benutzer angegebenen Passwort gefüllt.
- 'AUTH_TYPE'
-
Wenn die HTTP Authentication verwendet wird, wird diese Variable mit
dem verwendeten HTTP-Authentifizierungsmechanismus gefüllt.
- 'PATH_INFO'
-
Enthält, sofern vorhanden, den Teil des Pfadnamens hinter dem Namen des
PHP-Skripts, aber vor dem Query-String. Wenn zum Beispiel das aktuelle
Skript mittels dem URI
http://www.example.com/php/path_info.php/some/stuff?foo=bar
aufgerufen wird, würde $_SERVER['PATH_INFO']
/some/stuff
enthalten.
- 'ORIG_PATH_INFO'
-
Originalversion von 'PATH_INFO' vor der Verarbeitung
durch PHP.
Beispiele
Beispiel #1 $_SERVER-Beispiel
<?php
echo $_SERVER['SERVER_NAME'];
?>
Das oben gezeigte Beispiel erzeugt
eine ähnliche Ausgabe wie:
Anmerkungen
Hinweis:
Dies ist eine 'Superglobale'
oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb
des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht
nötig, sie mit global $variable bekannt zu
machen, um aus Funktionen oder Methoden darauf zuzugreifen.