Code php thường gặp một số lỗi cơ bản sau:

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at D:serverbasiclib_tmptest.php:2) in D:serverbasiclib_tmptest.php on line 3
hoặc
Warning: Cannot modify header information – headers already sent by (output started at D:serverbasiclib_tmptest.php:2) in D:serverbasiclib_tmptest.php on line 3
- Lý do: hàm session_start() và header() chỉ được thực hiện khi trước đó không có 1 byte dữ liệu nào được sent đế trình duyệt.
Câu báo lỗi trên cho biết có 1 byte dữ liệu nào đó ở dòng 2 của file D:serverbasiclib_tmptest.php (output started at D:serverbasiclib_tmptest.php:2)
Cách khắc phục:
- thủ công: dò đến dòng co byte được sent (output started at D:serverbasiclib_tmptest.php:2) và bỏ hết các phần dữ liệu được sent
- dùng ob_clean() trước session_start() hoặc header() để xóa hết các ký tự đã sent
chú ý: file php như sau sẽ bị lỗi khi dùng session_start() hoặc header()
<?php session_start(); ?>
lý do: có 1 ký tự n (enter) nằm ngoài cặp <?php .. ?>
cách sửa:
<?php session_start(); ?>
Warning: preg_replace() [function.preg-replace]: Unknown modifier ’5′ in D:localhostAppServwwwgamelist.php on line 16
- Lỗi khi sử dụng preg_replace
- Bạn đã viết thiếu mất phần replacement.
Lỗi trang trắng, không hiện gì cả. Chỉ một màu trắng
- Bạn kiểm tra trong host xem có file log không vì lỗi sẽ được báo ở đó.
VD: error_log
Lỗi BOM , lỗi này rất hay gặp , nếu bạn nào mới học PHP chắc sẽ phải nhức đầu , vì nó làm tất cả các session ko hoạt động vì dòng trên cùng của code bị chèn tự động 1 kí tự lạ mà mình ko nhìn thấy
Cách sửa (2 cách):
+(cách 1) vào MSDOS chuyển đến thư mục chứa file bị BOM
gõ : type tenfile.php bạn sẽ nhìn thấy ngay phía trên đầu file có kí tự lạ , để sửa bạn gõ : edit tenfile.php
+(cách 2) Bạn copy toàn bộ code và paste vào Notpad sau đó lưu lại file với tên như cũ (cách này sẽ là lỗi font nếu trong file php của bạn có dùng tiếng việt)
<?php Lỗi: Warning: preg_replace() [function.preg-replace]: Unknown modifier ';' in D:localhostAppServwwwmusicindex.php on line 20 ?>
Cách xử lý: Bạn tìm xem các dấu kết thúc xem chính xác chưa ^^
VD: ở đây là bị lỗi
<?php $data = preg_replace(#<p style="color:#AAAAAA; text-align: justify"> ... ?>
Bạn thấy dấu #AAAAAA rồi chứ ^^ phải thêm dấu #AAAAAA
Nguồn phpbasic
Bạn đang muốn nâng cao kỹ năng lập trình của mình ?
|












