⊗ppPmHpRHP 400 of 447 menu

Problema com cabeçalhos de resposta HTTP em PHP

De acordo com as regras do HTTP, primeiro são enviados os cabeçalhos HTTP e depois o corpo da resposta HTTP. Por isso, trabalhar com a função header no PHP tem suas particularidades.

O problema é que se houver qualquer saída para a tela antes da chamada desta função, ela será interpretada como o início do corpo da resposta. Nesse caso, a chamada da função header levará a um aviso do PHP com o texto headers already sent (cabeçalhos já enviados). Mesmo assim, os cabeçalhos podem até ser enviados. Pode ser que o erro nem seja exibido (dependendo das configurações do PHP). Mas, na maioria das vezes, isso só acontecerá no ambiente local, e quando o site for publicado na internet, tudo quebrará.

Por saída para a tela entende-se qualquer texto. Por exemplo, assim:

texto <?php header('Content-Type: text/html'); ?>

Ou uma linha vazia:

<?php header('Content-Type: text/html'); ?>

Ou um espaço:

<?php header('Content-Type: text/html'); ?>

Ou uma tag:

<div> <?php header('Content-Type: text/html'); ?> </div>

Ou saída via echo:

<?php echo 'abc'; header('Content-Type: text/html'); ?>

Ou saída via var_dump:

<?php $str = 'abc'; var_dump($str); header('Content-Type: text/html'); ?>

Até mesmo avisos do PHP serão saídas para a tela. No exemplo a seguir, há intencionalmente um acesso a uma variável inexistente, o que levará à saída de um aviso:

<?php $text += 1; header('Content-Type: text/html'); ?>

A quebra das tags PHP também gera saída para a tela:

<?php echo 'abc'; ?> <?php header('Content-Type: text/html'); ?>

Crie intencionalmente uma saída para a tela antes da função header. Estude o texto do erro que surge.

Corrija o erro cometido neste código:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> texto <body> <html>
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar