Ao usar header(), no PHP, juntamente com session_start() ou outra função o erro “Cannot modify header information – headers already sent” poderá acontecer.
Geralmente, header() é usada para direcionar o usuário para outra página. Vamos descrever mais um pouco sobre a funcionalidade dessa função:
A função header() em PHP é usada para enviar cabeçalhos HTTP brutos. Isso é útil quando você precisa enviar um cabeçalho antes que qualquer saída real seja enviada, por exemplo, redirecionar para outra página, definir cookies ou especificar o tipo de conteúdo.
Porém, é importante ter cuidado ao usar essa função, pois qualquer saída antes do uso da função header() pode causar erros. E esse é realmente o motivo o erro mostrado nesse post.
Na internet, encontrei um monte de explicação e check list para tentar solucionar o problema o direcionamento da página. Não irei encher esse post com os porquês esse erro pode estar acontecendo. Irei colocar uma solução alternativa e rápida, que é o uso de javascript:
<script> window.location.href = "https://www.exemplo.com/pagina.php"; </script>
Em PHP, podemos colocar essas linhas dentro de um echo:
echo "<script> window.location.href = 'https://www.exemplo.com/pagina.php';</script>"
Dica: clique aqui e veja outros posts sobre PHP.
O código JavaScript acima redireciona o usuário para uma nova página da mesma forma como a função header() do PHP.
window.location.href = "https://www.exemplo.com/pagina.php";
é a instrução principal que realiza o redirecionamento. Essa parte define a propriedade href
do objeto window.location
para o URL especificado (“https://www.exemplo.com/pagina.php“). A propriedade href
determina o endereço da página atualmente carregada no navegador. Ao alterar sua propriedade href
, você instrui o navegador a carregar a nova página.