⊗ppPmHpRHP 400 of 447 menu

HTTP atsakymo antraščių problema PHP

Pagal HTTP taisykles pirmiausia siunčiamos HTTP antraštės, o po to HTTP atsakymo korpusas. Dėl to darbas su funkcija header PHP turi savo ypatumų.

Faktas yra tas, kad jei prieš iškvietus šią funkciją bus kokia nors išvestis į ekraną, ji bus traktuojama kaip atsakymo korpuso pradžia. Tokiu atveju šios funkcijos header iškvietimas privers PHP įspėjimą su tekstu headers already sent. Tuomet antraštės gali net būti išsiųstos. Gali net ir klaida neišsijungti (priklauso nuo PHP nustatymų). Tačiau dažniausiai tai bus tik vietiniame serveryje, o įkėlus svetainę į internetą viskas sulūš.

Išvestimi į ekraną suprantamas bet koks tekstas. Pavyzdžiui, taip:

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

Arba tuščia eilutė:

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

Arba tarpas:

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

Arba tagas:

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

Arba išvestis per echo:

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

Arba išvestis per var_dump:

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

Net PHP įspėjimai bus išvestimi į ekraną. Šiame pavyzdyje tyčia kreipiamasi į neegzistuojančią kintamąjį, kas sukels įspėjimo išvedimą:

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

PHP skliaustų pertraukos taip pat sukuria išvestį į ekraną:

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

Sąmoningai sukurkite išvestį į ekraną prieš funkciją header. Išnagrinėkite atsirandančios klaidos tekstą.

Ištaisykite klaidą, padarytą šiame kode:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> tekstas <body> <html>
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti