headers_sent
(PHP 3>= 3.0.8, PHP 4 , PHP 5)
headers_sent -- Prüft, ob oder wo die Header bereits gesendet wurden
Beschreibung
bool
headers_sent ( [string &file [, int &line]])
headers_sent() gibt TRUE zurück, wenn die HTTP-Header
bereits gesendet wurden, ansonsten wird FALSE zurückgegeben. Sind die
optionalen Parameter file und line
angegeben, werden der Dateiname und die Zeilennummer von wo die Ausgabe
begann, in den Variablen file und
line gespeichert.
Sobald der Header-Block gesendet wurde, können Sie keine weiteren
Header-Zeilen mit der Funktion header() hinzufügen.
Mittels dieser Funktion können Sie aber zumindest Fehlermeldungen
bezüglich der HTTP Header vermeiden. Eine andere Möglichkeit ist die
Verwendung von Output Buffering.
Neue Parameter:
Die optionalen Parameter file und
line wurden in PHP 4.3.0 eingeführt.
Beispiel 1. Beispiele für headers_sent()
<?php
// Wenn keine Header gesendet wurden, sende einen if (!headers_sent()) { header ('Location: http://www.example.com/'); exit; } // Ein Beispiel für den Einsatz der seit PHP 4.3.0 verfügbaren optionalen // Parameter file und line. Beachten Sie, dass $filename und $linenum für // einen späteren Einsatz übergeben werden. // Weisen Sie ihnen davor keine Werte zu. if (!headers_sent($filename, $linenum)) { header ('Location: http://www.example.com/'); exit;
// Wahrscheinlich wollen Sie hier eine Fehlermeldung auslösen } else {
print "Headers already sent in $filename on line $linenum\n" . "Cannot redirect, for now please click this <a " . "href=\"http://www.example.com\">link</a> instead\n"; exit; }
?>
|
|
Siehe auch ob_start(), trigger_error()
und header() für detailliertere Informationen zu diesem
Thema.