2009-11-18

Các lỗi thường gặp trong PHP

11/18/2009 11:00:00 AM Posted by Hoàng Dũng No comments

TG( 09/08/2007 12:00:46)
[function.move-uploaded-file]: failed to open stream: Permission denied in

- chú ý cụm: Permission denied in lỗi này là do file/thư mục không đủ permission 
- cách khắc phục: chmod file/thư mục thành 0777
#102
TK( 09/08/2007 12:31:00)

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
#103
TG( 09/08/2007 12:50:24)

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\server\basic\lib_tmp\test.php:2) in D:\server\basic\lib_tmp\test.php on line 3 
hoặc  
Warning: Cannot modify header information - headers already sent by (output started at D:\server\basic\lib_tmp\test.php:2) in D:\server\basic\lib_tmp\test.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:\server\basic\lib_tmp\test.php (output started at D:\server\basic\lib_tmp\test.php:2) 
cách khắc phục: 
- thủ công: dò đến dòng co byte được sent (output started at D:\server\basic\lib_tmp\test.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() 

session_start(); 
?>

lý do: có 1 ký tự \n (enter) nằm ngoài cặp .. ?> 
cách sửa: 
session_start(); 
?>

hy vọng với những ví dụ này giúp bạn kiểm soát được tốt hơn việc dùng session và header

#104
TK( 09/08/2007 06:30:31)
Warning: preg_replace() [function.preg-replace]: Unknown modifier '5' in D:\localhost\AppServ\www\game\list.php on line 16


- Lỗi khi sử dụng preg_replace 
- Bạn đã viết thiếu mất phần replacement.
#105
Tuancn( 09/08/2007 07:26:03)
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)