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.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:57:15