PHP Superglobals


Superglobals wurden nach PHP 4.1.0 aktiviert. Sie sind integrierte Variablen im PHP-System und in allen Gültigkeitsbereichen eines Skripts verfügbar.


PHP-Superglobals

PHP verfügt über mehrere vordefinierte Superglobals, was bedeutet, dass sie in allen Gültigkeitsbereichen eines Skripts verfügbar sind. Sie müssen nichts Besonderes deklarieren, um sie in Funktionen und Klassen zu verwenden.

Liste der PHP-Superglobals:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

In diesem Kapitel werden wir einige häufig verwendete Superglobale behandeln. Die übrigen Variablen werden in den folgenden Kapiteln vorgestellt.


PHP $GLOBALS

$GLOBALS ist eine superglobale Variablengruppe in PHP, auf die in allen Geltungsbereichen eines PHP-Skripts zugegriffen werden kann.

$GLOBALS ist ein globales kombiniertes Array, das alle Variablen enthält. Die Namen der Variablen sind die Schlüssel des Arrays.

Das folgende Beispiel zeigt, wie die superglobale Variable $GLOBALS verwendet wird:

Beispiel

<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>

Beispiel ausführen »

Im obigen Beispiel ist z eine superglobale Variable im $GLOBALS-Array, und auf diese Variable kann auch außerhalb der Funktion zugegriffen werden.


PHP $_SERVER

$_SERVER ist ein Array, das Informationen wie Header, Pfade und Skriptspeicherorte enthält. Die Einträge in diesem Array werden vom Webserver erstellt. Es gibt keine Garantie, dass jeder Server alle Einträge bereitstellt; der Server kann einige ignorieren oder einige bereitstellen, die hier nicht aufgeführt sind.

Das folgende Beispiel zeigt, wie die Elemente in $_SERVER verwendet werden:

Beispiel

<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>

Beispiel ausführen »

Die folgende Tabelle listet die wichtigen Elemente in der $_SERVER-Variable auf:

