Zum Inhalt springen

$_SERVER

PHP-Superglobals und die $_SERVER-Variable verstehen

PHP ist eine beliebte serverseitige Skriptsprache, die in der Webentwicklung eingesetzt wird. Eine ihrer einzigartigen Funktionen ist die Verwendung von Superglobals, speziellen Variablen, die unabhängig vom Gültigkeitsbereich immer zugänglich sind. In diesem Artikel werfen wir einen genaueren Blick auf eine dieser Superglobals, die $_SERVER-Variable, und untersuchen ihre Eigenschaften und Anwendungsmöglichkeiten.

Was ist die $_SERVER-Variable?

Die $_SERVER-Variable ist ein Array, das Informationen über den Server und die Umgebung enthält, in der das aktuelle Skript ausgeführt wird. Dazu gehören Informationen wie Header, Pfade und Skriptstandorte sowie Systemumgebungsvariablen. Nachfolgend finden Sie einige der häufig verwendeten Eigenschaften der $_SERVER-Variable:

  • `$_SERVER['HTTP_HOST']`: gibt den Hostnamen und die Portnummer des Servers zurück.
  • `$_SERVER['REQUEST_URI']`: gibt die angeforderte URL zurück.
  • `$_SERVER['QUERY_STRING']`: gibt den Query-String-Teil der URL zurück.
  • `$_SERVER['HTTP_REFERER']`: gibt die URL der Seite zurück, die das aktuelle Skript aufgerufen hat.
  • `$_SERVER['REQUEST_METHOD']`: gibt die Anfragemethode (GET, POST usw.) zurück.
  • `$_SERVER['REMOTE_ADDR']`: gibt die IP-Adresse des Benutzers zurück.
  • `$_SERVER['SCRIPT_FILENAME']`: gibt den absoluten Pfad zum aktuell ausgeführten Skript zurück.

Verwendung von $_SERVER für URL-Weiterleitungen

Eine häufige Verwendung der $_SERVER-Variable ist die URL-Weiterleitung. Mit dem folgenden Code können Sie den Benutzer beispielsweise auf eine andere Seite weiterleiten:

PHP-Weiterleitung mit der header-Funktion

php
<?php
header('Location: https://www.example.com/');
exit;
?>

In diesem Beispiel wird die Funktion header verwendet, um einen rohen HTTP-Header an den Browser zu senden, der ihm mitteilt, zur angegebenen URL weiterzuleiten. Die Anweisung exit wird anschließend verwendet, um die Ausführung des Skripts zu stoppen, wodurch verhindert wird, dass weitere Ausgaben an den Browser gesendet werden.

Verwendung von $_SERVER zur Fehlerbehandlung

Ein weiterer Verwendungszweck der $_SERVER-Variable ist die Fehlerbehandlung. Mit dem folgenden Code können Sie beispielsweise eine benutzerdefinierte Fehlerseite für 404-Fehler anzeigen:

PHP 404-Fehlerbehandlung mit $_SERVER

php
<?php
// Log the error URI using $_SERVER
error_log('404 Error: ' . $_SERVER['REQUEST_URI']);
http_response_code(404);
include '404.html';
?>

In diesem Beispiel wird $_SERVER['REQUEST_URI'] verwendet, um den angeforderten Pfad zu Protokollierungszwecken zu erfassen. Anstatt weiterzuleiten, setzt das Skript den korrekten HTTP-Statuscode und bindet eine benutzerdefinierte Vorlage ein, was der Standardprozess zur Fehlerbehandlung ist.

Fazit

Zusammenfassend lässt sich sagen, dass die $_SERVER-Variable ein leistungsstarkes Werkzeug für Webentwickler ist, das den Zugriff auf wichtige Informationen über den Server und die Umgebung ermöglicht, in der ihre Skripte ausgeführt werden. Egal, ob Sie sie für URL-Weiterleitungen, die Fehlerbehandlung oder andere Zwecke nutzen – das Verständnis und die Nutzung der Eigenschaften der $_SERVER-Variable kann die Funktionalität und Zuverlässigkeit Ihrer PHP-Skripte erheblich verbessern.

Hinweis: In modernem PHP ist das schließende ?>-Tag optional und wird oft weggelassen, um versehentliche Leerzeichen-Ausgaben zu verhindern.

Practice

Welche Informationen kann die PHP-Superglobal-Variable $_SERVER bereitstellen?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.