Cách Sửa Lỗi Cannot modify header information – headers already sent
Có khi nào bạn gặp lỗi “Cannot modify header information – headers already sent by (output started at C:\wamp\www\gau_bong25\gio_hang\them_sm.php:39) in C:\wamp\www\gau_bong25\gio_hang\them_sm.php on line 40” chưa?
Trong php đây là một lỗi rất thường xuyên gặp. Có hai nguyên nhân chính gây ra lỗi này đó là:
+ Trước khi gọi hàm header bạn đã echo một nội dung gì đó hoặc một khoảng trắng.
+ Hoặc là trước hàm header đã có lệnh nào đó bị warning (tức là dòng code nào đó trước dòng header bị lỗi)
trường hợp 1: Nếu trước khi gọi hàm header, bạn không dùng lệnh echo
Trường hợp này có thể lỗi là do có lệnh nào trước đó đã bị warning. Cách khắc phục ở đây là bạn thêm kí tự @ vào trước dòng lệnh bị warning (để tắt warning đi).
Trường hợp 2: Nếu trước khi gọi hàm header, bạn đã dùng lệnh echo. Bạn có thể tham khảo các phương án sau:
+Phương án 1: Chuyển nội dung echo về sau nội dung hàm header.
+Phương án 2: Sử dụng lệnh ob_start() và ob_flush()
– Gọi hàm ob_start() ở đầu file, hàm ob_start() có tác dụng khởi động vùng đệm của server để chứa tạm thời nội dung echo (xuất) vào đó.
– Gọi hàm ob_flush() ở cuối file, hàm ob_flush() dùng để đưa dữ liệu từ vùng đệm của server về lại phần nội dung.
+Phương án 3: Nếu bạn có quyền thiết lập file php.ini của server
Thiết lập lại thuộc tính output_buffering= ON trong file php.ini
Trong wordpress khi bạn làm theme thì lỗi này cũng hay xảy ra, và nó xảy ra thường là ở file functions.php.
Khi nhìn vô dòng báo lỗi đó ta biết được gì? các bạn chú đường dẫn trong dấu ngoặc (“them_sm.php:39“), có nghĩa là lỗi này được phát sinh ở file them_sm.php và ở dòng 39, bạn vào file này và tìm những khoảng trắng, xuỗng hàng ở ngoài dấu ngoặc php ““. Trong vòng php thì không sao, những nếu các khoảng trắng, hoặc chữ hoặc bất cừ điều gì miễn sao có cái gì đó có dữ liệu trong html trong fiel đó.
chúc bạn thành công.
Chào anh anh có thể giúp em với đc không ak?
em bị tự học thiết kế theme thi hiển thị lỗi.
Warning: Cannot modify header information – headers already sent by (output started at /home/creative/public_html/wp-content/themes/dl/functions.php:1) in /home/creative/public_html/wp-includes/pluggable.php on line 899
bạn vào file functions.php em để ý dòng số 1 xem có khoảng trắng nào không? ở ngoài vòng < ?php ?> em để ý xem có khoảng trắng không? nếu không có bạn để ý các đoạn code bên trong xem có xuất ra dòng chữ nào không
Thanks bạn ! Đang làm theo cách của bạn và đã sửa được !
mình rất vui khi các bài viết của mình có thể giúp ích cho ai đó, mình hiện tại đã nghỉ đi làm coder rồi. Công việc mệt mỏi quá với lại nghành này làm ở VN không khá nổi