⊗ppPmHpRHP 400 of 447 menu

Vấn đề với tiêu đề phản hồi HTTP trong PHP

Theo quy tắc HTTP, trước tiên các tiêu đề HTTP được gửi đi, sau đó mới đến phần thân của phản hồi HTTP. Do đó, việc làm việc với hàm header trong PHP có những đặc điểm riêng.

Vấn đề là nếu có bất kỳ đầu ra nào trên màn hình trước khi gọi hàm này, nó sẽ được hiểu là phần bắt đầu của phần thân phản hồi. Trong trường hợp này, lời gọi hàm header sẽ dẫn đến cảnh báo từ PHP với nội dung headers already sent. Ngay cả khi đó, các tiêu đề vẫn có thể được gửi đi. Thậm chí lỗi có thể không hiển thị (tùy thuộc vào cài đặt PHP). Nhưng thông thường điều này chỉ xảy ra trên máy local, còn khi triển khai trang web lên internet mọi thứ sẽ bị hỏng.

Đầu ra trên màn hình được hiểu là bất kỳ văn bản nào. Ví dụ:

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

Hoặc một dòng trống:

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

Hoặc một dấu cách:

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

Hoặc một thẻ:

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

Hoặc đầu ra qua echo:

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

Hoặc đầu ra qua var_dump:

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

Ngay cả các cảnh báo từ PHP cũng được coi là đầu ra trên màn hình. Trong ví dụ tiếp theo, cố tình truy cập vào một biến không tồn tại, sẽ dẫn đến việc đưa ra cảnh báo:

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

Việc ngắt các cặp ngoặc PHP cũng tạo ra đầu ra trên màn hình:

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

Cố tình tạo đầu ra trên màn hình trước hàm header. Nghiên cứu nội dung của lỗi phát sinh.

Sửa lỗi mắc phải trong mã này:

<!DOCTYPE html> <html> <head> <?php header('Content-Type: text/html'); ?> </head> <body> text <body> <html>
Tiếng Việt
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ʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối