(PHP 4 >= 4.1.0, PHP 5, PHP 7)
$_SERVER -- $HTTP_SERVER_VARS [entfernt] — Informationen über Server und Ausführungsumgebung
$_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. Es gibt keine Garantie dafür, dass jeder Webserver alle möglichen Einträge unterstützt - Server können einige weglassen oder andere Einträge unterstützen, die hier nicht aufgeführt sind. Das meint, die meisten der Variablen werden in der» CGI 1.1-Spezifikation ausgewiesen, daher sollten Sie diese als von Ihrem Webserver unterstützt erwarten können.
Vor PHP 5.4.0 enthielt $HTTP_SERVER_VARS anfangs die selben Informationen, war aber kein Superglobal. (Beachten Sie, dass $HTTP_SERVER_VARS und $_SERVER unterschiedliche Variablen waren und von PHP daher entsprechend behandelt wurden.)
Es kann sein, dass Sie die folgenden Elemente in $_SERVER vorfinden. Beachten Sie, dass einige davon, sofern vorhanden, nur verfügbar sind oder einen sinnvollen Wert haben, wenn PHP auf der Kommandozeile läuft.
CGI/1.1
'.
Hinweis: Unter Apache 2 muss
UseCanonicalName = On
undServerName
gesetzt werden. Ansonsten reflektiert dieser Wert den Hostnamen, der vom Client gesendet wurde, und der vorgetäuscht werden kann. Es ist nicht sicher, sich in sicherheitsrelevanten Kontexten auf diesen Wert zu verlassen.
HTTP/1.0
'.
GET
', 'HEAD
',
'POST
' oder '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).
Accept:
-Headers des aktuellen
Requests, sofern ein solcher gesendet wurde.
Accept-Charset:
-Headers des
aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel:
'iso-8859-1,*,utf-8
'.
Accept-Encoding:
-Headers des
aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel:
'gzip
'.
Accept-Language:
-Headers des
aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel:
'en
'.
Connection:
-Headers des
aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel:
'Keep-Alive
'.
Host:
-Headers des
aktuellen Requests, sofern ein solcher gesendet wurde.
User-Agent:
-Headers des
aktuellen Requests, sofern ein solcher gesendet wurde. Dies ist eine
Zeichenkette, die das für den Zugriff auf die Seite verwendete Programm
anzeigt. Ein typisches Beispiel ist Mozilla/4.5 [en]
(X11; U; Linux 2.2.9 i586). Sie können diesen Wert unter
anderem mittels der Funktion get_browser() dafür
nutzen, den Inhalt Ihrer Seite auf die Möglichkeiten des jeweiligen
Browsers zuzuschneiden.
Hinweis: Beachten Sie bei der Verwendung von ISAPI unter IIS, dass der Wert auf
off
gesetzt wird, wenn der Request nicht mittels HTTPS erfolgte.
Hinweis: Ihr Webserver muss darauf konfiguriert sein, diese Variable zu erzeugen. Im Apache benötigen Sie dazu zum Beispiel die Direktive
HostnameLookups On
innerhalb der httpd.conf. Lesen Sie dazu auch die Beschreibung der Funktion gethostbyaddr().
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.
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 Sie
UseCanonicalName = On
sowieUseCanonicalPhysicalPort = On
setzen, um den physikalischen (wirklichen) Port zu erhalten; andernfalls kann dieser Wert gefälscht werden, und gibt dann den physikalischen Port Wert zurück, oder nicht. Es ist nicht sicher, sich auf diesen Wert in sicherheitsabhängigen Umfeldern zu verlassen.
Hinweis: Seit PHP 4.3.2 wird PATH_TRANSLATED nicht länger implizit unter der Apache 2 SAPI gesetzt, im Gegensatz zur Situation unter Apache 1, bei dem diese Variable automatisch auf den Wert von SCRIPT_FILENAME gesetzt wird, sofern Apache nicht selbst einen Wert einfügt. Diese Änderung entspricht dem in der CGI-Spezifikation beschriebenen Verhalten, nach dem PATH_TRANSLATED nur dann gesetzt sein sollte, wenn PAT_INFO definiert ist. Apache 2-Benutzer können die Direktive
AcceptPathInfo = On
in der httpd.conf verwenden, um einen Wert für PATH_INFO zu definieren.
/index.html
'.
/some/stuff
enthalten.
Version | Beschreibung |
---|---|
5.4.0 | $HTTP_SERVER_VARS ist nicht mehr verfügbar, da die Registrierung von langen Arrays entfernt wurde. |
5.3.0 | Die Direktive register_long_arrays, die $HTTP_SERVER_VARS verfügbar gemacht hat, wurde missbilligt. |
Beispiel #1 $_SERVER-Beispiel
<?php
echo $_SERVER['SERVER_NAME'];
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
www.example.com
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.