headers_sent
(PHP 3>= 3.0.8, PHP 4 )
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.