Element/Code Beschreibung
$_SERVER['PHP_SELF'] Der Dateiname des aktuell ausgeführten Skripts, relativ zum Dokumentenstammverzeichnis. Beispielsweise gibt die Verwendung von $_SERVER['PHP_SELF'] in einem Skript unter der Adresse http://example.com/test.php/foo.bar /test.php/foo.bar zurück. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen der aktuellen (z. B. eingebundenen) Datei. Ab PHP 4.3.0 enthält diese Variable den Skriptnamen, wenn PHP im Kommandozeilenmodus ausgeführt wird. In früheren Versionen war diese Variable nicht verfügbar.
$_SERVER['GATEWAY_INTERFACE'] Die vom Server verwendete Version der CGI-Spezifikation; zum Beispiel "CGI/1.1".
$_SERVER['SERVER_ADDR'] Die IP-Adresse des Servers, auf dem sich das aktuell ausgeführte Skript befindet.
$_SERVER['SERVER_NAME'] Der Hostname des Servers, auf dem sich das aktuell ausgeführte Skript befindet. Wenn das Skript in einem virtuellen Host läuft, wird dieser Name durch den von diesem virtuellen Host festgelegten Wert bestimmt. (z. B. www.example.com)
$_SERVER['SERVER_SOFTWARE'] Die Server-Identifikationszeichenkette, die im Header bei der Beantwortung einer Anfrage angegeben wird. (z. B. Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL'] Der Name und die Version des Kommunikationsprotokolls, das beim Anfordern der Seite verwendet wird. Zum Beispiel "HTTP/1.0".
$_SERVER['REQUEST_METHOD'] Die Anfragemethode, die für den Zugriff auf die Seite verwendet wird; zum Beispiel "GET", "HEAD", "POST", "PUT".
$_SERVER['REQUEST_TIME'] Der Zeitstempel zu Beginn der Anfrage. Verfügbar ab PHP 5.1.0. (z. B. 1377687496)
$_SERVER['QUERY_STRING'] Die Abfragezeichenkette, falls vorhanden, über die auf die Seite zugegriffen wurde.
$_SERVER['HTTP_ACCEPT'] Der Inhalt des Accept:-Headers in der aktuellen Anfrage, falls vorhanden.
$_SERVER['HTTP_ACCEPT_CHARSET'] Der Inhalt des Accept-Charset:-Headers in der aktuellen Anfrage, falls vorhanden. Zum Beispiel: "iso-8859-1,*,utf-8".
$_SERVER['HTTP_HOST'] Der Inhalt des Host:-Headers in der aktuellen Anfrage, falls vorhanden.
$_SERVER['HTTP_REFERER'] Die Adresse der vorherigen Seite, die den User-Agent zur aktuellen Seite geführt hat (falls vorhanden). Wird durch die Einstellungen des User-Agents bestimmt. Nicht alle User-Agents setzen diesen Eintrag, und einige bieten sogar die Möglichkeit, HTTP_REFERER zu ändern. Kurz gesagt: Diesem Wert sollte nicht vertraut werden.
$_SERVER['HTTPS'] Wenn das Skript über das HTTPS-Protokoll aufgerufen wird, wird es auf einen nicht leeren Wert gesetzt.
$_SERVER['REMOTE_ADDR'] Die IP-Adresse des Benutzers, der die aktuelle Seite besucht.
$_SERVER['REMOTE_HOST'] Der Hostname des Benutzers, der die aktuelle Seite besucht. Die Reverse-DNS-Auflösung hängt nicht von REMOTE_ADDR des Benutzers ab.
$_SERVER['REMOTE_PORT'] Die Portnummer auf dem Rechner des Benutzers, die für die Verbindung zum Webserver verwendet wird.
$_SERVER['SCRIPT_FILENAME'] Der absolute Pfad des aktuell ausgeführten Skripts.
$_SERVER['SERVER_ADMIN'] Dieser Wert gibt den Parameter SERVER_ADMIN in der Apache-Serverkonfigurationsdatei an. Wenn das Skript auf einem virtuellen Host läuft, ist dieser Wert der Wert dieses virtuellen Hosts. (z. B. [email protected])
$_SERVER['SERVER_PORT'] Der vom Webserver verwendete Port. Der Standardwert ist "80". Wenn eine sichere SSL-Verbindung verwendet wird, ist dieser Wert der vom Benutzer konfigurierte HTTP-Port.
$_SERVER['SERVER_SIGNATURE'] Eine Zeichenfolge, die die Serverversion und den Namen des virtuellen Hosts enthält.
$_SERVER['PATH_TRANSLATED'] Der Basispfad des Dateisystems (nicht das Dokumentenstammverzeichnis), in dem sich das aktuelle Skript befindet. Dies ist das Ergebnis, nachdem der Server virtuelle auf reale Pfade abgebildet hat.
$_SERVER['SCRIPT_NAME'] Der Pfad des aktuellen Skripts. Dies ist sehr nützlich, wenn die Seite auf sich selbst verweisen muss. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen des aktuellen Skripts (z. B. eingebundene Dateien).
$_SERVER['SCRIPT_URI'] Der URI, der verwendet wird, um die aufzurufende Seite anzugeben. Zum Beispiel "/index.html".


PHP $_REQUEST

PHP $_REQUEST wird verwendet, um von HTML-Formularen übermittelte Daten zu sammeln.

Das folgende Beispiel zeigt ein Formular mit einem Eingabefeld und einer Schaltfläche zum Absenden. Wenn der Benutzer die Formulardaten durch Klicken auf die Schaltfläche "Submit" absendet, werden die Formulardaten an die im action-Attribut des <form>-Tags angegebene Skriptdatei gesendet. In diesem Beispiel geben wir die Datei an, die die Formulardaten verarbeitet. Wenn Sie möchten, dass eine andere PHP-Datei die Daten verarbeitet, können Sie den angegebenen Skriptdateinamen ändern. Dann können wir die superglobale Variable $_REQUEST verwenden, um die Daten des Eingabefelds aus dem Formular zu sammeln:

Beispiel

<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>

Beispiel ausführen »


PHP $_POST

PHP $_POST wird häufig verwendet, um Formulardaten zu sammeln, indem das Attribut „method="post"“ im HTML-Formular-Tag angegeben wird.

Das folgende Beispiel zeigt ein Formular mit einem Eingabefeld und einer Absenden-Schaltfläche. Wenn der Benutzer die Formulardaten durch Klicken auf die Schaltfläche „Submit“ absendet, werden die Formulardaten an die im action-Attribut des <form>-Tags angegebene Skriptdatei gesendet. In diesem Beispiel geben wir die Datei an, die die Formulardaten verarbeiten soll. Wenn eine andere PHP-Datei die Daten verarbeiten soll, können Sie den angegebenen Skriptdateinamen ändern. Dann können wir die superglobale Variable $_POST verwenden, um die Daten des Eingabefelds aus dem Formular zu sammeln:

Beispiel

<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>

Beispiel ausführen »


PHP $_GET

PHP $_GET wird ebenfalls häufig verwendet, um Formulardaten zu sammeln, indem das Attribut „method="get"“ im HTML-Formular-Tag angegeben wird.

Mit $_GET können auch Daten gesammelt werden, die in der URL gesendet werden.

Angenommen, wir haben eine HTML-Seite mit einem Hyperlink, der Parameter enthält:

<html>
<body>

<a href="test_get.php.html">Test $GET</a>

</body>
</html>

Wenn der Benutzer auf den Link „Test $GET“ klickt, werden die Parameter „subject“ und „web“ an „test_get.php“ gesendet. Sie können die Variable $_GET in der Datei „test_get.php“ verwenden, um diese Daten abzurufen.

Das folgende Beispiel zeigt den Code der Datei „test_get.php“:

Beispiel

<html> <body> <?php echo "Study " . $_GET['subject'] . " @ " . $_GET['web']; ?> </body> </html>

Beispiel ausführen »

Tipp:Wenn Sie mehr über $_POST und $_GET erfahren möchten, besuchen Sie bitte unserPHP-Formulare-Kapitel.

Andere Erweiterungen