PHP Handbuch | ||
---|---|---|
Zurück | Nach vorne |
Die header()-Funktion wird zu Beginn einer HTML-Datei benutzt um HTTP-Anfangsinformationen zu senden. Siehe HTTP 1.1 Spezifikationen für weitere Informationen. Hinweis: Beachten sie, dass die header()-Funktion aufgerufen werden muss, bevor irgendeine Ausgabe durch normale HTML-Tags oder PHP erzeugt wird. Es ist ein häufig anzutreffender Fehler, per include() Programm-Code einzubinden (bzw. per auto_prepend) oder Leerzeichen oder -zeilen vor dem Code stehen zu haben, die bereits Ausgaben bewirken (auch wenn diese leer sind) bevor header() aufgerufen wird.
Es gibt zwei Spezialfälle von Header-Aufrufen. Der Erste ist der "Location"-Header. Es wird nicht nur der Header an den Browser geschickt, der Apache erhält auch noch den Status-Code REDIRECT. Aus Sicht des Skript-Schreibers ist das nicht wichtig, aber für alle, die die Internas von Apache verstehen wollen, ist dies von Belang.
header ("Location: http://www.example.com"); // Umleitung des Browsers exit; // Sicher stellen, das nicht trotz Umleitung nachfolgender Code ausgeführt wird. |
Der zweite Spezialfall ist ein Header der mit der Zeichenfolge "HTTP/" beginnt (Groß-/Kleinschreibung ist egal). Falls sie z.B. die Dokument-Fehler-Anweisung 404 des Apache auf ein PHP-Skript zeigen lassen, ist es gut, wenn dieses Skript einen 404-Fehler erzeugt. In diesem Skript sollten sie also zuerst stehen haben:
PHP-Skripte erzeugen oft dynamisches HTML, das weder vom Browser noch von irgendeinem Proxy zwischen Web-Server und Client-Browser gepuffert ("gecached") werden soll bzw. darf. Bei vielen Proxies und Browsern kann das Cachen unterbunden werden und zwar mit:
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum der Vergangenheit header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT"); // immer geändert header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 |
Siehe auch: headers_sent().
Zurück | Zum Anfang | Nach vorne |
HTTP-Funktionen | Nach oben | headers_sent |