Forum und email

headers_sent

(PHP 4, PHP 5)

headers_sent — Prüft, ob oder wo die Header bereits gesendet wurden

Beschreibung

bool headers_sent ([ string &$file [, int &$line ]] )

Prüft, ob oder wo die Header bereits gesendet wurden.

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.

Parameter Liste

file

Sind die optionalen Parameter file und line angegeben, schreibt headers_sent() den PHP-Dateinamen und die Zeilennummer, an denen die Ausgabe begann, in die Variablen file und line .

line

Die Zeilennummer, an der die Ausgabe begann.

Rückgabewerte

headers_sent() gibt FALSE zurück, wenn noch keine HTTP-Header gesendet wurden, ansonsten TRUE.

ChangeLog

Version Beschreibung
4.3.0 Die optionalen Parameter file und line wurden eingeführt.

Beispiele

Example#1 Beispiel zur Verwendung von 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 {

    echo 
"Header bereits gesendet in $filename in Zeile $linenum\n" .
         
"Redirect nicht moeglich, klicken Sie daher statt dessen <a " .
         
"href=\"http://www.example.com\">diesen Link</a> an\n";
    exit;
}

?>

Siehe auch