⊗ppPmHpRHP 400 of 447 menu

HTTP vastuse päiste probleem PHP-s

Vastavalt HTTP reeglitele saadetakse kõigepealt HTTP päised ja seejärel HTTP vastuse keha. Seetõttu on funktsiooni header töötamisel PHP-s oma eripärad.

Asi on selles, et kui enne selle funktsiooni väljakutset on ekraanile midagi välja prinditud, siis seda tõlgendatakse vastuse keha algusena. Sel juhul põhjustab funktsiooni header kutsumine PHP hoiatusse tekstitaga headers already sent. Samal ajal võivad päised isegi saata. Võib isegi olla, et viga ei kuvata (sõltub PHP seadistustest). Kuid enamasti juhtub see ainult kohalikus keskkonnas, kui veebisait internetis avaldatakse, kõik läheb katki.

Ekraanile väljundina loetakse suvalist teksti. Näiteks nii:

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

Või tühi rida:

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

Või tühik:

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

Või silt:

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

Või väljund echo kaudu:

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

Või väljund var_dump kaudu:

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

Isegi PHP hoiatusi loetakse ekraanile väljundiks. Järgmises näites viidake tahtlikult olematule muutujale, mis põhjustab hoiatuse kuvamise:

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

PHP sulgude vahele jääv tühi ruum loetakse samuti ekraanile väljundiks:

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

Loo tahtlikult ekraanile väljund enne funktsiooni header. Uuri tekkiva vea teksti.

Paranda selles koodis tehtud viga:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> tekst <body> <html>
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu