headers_sent
(PHP 3>= 3.0.8, PHP 4 , PHP 5)
headers_sent -- Confere se os cabeçalhos foram enviados ou não
Descrição
bool
headers_sent ( [string &file [, int &line]] )
headers_sent() irá retornar FALSE se nenhum cabeçalho HTTP
já foi enviado, ou TRUE se já foi. Se os parâmetros opcionais
file e line estiverem definidos,
headers_sent() irá colocar o nome do arquivo e a linha aonde
a saída começou nas variáveis file
e line.
Você não pode adicionar nenhuma linha de cabeçalho a mais
usando a função header() depois que os cabeçalhos já foram enviados.
Usando esta função você pode previnir que aconteçam erros referentes
aos cabeçalhos HTTP. Outra opção é usar Output Buffering.
Nota:
Os parâmetros opcionais file e line
foram adicionados no PHP 4.3.0.
Exemplo 1. Exemplos usando headers_sent()
<?php
// Se não foi enviado nenhum cabeçalho, envia um if (!headers_sent()) { header('Location: http://www.example.com/'); exit; }
// Um exemplo usando os parâmetros line e file, a partir do PHP 4.3.0 // Note que $filename e $linenum são passados para uso posterior. // Não defina um valor para elas anteriormente. if (!headers_sent($filename, $linenum)) { header('Location: http://www.example.com/'); exit;
// Você pode querer avisar do erro aqui. } else {
echo "Os cabeçalhos já foram enviados em $filename na linha $linenum\n" . "Não posso redirecionar, por favor clique neste <a " . "href=\"http://www.example.com\">link</a>\n"; exit; }
?>
|
|
Veja também ob_start(), trigger_error(),
e header() para uma discussão mais detalhada
dos assuntos envolvidos.