Die „Header“-Funktion in PHP ist ein vielseitiges Werkzeug, das zur Manipulation der HTTP-Header verwendet wird, die an den Browser gesendet werden. HTTP-Header sind integrale Bestandteile der HTTP-Protokolle, die zwischen einem Webserver und einem Webbrowser ausgetauscht werden, und sie steuern wichtige Aspekte der HTTP-Transaktionen, wie etwa die Art des Inhalts, den Status der Antwort, Cookies und Weiterleitungen.
Die Grundsyntax der `header()`-Funktion in PHP sieht wie folgt aus:
```php
header(string $header, bool $replace = true, int $response_code = 0);
```
1. $header: Dies ist der Hauptparameter und enthält den zu sendenden Header.
2. $replace: Dies ist ein optionaler Parameter, der standardmäßig auf `true` gesetzt ist. Er gibt an, ob ein vorheriger ähnlicher Header ersetzt werden soll.
3. $response_code: Dies ist ein weiterer optionaler Parameter, mit dem ein HTTP-Statuscode gesendet wird.
Eine häufige Verwendung von `header()` ist das Weiterleiten von Benutzern von einer Seite zu einer anderen:
```php
header(‘Location: http://www.example.com/’);
exit();
```
In diesem Beispiel wird der Benutzer durch den `Location`-Header auf eine andere URL weitergeleitet. Die `exit()`-Funktion wird verwendet, um sicherzustellen, dass das Skript nach dem Senden des Headers beendet wird.
Ein weiteres Beispiel ist das Festlegen des `Content-Type`-Headers, der dem Browser mitteilt, wie der Inhalt der Antwort zu interpretieren ist:
```php
header(‘Content-Type: application/json’);
echo json_encode(array(“message” => “Hello, world!”));
```
Hier teilt `header(‘Content-Type: application/json’)` dem Browser mit, dass der Inhalt der Antwort JSON-Daten ist.
Manchmal ist es notwendig, spezifische HTTP-Statuscodes zu senden:
```php
header(‘HTTP/1.1 404 Not Found’);
echo “Seite nicht gefunden.”;
```
In diesem Fall wird ein 404-Fehlercode gesendet, der dem Browser mitteilt, dass die angeforderte Ressource nicht gefunden werden konnte.
- Vor Ausgabe verwenden: Die `header()`-Funktion muss verwendet werden, bevor irgendeine Ausgabe an den Browser erfolgt. Andernfalls tritt ein „Headers already sent“-Fehler auf. Dies bedeutet, dass jede Art von Ausgabe, auch Leerzeichen oder Zeilenumbrüche, die vor der `header()`-Funktion stattfinden, diesen Fehler auslösen können.
- Sicherheit: Das unsachgemäße Verwenden von HTTP-Headern kann Sicherheitsrisiken mit sich bringen. Beispielsweise könnte eine ungesicherte Weiterleitung zu `Location`-Header-Übernahme führen, wenn die Ziel-URL nicht sorgfältig überprüft wird.
Die Informationen und Beispiele in dieser Antwort stammen aus zuverlässigen und anerkannten PHP-Dokumentationen und Webentwicklungsquellen:
- [PHP Official Documentation – Header](https://www.php.net/manual/en/function.header.php)
- [Mozilla Developer Network (MDN) – HTTP Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)
- [W3Schools – PHP Header](https://www.w3schools.com/php/func_http_header.asp)
Durch diese Beispiele und Erklärungen wird deutlich, wie vielseitig und mächtig die `header()`-Funktion in PHP ist und wie sie korrekt eingesetzt werden kann, um verschiedene HTTP-Header zu setzen und zu manipulieren.