⊗ppPmHpRHP 400 of 447 menu

Problēma ar HTTP atbildes galvenēm PHP

Saskaņā ar HTTP noteikumiem vispirms tiek nosūtītas HTTP galvenes un tad HTTP atbildes saturs. Šī iemesla dēļ darbam ar funkciju header PHP ir savas īpatnības.

Lieta tāda, ka, ja pirms šīs funkcijas izsaukšanas būs kāda izvade uz ekrānu, tā tiks interpretēta kā atbildes satura sākums. Šajā gadījumā funkcijas header izsaukšana novedīs pie PHP brīdinājuma ar tekstu headers already sent. Tomēr, iespējams, ka galvenes pat tiks nosūtītas. Iespējams, ka pat kļūda netiks parādīta (atkarīgs no PHP iestatījumiem). Bet visbiežāk tas notiks tikai lokālajā vidē, bet, izvietojot vietni internetā, vis sabojāsies.

Ar izvadi uz ekrānu saprot jebkuru tekstu. Piemēram, šādi:

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

Vai tukša rinda:

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

Vai atstarpe:

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

Vai tags:

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

Vai izvade ar echo:

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

Vai izvade ar var_dump:

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

Pat PHP brīdinājumi būs izvade uz ekrānu. Nākamajā piemērā tīši tiek piekļūts neesošam mainīgajam, kas novedīs pie brīdinājuma izvades:

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

PHP iekavu pārtraukumi arī rada izvadi uz ekrānu:

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

Tīši izveidojiet izvadi uz ekrānu pirms funkcijas header. Izpētiet radušās kļūdas tekstu.

Izlabojiet kļūdu, kas pieļauta šajā kodā:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> teksts <body> <html>
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt