2011-12-25 119 views
7

這是代碼PHP取消鏈接功能

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

,但由於某種原因,我得到這個錯誤警告:取消鏈接();

爲什麼$ user_avatar返回空?如果我贊同它顯示t_cabbbccebbfhdb.jpg

+0

你會得到什麼錯誤?您的帖子似乎錯過了實際的錯誤消息。該文件是否真的存在於當前工作目錄中? – catchmeifyoutry 2011-12-25 01:53:40

+3

當我看到PHP代碼不使用[PHP Prepared Statements](http://php.net/manual/en/pdo.prepared-statements.php)來防止[SQL Injection](http:// en。 wikipedia.org/wiki/SQL_injection)漏洞。我希望你在這裏沒有粘貼的代碼中清理你的變量。如果不是,請考慮重新編寫代碼以使用PDO Prepared Statements,而不是試圖清理變量。 – sarnold 2011-12-25 01:54:32

回答

12

取消鏈接刪除文件,而未設置是變量。

如果變量返回空,也許查詢不返回任何記錄。您是否嘗試手動運行查詢?

+6

請寫出完整,連貫的句子。 「寫作風格事項」 - http://stackoverflow.com/questions/how-to-answer – BoltClock 2011-12-25 01:53:37

+0

感謝您的信息 – 2011-12-25 01:56:23

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

該文件存在,如果我寫$ home = $ _SERVER ['DOCUMENT_ROOT'];取消鏈接($ home.'t_cabbbccebbfhdb.jpg');它的工作。但如果我將其更改爲取消鏈接($ home。$ user_avatar);該錯誤消息顯示爲unlick(/ home/naturecl/public_html。),而$ user_avatar是空的? – Ben 2011-12-25 02:00:09

+0

檢查編輯的代碼,如果$ user_avatar包含文件名,則可以使用取消鏈接 – 2011-12-25 02:03:42

+0

$ target =「$ home/img/avatars/$ user_avatar」;如果我echo $ user_avatar顯示文件名,但在unlick函數是空的,它顯示警告:解除鏈接(/ home/naturecl/public_html/img/avatars /) – Ben 2011-12-25 02:07:40