⊗ppPmHpRHP 400 of 447 menu

Problema cu antetele HTTP de răspuns în PHP

Conform regulilor HTTP, mai întâi se trimit antetele HTTP, iar apoi corpul răspunsului HTTP. Din această cauză, lucrul cu funcția header în PHP are particularități specifice.

Problema este că, dacă înainte de apelarea acestei funcții există vreo ieșire pe ecran, aceasta va fi interpretată ca începutul corpului răspunsului. În acest caz, apelul funcției header va duce la o avertizare PHP cu textul headers already sent. În acest caz, antetele s-ar putea totuși să fie trimise. Se poate chiar ca eroarea să nu fie afișată (depinde de setările PHP). Dar cel mai adesea acest lucru se va întâmpla doar pe mediul local, iar la publicarea site-ului pe internet totul se va strica.

Prin ieșire pe ecran se înțelege orice text. De exemplu, așa:

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

Sau un rând gol:

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

Sau un spațiu:

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

Sau un tag:

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

Sau ieșire prin echo:

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

Sau ieșire prin var_dump:

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

Chiar și avertismentele PHP vor fi ieșiri pe ecran. În următorul exemplu se accesează intenționat o variabilă inexistentă, ceea ce va duce la afișarea unui avertisment:

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

Închiderile și deschiderile tag-urilor PHP generează de asemenea ieșire pe ecran:

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

Creați intenționat o ieșire pe ecran înaintea funcției header. Studiați textul erorii care apare.

Corectați eroarea făcută în acest cod:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> text <body> <html>
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge