Superglobale Variablen in PHP sind spezielle Variablen, die in jedem Bereich eines PHP-Skripts ohne vorherige Definition oder Übergabe verfügbar sind. Sie bieten eine einfache Möglichkeit, auf weitverbreitete Daten wie Formulareingaben, Session- und Cookie-Daten sowie Serverinformationen zuzugreifen. Superglobale Variablen sind in PHP seit Version 4.1.0 implementiert und haben sich als Standardwerkzeug etabliert.
Einige der am häufigsten verwendeten superglobalen Variablen sind:
1. $_GET: Diese Variable enthält Daten, die über die URL-Parameter in einem HTTP-GET-Request gesendet wurden. Zum Beispiel, wenn die URL lautet `http://example.com/index.php?name=John`, dann enthält `$_GET[‘name’]` den Wert “John”.
```php // Beispiel für $_GET echo ‘Hallo ‘ . htmlspecialchars($_GET[“name”]) . ‘!’; ```2. $_POST: Diese Variable wird für Daten verwendet, die über ein HTML-Formular mittels HTTP-POST versendet werden. Sie ist besonders nützlich für Daten, die nicht in der URL erscheinen sollen, wie zum Beispiel Passwörter.
```php // Beispiel für $_POST if ($_SERVER[“REQUEST_METHOD”] == “POST”) { $name = htmlspecialchars($_POST[‘name’]); echo ‘Hallo ‘ . $name; } ```3. $_REQUEST: Diese Variable kombiniert die Inhalte der Arrays $_GET, $_POST und $_COOKIE. Sie ist eine Art “All-in-One” superglobale Variable, obwohl ihre Verwendung aus Sicherheitsgründen oft nicht empfohlen wird.
```php // Beispiel für $_REQUEST $name = htmlspecialchars($_REQUEST[‘name’]); echo ‘Hallo ‘ . $name; ```4. $_SESSION: Diese Variable wird verwendet, um Sitzungsdaten über verschiedene Seitenaufrufe hinweg zu speichern. Sessions sind hilfreich, um Nutzerdaten während ihrer Interaktion mit einer Website zu speichern.
```php // Beispiel für $_SESSION session_start(); $_SESSION[“user”] = “Max”; echo ‘User ist ‘ . $_SESSION[“user”]; ```5. $_COOKIE: Cookies sind kleine Datenpakete, die auf dem Client-Rechner gespeichert und zwischen mehreren Besuchen auf einer Webseite verwendet werden können.
```php // Beispiel für $_COOKIE echo ‘Willkommen zurück, ‘ . htmlspecialchars($_COOKIE[“username”]) . ‘!’; ```6. $_FILES: Diese Variable bezieht sich auf hochgeladene Dateien und wird durch multipart/form-data POSTs verwendet.
```php // Beispiel für $_FILES if ($_FILES[‘file’][‘error’] == UPLOAD_ERR_OK) { $tmp_name = $_FILES[‘file’][‘tmp_name’]; $name = basename($_FILES[‘file’][‘name’]); move_uploaded_file($tmp_name, “uploads/$name”); echo “Datei hochgeladen: $name”; } ```7. $_ENV: Diese Variable enthält Umgebungsvariablen, die in der Operationumgebung des Servers verfügbar sind.
```php // Beispiel für $_ENV echo ‘Mein Computername ist ‘ . getenv(‘COMPUTERNAME’); ```8. $_SERVER: Diese Variable enthält Informationen über Server- und Ausführungsumgebung wie Header, Pfade und Skriptorte.
```php // Beispiel für $_SERVER echo ‘Dieser Skriptname ist ‘ . $_SERVER[‘PHP_SELF’]; ```Die Verwendung dieser superglobalen Variablen bietet viele Vorteile, aber es erfordert auch, dass man auf Sicherheitsaspekte achtet, wie die Verhinderung von SQL-Injection und Cross-Site Scripting (XSS) durch entsprechendes Validieren und Escapen von Nutzereingaben.
Quellen:
- [PHP Official Documentation](https://www.php.net/manual/en/language.variables.superglobals.php)
- [W3Schools PHP Superglobals](https://www.w3schools.com/php/php_superglobals.asp)