⊗ppPmHpRHP 400 of 447 menu

HTTP válaszfejlécek problémája PHP-ban

A HTTP szabályai szerint először a HTTP fejlécek kerülnek elküldésre, majd csak azután a HTTP válasz törzse. Emiatt a header függvény használata PHP-ban sajátosságokkal jár.

Az a helyzet, hogy ha bármilyen kimenet kerül a képernyőre a függvény meghívása előtt, azt a válasz törzsének kezdeteként értelmezi. Ebben az esetben a header függvény meghívása PHP figyelmeztetést eredményez az headers already sent szöveggel. Ekkor a fejlécek akár el is küldődhetnek. Akár hiba sem jelenhet meg (ez a PHP beállításaitól függ). De legtöbbször ez csak a local környezeten történik, amikor pedig a weboldal felkerül az internetre, minden eltörik.

A képernyőre történő kimenet alatt bármilyen szöveg értendő. Például így:

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

Vagy egy üres sor:

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

Vagy egy szóköz:

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

Vagy egy tag:

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

Vagy kimenet a echo segítségével:

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

Vagy kimenet a var_dump segítségével:

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

Még a PHP figyelmeztetések is képernyőre kimenetnek számítanak. A következő példában szándékosan egy nem létező változóhoz történik hozzáférés, ami figyelmeztetés megjelenését eredményezi:

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

A PHP zárójelek közötti sortörések is képernyőre kimenetet generálnak:

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

Hozzon létre szándékosan kimenetet a képernyőn a header függvény előtt. Tanulmányozza a felmerülő hiba szövegét.

Javítsa a kódban elkövetett hibát:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> text <body> <html>
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás