⊗ppPmHpRHP 400 of 447 menu

Problem med HTTP-svarhuvuden i PHP

Enligt HTTP-reglerna skickas först HTTP-huvuden ut och sedan brödtexten i HTTP-svaret. På grund av detta har arbete med funktionen header i PHP sina särdrag.

Saken är den att om det finns någon utskrift till skärmen innan detta funktionsanrop, kommer den att tolkas som början på svarsbrödtexten. I detta fall kommer anropet till funktionen header att leda till en PHP-varning med texten headers already sent. Ändå kan huvuden skickas. Det kanske inte ens visas något fel (beror på PHP-inställningarna). Men oftast händer detta bara på den lokala datorn, och när webbplatsen läggs ut på internet kommer allt att gå sönder.

Med utskrift till skärmen menas vilken text som helst. Till exempel så här:

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

Eller en tom rad:

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

Eller ett mellanslag:

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

Eller en tagg:

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

Eller utskrift via echo:

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

Eller utskrift via var_dump:

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

Även PHP-varningar kommer att vara utskrifter till skärmen. I följande exempel görs avsiktligt en åtkomst till en obefintlig variabel, vilket kommer att leda till utskrift av en varning:

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

Radbrytningar i PHP-områden genererar också utskrift till skärmen:

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

Skapa avsiktligt en utskrift till skärmen före funktionen header. Studera texten i felet som uppstår.

Åtgärda felet som gjorts i den här koden:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> text <body> <html>
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa