⊗ppPmHpRHP 400 of 447 menu

HTTP პასუხის სათაურების პრობლემა PHP-ში

HTTP-ის წესების მიხედვით, ჯერ იგზავნება HTTP სათაურები და შემდეგ HTTP პასუხის სხეული. ამის გამო, ფუნქცია header-თან მუშაობას PHP-ში აქვს თავისი თავისებურებები.

საქმე ისაა, რომ თუ ამ ფუნქციის გამოძახებამდე რაიმე გამოტანა იქნება ეკრანზე, ის განიხილება როგორც პასუხის სხეულის დასაწყისი. ამ შემთხვევაში ფუნქციის header გამოძახება გამოიწვევს PHP-ის გაფრთხილებას ტექსტით headers already sent. ამ შემთხვევაში სათაურები შეიძლება გაიგზავნოს. შეიძლება შეცდომაც კი არ გამოჩნდეს (დამოკიდებულია PHP-ის პარამეტრებზე). მაგრამ ხშირ შემთხვევაში ეს მხოლოდ ლოკალურ სერვერზე იქნება, ხოლო საიტის ინტერნეტში გამოქვეყნებისას ყველაფერი დაირღვევა.

ეკრანზე გამოტანა ნიშნავს ნებისმიერ ტექსტს. მაგალითად, ასე:

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

ან ცარიელი სტრიქონი:

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

ან სფეისი:

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

ან თეგი:

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

ან გამოტანა echo-ს მეშვეობით:

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

ან გამოტანა var_dump-ის მეშვეობით:

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

PHP-ის გაფრთხილებებიც კი იქნება გამოტანა ეკრანზე. შემდეგ მაგალითში განზრახ ხდება მითითება არარსებულ ცვლადზე, რაც გამოიწვევს გაფრთხილების გამოტანას:

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

PHP-ის ბრეკეტების გახსნა/დახურვაც იწვევს გამოტანას ეკრანზე:

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

განზრახ შექმენით გამოტანა ეკრანზე ფუნქცია header-მდე. შეისწავლეთ წარმოქმნილი შეცდომის ტექსტი.

გამასწორეთ შეცდომა, რომელიც დაშვებულია ამ კოდში:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> text <body> <html>
ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა