Neste artigo veremos como resolver: “Cannot modify header information – headers already sent” que é um erro bastante reincidente em projetos PHP.
Fala programador(a), beleza? Bora aprender mais sobre PHP e como resolver o erro de headers already sent!
Este erro acontece pois há algum output sendo feito antes dos headers, o que ocasiona o erro
Ou seja, as funções que enviam ou modificam headers, tem que ser chamada antes de qualquer coisa
Funções que podem modificar o header são:
- header()
- header_remove()
- session_start()
- session_regenerate_id()
- setcookie()
- setrawcookie()
E quando falamos de output ou saída, pode ser qualquer outro tipo de função PHP como um var_dump ou um código de HTML
Como também caracteres ‘invisíveis’ na página, que são adicionados acidentalmente
Veja o que pode ocasionar o erro de headers already sent:
<?php echo 'olá'; header('alguma modificação');
E isso tudo acontece pois o PHP pode passar os headers, e ele precisa passar, apenas uma vez por requisição
E depois de uma quebra de linha, ocasionada por algum dos motivos acima, ele não vai conseguir adicionar mais ao header
Gerando a mensagem de erro, que o header já foi enviado, por que é exatamente o que aconteceu
Então sempre certifique-se de que as funções que modificam o header fiquem em primeiro lugar no código
Conclusão
Neste artigo vimos como resolver: Cannot modify header information – headers already sent”
Precisamos apenas garantir que as funções que alterem ou enviem algo ao header, sejam posicionadas no topo do código
Pois até um código HTML pode interromper o envio dos header, fazendo com que você receba este erro
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube