⊗ppPmHpRHP 400 of 447 menu

Problème avec les en-têtes de réponse HTTP en PHP

Selon les règles HTTP, les en-têtes HTTP sont d'abord envoyés, puis le corps de la réponse HTTP. Pour cette raison, l'utilisation de la fonction header en PHP a ses particularités.

Le fait est que si une sortie est effectuée à l'écran avant l'appel de cette fonction, elle sera interprétée comme le début du corps de la réponse. Dans ce cas, l'appel de la fonction header entraînera un avertissement PHP avec le texte headers already sent. Dans ce cas, les en-têtes pourraient même être envoyés. L'erreur pourrait même ne pas s'afficher (cela dépend des paramètres PHP). Mais le plus souvent, cela ne se produira que en local, et lors du déploiement du site sur Internet, tout va casser.

Par sortie à l'écran, on entend n'importe quel texte. Par exemple, comme ceci :

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

Ou une ligne vide :

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

Ou un espace :

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

Ou une balise :

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

Ou une sortie via echo :

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

Ou une sortie via var_dump :

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

Même les avertissements PHP constituent des sorties à l'écran. Dans l'exemple suivant, on accède intentionnellement à une variable inexistante, ce qui entraînera l'affichage d'un avertissement :

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

Les fermetures de balises PHP génèrent également une sortie à l'écran :

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

Créez intentionnellement une sortie à l'écran avant la fonction header. Étudiez le texte de l'erreur qui se produit.

Corrigez l'erreur commise dans ce code :

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> text <body> <html>
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser