PHP/Die Umgebungsvariablen des Webservers

Aus Mikiwiki
< PHP
Version vom 18. Januar 2009, 19:55 Uhr von Michi (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Daten können nicht nur von der lokalen Festplatte des Webservers gelesen werden. Dieselben Funktionen eignen sich auch für den Zugriff auf entfernte Rechner per FTP und HTTP. Dabei wird von einem "Wrapper" gesprochen - einer Umleitung des Funktionsaufrufs an eine andere Instanz zur Ausführung.

PHP 5 verfügt über ein starkes Socket-Modul, das die direkte Programmierung auf TCP-Ebene erlaubt und so den Zugriff auf andere Rechner bequemer gestaltet. Dieses Modul ersetzt das früher verwendete Curl-Modul, da die Curl-Bibliothek fehlerhaft ist.

Mit den Umgebungsvariablen des Webservers können viele wichtige Daten in Erfahrung gebracht werden, sowohl über den eigenen Webserver wie auch über den Webbrowser, der die aktuelle Verbindung inne hat. Die wichtigsten Umgebungsvariablen des Webservers sind die folgenden.

Umgebungsvariable Beschreibung
SERVER_NAME Der Rechnername, z. B. "www.beispiel.xx".
GATEWAY_INTERFACE Bezeichnung der Schnittstelle (z. B. "CGI/1.1"). Dieser Wert ist nur bei CGI verfügbar, nicht wenn PHP als Apache-Modul läuft.
SERVER_PROTOCOL Das Protokoll des Webservers, meist "HTTP/1.1".
SERVER_PORT Verwendeter Port, im WWW meist 80 (der Standardport für HTTP).
REQUEST_METHOD Die zuletzt verwendete Anforderung des Webbrowsers. Kann "GET", "POST" oder "PUT" sein.
PATH_INFO Vollständiger virtueller Pfad des aufgerufenen Skripts.
PATH_TRANSLATED Physischer Pfad zum Skript, wenn der Webserver diese Information bereitstellt.
SCRIPT_NAME Pfad und Name zum aufgerufenen Skript (z. B. "/cgi-bin/xxx.php").
QUERY_STRING Enthält die "GET"-Daten (z. B. "var=value&session=1234"), wenn die letzte Anforderung "GET"-Daten enthielt.
REMOTE_HOST Der Name des Clients, z. B. "rechner.beispiel.yy".
REMOTE_ADDR Die IP-Adresse des Clients.
AUTH_TYPE Authentifizierungstyp bei gesicherten Sites.
REMOTE_IDENT Identifikator.
CONTENT_TYPE Angabe des Inhaltstyps im MIME-Format (z. B. "text/html").
CONTENT_LENGTH Länge des Inhalts in Byte.
SERVER_SOFTWARE Wie sich der Webserver meldet (z. B. "Apache/1.3.6 (Unix) PHP/3.0.11 ApacheJServ/1.0b4").
HTTP_ACCEPT Enthält die vom Webbrowser akzeptierten MIME-Typen.
HTTP_USER_AGENT Kennung des Webbrowsers (z. B. "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)"). Der Wert kann bei vielen Webbrowsern manipuliert werden und ist daher nur bedingt aussagekräftig.
HTTP_COOKIE Die Cookiedaten, wenn Cookies gesendet werden.
HTTP_REFERER Die letzte Adresse, von welcher der Webbrowser kam. Wurde die Seite direkt aufgerufen, ist dieser Wert leer.

Der Abruf der Umgebungsvariablen des Webservers erfolgt mit dem Superarray "$_SERVER", also z. B. "SERVER_SOFTWARE" mit "$_SERVER['SERVER_SOFTWARE']". Die konkrete Anzahl und Verfügbarkeit der Variablen hängt vom verwendeten Webserver und dessen Konfiguration ab.

<?php
echo "<ul>";
foreach ($_SERVER as $key => $value) 
{
  echo "<li><b>$key</b>: $value</li>";
}
echo "</ul>";
?>
  • HTTP_HOST: localhost
  • HTTP_USER_AGENT: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.0.1) Gecko/2008072820 Firefox/3.0.1
  • HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  • HTTP_ACCEPT_LANGUAGE: de-ch,de-de;q=0.8,de;q=0.6,en-us;q=0.4,en;q=0.2
  • HTTP_ACCEPT_ENCODING: gzip,deflate
  • HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  • HTTP_KEEP_ALIVE: 300
  • HTTP_CONNECTION: keep-alive
  • HTTP_COOKIE: wikidb_session=a3777234e92b8fa934c9fc79ff7b3c3a
  • HTTP_CACHE_CONTROL: max-age=0
  • PATH: /usr/local/bin:/usr/bin:/bin
  • SERVER_SIGNATURE: <address>Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch Server at localhost Port 80</address>
  • SERVER_SOFTWARE: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch
  • SERVER_NAME: localhost
  • SERVER_ADDR: 127.0.0.1
  • SERVER_PORT: 80
  • REMOTE_ADDR: 127.0.0.1
  • DOCUMENT_ROOT: /var/www/
  • SERVER_ADMIN: webmaster@localhost
  • SCRIPT_FILENAME: /var/www/test/test.php
  • REMOTE_PORT: 53070
  • GATEWAY_INTERFACE: CGI/1.1
  • SERVER_PROTOCOL: HTTP/1.1
  • REQUEST_METHOD: GET
  • QUERY_STRING:
  • REQUEST_URI: /test/test.php
  • SCRIPT_NAME: /test/test.php
  • PHP_SELF: /test/test.php
  • REQUEST_TIME: 1221841433
  • argv: Array
  • argc: 0