Lỗi Warning: Cannot Modify Header Information là gì? Nguyên nhân và cách khắc phục nhanh

Những điểm chính

 

  • Warning: Cannot Modify Header Information là gì: Hiểu lỗi phát sinh khi PHP gửi header sau khi đã xuất dữ liệu.

 

  • Nguyên nhân gây lỗi: Nhận biết các nguyên nhân phổ biến như khoảng trắng thừa, xuất dữ liệu sớm, lỗi encoding UTF-8 BOM, xung đột plugin/theme.

 

  • Dấu hiệu nhận biết lỗi: Nhận diện lỗi thông qua cảnh báo hiển thị, lỗi chuyển hướng, đăng nhập thất bại.

 

  • Cách xác định nguyên nhân qua thông báo lỗi: Biết cách đọc dòng warning để tìm đúng file và dòng code gây lỗi.

 

  • Cách khắc phục triệt để: Áp dụng các giải pháp như làm sạch file PHP, sắp xếp lại code, bật Output Buffering và kiểm tra plugin/theme.

 

Lỗi Warning: Cannot Modify Header Information là gì?

 

Lỗi “Warning: Cannot Modify Header Information” là cảnh báo của PHP cho biết chương trình đang cố gắng thay đổi hoặc gửi HTTP Header (header(), setcookie(), session_start(), redirect…) sau khi đã có dữ liệu được gửi ra trình duyệt.

 

Một khi trình duyệt đã nhận bất kỳ nội dung nào (kể cả khoảng trắng vô hình), PHP sẽ không thể chỉnh sửa header nữa, từ đó phát sinh lỗi.

 

HTTP. Website, Cannot Modify Header Information

 

Nguyên nhân gây ra lỗi Warning: Cannot Modify Header Information

 

Lỗi này thường xuất hiện do các nguyên nhân sau:

 

  • Khoảng trắng hoặc dòng trống thừa
    Có ký tự trống, tab hoặc dòng rỗng nằm trước thẻ <?php hoặc sau thẻ ?> trong file PHP.

 

  • Xuất dữ liệu quá sớm
    Sử dụng echo, print, var_dump() trước khi gọi header(), setcookie() hoặc session_start().

 

  • File lưu ở định dạng UTF-8 có BOM
    Một số trình soạn thảo tự động thêm BOM (Byte Order Mark) – ký tự vô hình nhưng vẫn bị PHP coi là output.

 

  • Sai logic xử lý code
    Lệnh chuyển hướng hoặc chỉnh sửa header được đặt sau khi HTML đã bắt đầu render.

 

  • Lỗi từ file include/require
    Các file được include có thể chứa khoảng trắng, BOM hoặc lệnh xuất dữ liệu ngoài ý muốn.

 

  • Xung đột plugin hoặc theme WordPress
    Plugin/theme kém chất lượng hoặc code không chuẩn gây lỗi header.

 

HTTP. Website, Cannot Modify Header Information

 

Dấu hiệu nhận biết lỗi trong thực tế

 

Khi gặp lỗi này, bạn có thể thấy một hoặc nhiều biểu hiện sau:

 

  • Hiển thị cảnh báo dạng:
    Warning: Cannot modify header information – headers already sent by…

 

  • Lỗi xuất hiện khi đăng nhập, đăng xuất hoặc redirect trang.

 

  • Cookie, session không hoạt động đúng.

 

  • Website bị lỗi giao diện hoặc xuất hiện trang trắng kèm cảnh báo.

 

  • Trong error log của server có ghi rõ file và dòng code gây lỗi.

 

HTTP. Website, Cannot Modify Header Information

 

Cách xác định nguyên nhân thông qua thông báo lỗi

 

Thông báo lỗi thường có dạng:

 

Warning: Cannot modify header information – headers already sent by (output
 
started at /path/to/file.php on line XX)
 

Từ đây, bạn có thể xác định:

 

  • Tên file và số dòng gây lỗi

 

  • Vị trí bắt đầu xuất dữ liệu (output)

 

  • File include/require liên quan (nếu có)

 

Hãy mở đúng file và kiểm tra khu vực xung quanh dòng được chỉ ra để tìm ký tự thừa hoặc lệnh sai vị trí.

 

Cách khắc phục lỗi Warning: Cannot Modify Header Information

 

1. Xóa khoảng trắng và ký tự thừa

 

  • Mở file PHP bằng VS Code, Notepad++…

 

  • Xóa mọi khoảng trắng/dòng trống trước <?php

 

  • Xóa khoảng trắng sau ?> (tốt nhất là không dùng thẻ đóng ?> trong file PHP thuần)

 

2. Kiểm tra thứ tự các lệnh

 

  • Đảm bảo header(), setcookie(), session_start() luôn nằm trước mọi lệnh echo/HTML

 

  • Không in dữ liệu ra trình duyệt trước khi xử lý header

 

3. Lưu file dưới dạng UTF-8 without BOM

 

  • Mở file bằng trình soạn thảo code

 

  • Chọn Encoding → UTF-8 without BOM

 

  • Lưu lại file

 

4. Sử dụng Output Buffering

 

Nếu không thể chỉnh sửa lại toàn bộ code:


 
ob_start(); // code xử lý ob_end_flush();
 

Hoặc bật output_buffering = On trong file php.ini để giảm rủi ro lỗi trên toàn hệ thống.

 

5. Xử lý lỗi trên WordPress

 

  • Dùng hook chuẩn như init, wp_loaded, template_redirect thay vì gọi header trực tiếp.

 

  • Kiểm tra và vô hiệu hóa plugin/theme mới cài để xác định xung đột.

 

  • Luôn test trên staging hoặc backup trước khi chỉnh sửa.

 

Kết luận

 

Lỗi Warning: Cannot Modify Header Information tuy không nghiêm trọng nhưng nếu không xử lý đúng cách có thể làm hỏng các chức năng quan trọng của website WordPress. Việc hiểu rõ nguyên nhân, cách đọc thông báo lỗikhắc phục đúng hướng sẽ giúp bạn tiết kiệm rất nhiều thời gian.

 HỖ TRỢ TRỰC TUYẾN