09/10/2018, 23:05

Xin chỉ giáo: không Redirect trong PHP đc

Chào các bạn,

Mình tạo 1 file headertest.php để REDIRECT tới file test.php như sau :

<?
header("location: test.php");
exit;
?>

Nhưng khi chạy file headertest.php thì nó lại hiện ra thông báo lỗi như sau :

Warning: Cannot modify header information - headers already sent by (output started at d:web_rootphpsiteheadertest.php:3) in d:web_rootphpsiteheadertest.php on line 4

File headertest.php mình đặt trong thư mục d:web_rootphpsite là thư mục root trên IIS

Đây là lỗi gì vậy ? Ai biết giúp mình sửa với ! Tại sao không redirect đc vậy ?
tumickey viết 01:15 ngày 10/10/2018
thứ nhất bạn coi lại có mã hóa utf-8 ko vì khi mã mặc định ấy cái text đều thêm 3 kí tự nhận diện nên gây lỗi.
dọc thêm
http://www.experts-exchange.com/Web/..._20939642.html
NDThuan viết 01:14 ngày 10/10/2018
số bài của tumickey đẹp thế (444)
squalllx77 viết 01:11 ngày 10/10/2018
Mình nghĩ là do bạn lưu file đó dạng UTF-8, cái thằng editor của bạn tự động thêm vào các ký tự nhận diên unicode(unicode signature - BOM) đóa.
Bạn kiếm chương trình editor nào hổ trợ unicode tốt(mình đang dùng EmEditor) và bỏ các ký tự đóa là hết thoai.
Thân
trunglg viết 01:22 ngày 10/10/2018
Cám ơn bạn tumickey và bạn squalllx77 đã trả lời, bạn tumickey vui lòng cho hỏi "coi lại có mã hóa utf-8 ko vì khi mã mặc định ấy cái text đều thêm 3 kí tự nhận diện nên gây lỗi" nghĩa là sao ?

To squalllx77 : Mình đang sử dụng Macromedia Dreamwaver 8.0, mà bạn nói "cái thằng editor của bạn tự động thêm vào các ký tự nhận diên unicode(unicode signature - BOM)" nghĩa là sao mình không hiểu ??? các ký tự nhận diện đó là gì ? Bạn giải thích chi tiết hơn giùm mình đc ko ? Mình mới chỉ bắt đầu học PHP nên cũng không rành lắm.

Thanks a lot !
kid08 viết 01:21 ngày 10/10/2018
trước <? và sau ?> trong file PHP phải ko có một kí tự nào kể cả khoảng trắng
tumickey viết 01:06 ngày 10/10/2018
tức là vậy 3 kí tự đó là
Code:

bạn thử mở bằng cái này thử coi
bạn nên tại cái này vi nó ko hổ trợ utf-8
http://zeraha.org/content/dload.php?...ile&file_id=28
có nó ko . nó là kí tự nhận diện utf-8 .

ngoài ra còn kiểm trong php.ini
output_buffering = On
theo như thông báo lổi của bạn thì in d:\web_root\phpsite\headertest.php on line 4 dòng 4 có lẽ sau dấu ?> có khoảng trắng bạn check lại.
1 công cụ lập trình php khá tốt là emeditor
cái nPad2 v 3.0 cũng khá hổ trợ utf-8
http://zeraha.org/content/dload.php?...ile&file_id=36
trunglg viết 01:15 ngày 10/10/2018
Quote Được gửi bởi kid08
trước <? và sau ?> trong file PHP phải ko có một kí tự nào kể cả khoảng trắng
Nếu giả sử code trong file .PHP của mình như sau là không đc à ?

<html>
<body>
<?
//some code here
?>

</body>
</html>

Phải xóa bỏ toàn bộ các ký tự <html>,... đi à ? hic, để mình thử lại xem sao.
kid08 viết 01:15 ngày 10/10/2018
trước khai báo header, setcookie ko đc có code HTML và trước <? và sau ?> trong file PHP phải ko có một kí tự nào kể cả khoảng trắng
cute viết 01:19 ngày 10/10/2018
thêm ob_start() vào đầu file php. Tốt nhất là thêm là vào file main.php hay connection.php
Bài liên quan
0