⊗ppPmHpRHP 400 of 447 menu

Problém s hlavičkami HTTP odpovede v PHP

Podľa pravidiel HTTP sa najprv odosielajú HTTP hlavičky a potom telo HTTP odpovede. Kvôli tomu má práca s funkciou header v PHP svoje špecifiká.

Problém je v tom, že ak pred volaním tejto funkcie bude nejaký výstup na obrazovku, bude interpretovaný ako začiatok tela odpovede. V tomto prípade volanie funkcie header povedie k varovaniu PHP s textom headers already sent. V takom prípade sa hlavičky možno ani neodošlú. Možno ani chyba sa nezobrazí (závisí od nastavení PHP). Ale najčastejšie to bude len na lokálnom serveri, a pri nasadení stránky na internet sa všetko pokazí.

Pod výstupom na obrazovku sa rozumie akýkoľvek text. Napríklad takto:

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

Alebo prázdny riadok:

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

Alebo medzera:

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

Alebo tag:

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

Alebo výstup pomocou echo:

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

Alebo výstup pomocou var_dump:

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

Aj varovania PHP budú výstupmi na obrazovku. V nasledujúcom príklade sa zámerne pristupuje k neexistujúcej premennej, čo povedie k výstupu varovania:

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

Uzatvorenie PHP zátvoriek tiež spôsobuje výstup na obrazovku:

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

Zámerne vytvorte výstup na obrazovku pred funkciou header. Študujte text vzniknutej chyby.

Opravte chybu, ktorá bola urobená v tomto kóde:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> text <body> <html>
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť