2010-04-16 46 views
0

我試圖創建一個刪除圖像鏈接,如果圖像存在,當用戶單擊刪除圖像鏈接它應該刪除圖像。但由於某種原因,這是行不通的有人可以幫我修復刪除圖像鏈接問題?謝謝!PHP和MySQL刪除圖像鏈接問題

這裏是PHP代碼。

if (isset($_POST['delete_image'])) { 
    $img_dir = "../members/" . $user_id . "/images/thumbs/"; 
    $img_thmb = "../members/" . $user_id . "/images/"; 

    $image_name = $row['image']; 

    if(file_exists($img_dir . $image_name)){ 
     if(unlink($img_dir.$image_name) && unlink($img_thmb.$image_name)){ 
      $mysqli = mysqli_connect("localhost", "root", "", "sitename"); 
      $dbc = mysqli_query($mysqli, "DELETE FROM users* WHERE image_id = '.$image_id.' AND user_id = '$user_id'"); 
     }else{ 
      echo '<p class="error">Sorry unable to delete image file!</p>'; 
     } 
    } 
} 

if(isset($_POST['image']) || !empty($image)) { 
echo '<a href="'. $_POST['delete_image'] .'">Delete Image</a>'; 
} 
+0

你有沒有考慮,而不是絕對路徑。)」?../members「還有,你能告訴我們,如果它刪除數據庫條目或不 – jbnunn 2010-04-16 20:50:28

+0

我?如果(isset($ _POST ['image'])||!empty($ image)){ echo'Delete Image'; }'此時 – IMAGE 2010-04-16 20:52:12

+0

在您的代碼中,我只是試圖修復我的鏈接' ' $ image is never set。Maybe you mean if(isset($ _ POST ['image'])||!empty($ _ POST ['image']){... or ||!empty($ image_name)? – jbnunn 2010-04-16 20:53:50

回答

0
"DELETE FROM users* WHERE image_id = '.$image_id.' AND user_id = '$user_id'" 

應該

"DELETE FROM users WHERE image_id = $image_id AND user_id = $user_id" 

這是假設$ image_id和$ user_ID的都是整數。如果它們是字符串,請在它們周圍放置單引號。

此外,仔細檢查你的鏈接:

<a href="'. $_POST['delete_image'] .'">Delete Image</a> 

是用戶真正傳遞通過POST的聯繫?

您的代碼容易受到SQL注入攻擊。請考慮使用參數化查詢。

+0

what是參數化查詢嗎? – IMAGE 2010-04-16 20:56:09

+0

鏈接應該是什麼? – IMAGE 2010-04-16 20:59:13

0

「DELETE FROM用戶WHERE image_id = $ image_id AND USER_ID = $ user_ID的」

而且還

$ PATH = 「你的圖片文件夾路徑」; $ image_name =「您的圖片名稱」;

的unlink($路徑「$ IMAGE_NAME;