Manual do PHP
Anterior |  | Próxima

# 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.

Anterior | Principal | Próxima
headers_list | Acima | setcookie