PHP Handbuch
Zurück |  | Nach vorne

# header

(PHP 3 <= 3.0.18, PHP 4 >= 4.0.0)

header -- Sendet einen HTTP-Header

## Beschreibung:

``int header` (string string)`

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.php.net");  /* Umleitung des Browsers
                                                 zur PHP-Web-Seite. */
    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:

    header ("HTTP/1.0 404 Not Found");

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