⊗ppPmHpRHP 400 of 447 menu

Masalah dengan Penghantaran Header HTTP dalam PHP

Menurut peraturan HTTP, header HTTP dihantar terlebih dahulu, diikuti dengan badan (body) respons HTTP. Oleh sebab itu, penggunaan fungsi header dalam PHP mempunyai ciri-ciri tersendiri.

Masalahnya ialah, jika terdapat sebarang output ke skrin sebelum fungsi ini dipanggil, ia akan ditafsirkan sebagai permulaan badan respons. Dalam kes ini, panggilan kepada fungsi header akan menyebabkan amaran PHP dengan teks headers already sent. Header mungkin masih dihantar. Ralat mungkin tidak dipaparkan (bergantung pada konfigurasi PHP). Tetapi selalunya ini hanya berlaku dalam persekitaran pembangunan tempatan (local), dan apabila laman web dinaikkan ke internet, semuanya akan rosak.

Output ke skrin merujuk kepada sebarang teks. Contohnya:

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

Atau baris kosong:

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

Atau ruang (space):

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

Atau tag:

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

Atau output melalui echo:

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

Atau output melalui var_dump:

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

Malah amaran PHP juga dianggap sebagai output ke skrin. Dalam contoh berikut, sengaja mengakses pembolehubah yang tidak wujud, yang akan menyebabkan output amaran:

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

Pemisahan tag PHP juga menghasilkan output ke skrin:

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

Sengaja cipta output ke skrin sebelum fungsi header. Kaji teks ralat yang timbul.

Betulkan ralat yang dilakukan dalam kod ini:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> teks <body> <html>
Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak