2011-12-25 31 views
7

Đây là mãPHP bỏ liên kết chức năng

$query = mysql_query("SELECT avatar FROM users WHERE UserID = ".$userID.""); 
     $row = mysql_fetch_array($query); 
     $user_avatar = trim($row['avatar']); 
unlink($user_avatar); 

nhưng đối với một số lý do tôi nhận được lỗi Cảnh báo này: unlink();

lý do $ user_avatar trả lại trống? và nếu tôi echo nó cho thấy t_cabbbccebbfhdb.jpg

+0

lỗi nào bạn nhận được? Bài đăng của bạn có vẻ như bỏ lỡ thông báo lỗi thực tế. Tệp có thực sự tồn tại trong thư mục làm việc hiện tại không? – catchmeifyoutry

+3

Tôi lo lắng khi thấy mã PHP không sử dụng [Báo cáo chuẩn bị PHP] (http://php.net/manual/en/pdo.prepared-statements.php) để ngăn chặn [SQL Injection] (http: // vi. wikipedia.org/wiki/SQL_injection) lỗ hổng. Tôi hy vọng bạn đang khử trùng các biến của bạn trong mã mà không được dán ở đây. Nếu không, vui lòng xem xét viết lại mã để sử dụng PDO Prepared Statements thay vì cố gắng khử trùng các biến của bạn. – sarnold

Trả lời

12

unlink gỡ bỏ những file trong khi unset là cho các biến.

Nếu biến trả về trống, có lẽ truy vấn không trả về bất kỳ bản ghi nào. Bạn đã cố gắng chạy truy vấn theo cách thủ công chưa?

+6

Vui lòng viết câu hoàn chỉnh, mạch lạc. "Viết kiểu quan trọng" - http://stackoverflow.com/questions/how-to-answer – BoltClock

+0

cảm ơn thông tin –

1
$query = mysql_query("SELECT avatar FROM users WHERE UserID = ".$userID.""); 
     $row = mysql_fetch_array($query); 
     $user_avatar = trim($row['avatar']); 
unset($user_avatar); 

//if you want to unlink file then 

if(!empty($user_avatar)) {  
    unlink($home.$user_avatar); // $yourFile should have full path to your file 
} 
+0

tệp tồn tại và nếu tôi viết $ home = $ _SERVER ['DOCUMENT_ROOT']; hủy liên kết ($ home.'t_cabbbccebbfhdb.jpg '); nó hoạt động. nhưng nếu tôi thay đổi nó để bỏ liên kết ($ home. $ user_avatar); thông báo lỗi hiển thị dấu nháy (/ home/naturecl/public_html.) và $ user_avatar giống như rỗng? – Ben

+0

kiểm tra mã đã chỉnh sửa, bạn có thể sử dụng hủy liên kết nếu $ user_avatar chứa tên tệp –

+0

$ target = "$ home/img/avatars/$ user_avatar"; và nếu tôi echo $ user_avatar đang hiển thị tên tập tin nhưng trong chức năng không có sản phẩm nào là trống và cảnh báo của nó cho thấy: unlink (/ home/naturecl/public_html/img/avatars /) – Ben

Các vấn đề liên quan