PHP

Como resolver: “Cannot modify header information – headers already sent”

14 de maio de 2020

Como resolver: “Cannot modify header information – headers already sent”

Neste artigo veremos como resolver: “Cannot modify header information – headers already sent” que é um erro bastante reincidente em projetos PHP.

como resolver headers already sent php capa

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

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x