3
respostas

Cannot modify header information

Quando redireciono com o

header(Location: outra-pagina.php);

O navegador retorna o alerta:

Warning: Cannot modify header information - headers already sent by (output started at /cabecalho.php:43) in /pagina-atual.php on line 12

Andei pesquisando no Google e muitos sites tem a informação de que se existe código HTML antes do redirecionamento, o header é enviado nesse código HTML e posteriormente não consigo mais redirecionar.

Como é o caso do cabecalho.php, que já contém código HTML.

Como posso me livrar desse alerta???

3 respostas

É isso mesmo Victor. Você não pode modificar um cabeçalho HTTP visto que a resposta já está sendo enviada para o cliente.

A forma mais simples e certa, é fazer esse redirect antes de incluir qualquer outro arquivo, ou seja, no começo do arquivo. Isso já te dá uma ideia de como fazer ou você quer um exemplo de código?

Caso queira o exemplo, tem como você disponibilizar o código da sua página pra gente fazer com base no seu projeto?

Victor, tive o mesmo problema que você. Também pesquisei no Manual do PHP e vi que não é possível executar a função 'header' após comandos de saída como o HTML.

Neste caso, eu só retirei o comando...

include("cabecalho.php");

...que estava no início do código, como sugerido pelo professor. Como esta página apenas executa o PHP e não exibe nada, não há necessidade de ter um cabeçalho.

Isso mesmo que o Breno disse Victor. Testa pra gente?