headers_sent

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

headers_sent -- Geeft aan of en waar de headers verzonden zijn

Beschrijving

boolean headers_sent ( [string &file [, int &line]])

headers_sent() zal FALSE teruggeven als er nog geen HTTP headers zijn verzonden, of anders TRUE. Als de optionele file en line parameters worden meegegeven, zal headers_sent() de PHP source file name en het regelnummer waar de output werd begonnen in de file en line variabelen gestopt.

Je kunt geen headers meer toevoegen met de header() functie wanneer de headers al verzonden zijn. Met deze functie kun je op zijn minst voorkomen dat er fouten ontstaan die te maken hebben met HTTP headers. Een andere mogelijkheid is het gebruiken van Output Buffering.

Nieuwe parameters: The optionele file en line parameters zijn toegevoegd in PHP 4.3.0.

Voorbeeld 1. Voorbeelden met headers_sent()

<?php

// Als er nog geen headers verzonden zijn, stuur er een
if (!headers_sent()) {
    
header ('Location: http://www.example.com/');
    exit;
}

// Een voorbeeld met de optionele file en line parameters, vanaf PHP 4.3.0
// Let erop dat $filename en $linenum worden meegegeven voor later gebruik.
// Geef ze van te voren geen waarden.

if (!headers_sent($filename, $linenum)) {
    
header ('Location: http://www.example.com/');
    exit;

// Waarschijnlijk wil je hier een fout laten zien
} else {

    print
"Headers zijn al verzonden in $filename op regel $linenum\n" .
          
"Kan niet doorsturen, klik in plaats daarvan
          <a href=\"http://www.example.com\">deze link</a> aan.\n"
;
    exit;
    
}

?>

Zie ook ob_start(), trigger_error(), en header() voor een gedetaileerdere discusie over deze dingen.