10/10/2018, 11:39

lỗi header trong PhP (help)

Tôi lập trình PHP nhưng cứ bị lỗi
Warning: Cannot modify header information - headers already sent by (output started at c:path enfile.php:1)
-tôi đã làm một website mọi việc đều bình thường, nhưng khi làm web thứ hai lại bị lỗi này, kinh nghiệm web trước là nếu bạn tồn tại "echo" trong trang có header thi no bao lỗi.
-có ai cứu tôi với tôi đang rất bực mình vì lỗi vô duyên này. xin đa tạ.
bpmtri viết 13:40 ngày 10/10/2018
Để xài được hàm header() trong PHP thì bạn phải gọi nó trước tất cả các hàm có xuất kết quả ra, ví dụ như print(), echo(), hoặc những đoạn HTML nằm bên ngoài các đoạn script PHP.

Để khắc phục lỗi này, bạn gọi hàm ob_start() trước tất cả các lện khác trong chương trình, đơn giản bằng cách chèn đoạn code sau lên trên đầu của file .php
PHP Code:
<?php ob_start(); ?>
và nhớ là chèn ngay dòng đầu tiên nhé, chứ nếu dòng đầu tiên là một dòng trống thì cũng sẽ bị lỗi nữa. !!!!

Hy vọng bạn giải quyết được vấn đề!
thangkho_it viết 13:48 ngày 10/10/2018
Được gửi bởi bpmtri
Để xài được hàm header() trong PHP thì bạn phải gọi nó trước tất cả các hàm có xuất kết quả ra, ví dụ như print(), echo(), hoặc những đoạn HTML nằm bên ngoài các đoạn script PHP.

Để khắc phục lỗi này, bạn gọi hàm ob_start() trước tất cả các lện khác trong chương trình, đơn giản bằng cách chèn đoạn code sau lên trên đầu của file .php
PHP Code:
<?php ob_start(); ?>
và nhớ là chèn ngay dòng đầu tiên nhé, chứ nếu dòng đầu tiên là một dòng trống thì cũng sẽ bị lỗi nữa. !!!!

Hy vọng bạn giải quyết được vấn đề!
lỗi header còn cách giải quyết nào khác không, chứ tui dùng cách của bạn rồi cũng không được. có một vấn đề vô lí ở đây là, cùng một máy tôi làm 2 website cái đầu cũng bị báo lỗi nhưng sau này cũng khắc phục được, mà không hiểu nguyên do ví dụ : trang A bị lỗi thì copy header của trang B chạy bình thường qua thì chạy tốt. nhưng điều này không áp dụng cho website thứ 2 của tôi. xin cứu bồ tôi đang thực hiện một site rất gấp.
Hynohun viết 13:40 ngày 10/10/2018
cái này chỉ xuất hiện trên localhost thôi.
Khi up lên server sẽ không bị vậy đâu.
Bạn mở file php.ini (thư mục WINDOWS), thêm dòng này vào :
output_buffering=on
dtt_vn viết 13:56 ngày 10/10/2018
Thường thì bạn nên vẽ lên sitemap trước là cái gì chạy trước, cái gì chạy sau. Dĩ nhiên là sẽ có một module chuyên lo nhiệm vụ tải header chạy đầu tiên luôn, như thế thì không bị lỗi header
thangkho_it viết 13:53 ngày 10/10/2018
Được gửi bởi dtt_vn
Thường thì bạn nên vẽ lên sitemap trước là cái gì chạy trước, cái gì chạy sau. Dĩ nhiên là sẽ có một module chuyên lo nhiệm vụ tải header chạy đầu tiên luôn, như thế thì không bị lỗi header
mình chưa rõ ý bạn, bạn có thể giải thích rõ hơn không, tuy đã làm 2 cách của 2 bạn trên nhưng vẫn chưa được, À còn nữa mình đánh tiếng việt (uni code) trong php, nhưng khi dùng các hàm như chuyển thành chữ In, hay một số hàm tương tự nó không hiểu tiếng việt nữa ví dụ : strtoupper("string") hay ucwords("string"). Có cách nào cho nó chuyển kiểu chữ mà vẫn hiểu được tiếng việt không.
QueenRock viết 13:42 ngày 10/10/2018
có thể do bạn đặt hàm này trong phần body ???, để trong phần <head> thì mới OK
thangkho_it viết 13:40 ngày 10/10/2018
chào Queen Rock mình xử lý trên trang php thuần túy mà trườc khi insert xuống csdl
thangkho_it viết 13:40 ngày 10/10/2018
vẫn chưa có cách nào mình sử dụng được các cao thủ giúp mình với, mình chuẩn bị nhập liệu mà nó chạy không được thì khó nói với sếp quá.
dtt_vn viết 13:54 ngày 10/10/2018
Đưa code lên đây luôn đi, chứ bắt tuị tui ngồi đóan mò hoài, mệt quá
Bài liên quan
0