Lỗi cannot modify header information headers already sent by năm 2024

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 đó.

Thông tin liên hệ

Địa chỉ: Số 7, Trần Xuân Hòa, Phường 7, Quận 5, Hồ Chí Minh

Giấy ĐKKD: 0312032889 / Ngày cấp: 31 tháng 10 năm 2012

Nơi cấp: Phòng đăng ký kinh doanh – Sở kế hoạch và đầu tư thành phố Hồ Chí Minh

Người đại diện: Hoàng Hải Triều

Điện thoại: +84(0)28 6265 1411

Email: [email protected]

Thật phiền toái khi một lỗi nhỏ có thể khiến site WordPress hoàn toàn không hoạt động phải không. Chúng tôi, dĩ nhiên, đang nói tới lỗi cực kỳ phổ biến Warning: cannot modify header information – headers already sent by WordPress error. Nếu bạn vô tình gặp phải lỗi này, bạn đã tìm đến đúng nơi rồi đấy. Trong bài hướng dẫn WordPress này, chúng tôi sẽ giải thích vì sao phát sinh lỗi và cách xử lý lỗi để bạn không gặp phải tình trạng này trong tương lai nữa.

Lỗi cannot modify header information headers already sent by năm 2024

Bạn cần chuẩn bị gì

Trước khi bắt đầu, bạn cần chuẩn bị:

  • Quyền truy cập vào Hosting control panel hoặc FTP

Hãy xem qua một ví dụ lỗi. Thông thường bạn sẽ thấy một mẫu pop up như sau hiện lỗi lên:

Warning: Cannot modify header information – headers already sent by (output started at /public_html/wp-content/plugins/my-plugin/my-function.php:#) in /public_html/wp-includes/pluggable.php on line #

Như bạn thấy, có 2 files được đề cập đến. File đầu tiên: my-function.php đặt tại /public_html//wp-content/plugins/my-plugin/) là gốc của lỗi này. Đây là một code tự viết được dùng để ghi đè chức năng chính của WordPress. Chức năng chính này được đặt trong file pluggable.php (file gốc WordPress giống nhau cho bất kỳ bộ cài WordPress nào). Cơ bản, có một vấn đề trong file ngăn file thứ 2 hoạt động bình thường.

Lý do chính có thể là khoảng trắng xuất hiện trong file đầu tiên. Đây có thể là khoảng trắng trên cùng hoặc dưới cùng của file, những khoảng trắng không cần thiết ở bất kỳ nơi nào trong file hoặc kể cả khoảng trắng giữa PHP tags. Vì trên thực tế, lập trình viên thường để lại dư khoảng trắng khi viết code, lỗi này thường xảy ra hơn mọi người tưởng. Dòng # trong báo lỗi chỉ chính xác vị trí lỗi – nó sẽ giúp bạn giải quyết lỗi mà không gặp nhiều rắc rối.

Giờ bạn đã biết nguyên nhân gây lỗi. Chúng tôi sẽ cho bạn biết 2 cách để xử lý lỗi này, có thể thử cả 2 nếu một trong hai không hiệu quả.

Lựa chọn 1 – Chỉnh sửa file bị lỗi

Lựa chọn đầu tiên khi sửa lỗi warning: cannot modify header information – headers already sent by là chỉnh sửa thủ công file lỗi. Bạn đã được cung cấp các thông tin cần thiết để xác định lỗi trong thông báo lỗi (nó là file đầu tiên trong thông báo). Tất cả những gì bạn cần làm là mở file, mở bằng FTP client like FileZilla, hoặc qua File Manager.

Quan trọng là tất cả những gì bạn cần làm ở đây là loại bỏ khác trắng trong file đó. Bắt đầu từ dòng # trong thông báo lỗi. Từ đó, bạn có thể kiểm tra phần còn lại của file và tìm thêm những khoảng trống/trắng cho đến cuối văn bản.

Hãy chắc là bạn chú đến đầu và cuối PHP tags. Không có khoảng trắng trước hoặc sau tag. Cũng vậy, dòng cuối cùng của code không kết thúc bằng một dòng trống hoặc khoảng trắng dư.

Trong screenshot bên dưới, bạn có thể thấy file wp-config.php có dư một dòng trắng trước php tag.

Lỗi cannot modify header information headers already sent by năm 2024

PRO TIP: Trong nhiều text editors bạn có thể xóa khoảng trắng tự động. Ví dụ, để xóa khoảng trắng trong Atom, chọn tất cả code và chuyển hướng tới Packages -> Whitespace -> Remove Trailing Whitespace.

Lựa chọn 2 – Thay thế file bị hỏng

Tất nhiên, sửa chữa nhiều file bị hỏng quá có thể rất khó khăn. File có thể thuộc về plugin hoặc theme bạn đã từng tích hợp trong site của bạn, hoặc thậm chí là file core của WordPress.

Nếu lỗi thật sự bị gây ra bởi plugin hoặc theme, tất cả những gì bạn cần làm là cài đặt lại nó. Làm vậy sẽ hết lỗi trong hầu hết các trường hợp. Ngoài ra, nếu lỗi là do mã nguồn WordPress, cách tốt nhất là dùng một bản WordPress gốc sạch, và thay thế các file bị hỏng vào trong thư mục cài đặt của bạn với file trong bản WordPress sạch đó. Việc này sẽ đảm bảo các file hỏng đã được khôi phục vào tình trạng ban đầu nhưng vẫn giữ toàn bộ thiết lập WordPress. Bây giờ, bạn chỉ cần khởi động lại và lỗi sẽ đã được sửa.

Lời kết

Bất kể bạn dán code snippet vào file của bạn, thêm plugin hoặc theme hoặc viết code thủ công, bạn đều có rủi ro sẽ thêm một khoảng trắng vào trong file. Những khoảng trống vô tội này sẽ có lúc quay lại ám ảnh bạn dưới dạng lỗi Warning: cannot modify header information – headers already sent by WordPress .

Trong bài hướng dẫn này, chúng tôi đã chỉ bạn cách sửa lỗi này để site hoạt động bình thường như ban đầu. Nếu cần tìm hiểu thêm về các bài hướng dẫn WordPress khác, hãy truy cập mục này của chúng tôi.