2013-11-27 50 views
0

我有圖像的URL和圖像ID的幾張桌子,我希望能夠用一個PHP從每個表中刪除頁面和查詢。表不起作用MYSQL

的$ tableToDeleteFrom被設置爲在URL中的變量(例如delete.php表=什麼?)

$tableToDeleteFrom = $_GET['table']; 

這裏是我的查詢/ PHP的 - 看來這是哪裏的問題可能是,出於某種原因,當$ tableToDeleteFrom不是一個變量,一切工作正常。圖像被刪除,重定向帶來的是回到正確的頁面。不過,我需要這是動態的,因爲用戶需要能夠選擇他們想要在url中顯示的部分。

if (isset($_GET['id'])) { 
    $id = $_GET['id']; 

    $query = $pdo->prepare('DELETE FROM '.$tableToDeleteFrom.' WHERE id = ?'); 
    $query->bindValue(1, $id); 
    $query->execute(); 

    header('Location: img_delete_new.php?table='.$tableToDeleteFrom); 
} 

這裏是取表中的每一行,並把它放入陣列中的代碼的下位要被訪問的PHP:

class Image { 
    public function fetch_all() { 
     global $pdo; 

     $tableToDeleteFrom = $_GET['table']; 
     $query = $pdo->prepare("SELECT * FROM ".$tableToDeleteFrom); 
     $query->execute(); 

     return $query->fetchAll(); 
    } 
} 


$image = new Image; 
$images = $image->fetch_all(); 

這裏是允許用戶選擇哪個圖像的形式他們希望刪除:

<form action="img_delete_new.php" method="get"> 

    <?php foreach ($images as $image) { ?> 
     <div class="delete"> 
      <input type="radio" name="id" value="<?php echo $image['id']; ?>"> 
      <img src="../images/thumbs/<?php echo $image['name']; ?>"><br> 
      <?php echo $image['desc']; ?> 
     </div> 
    <?php } ?> 

    <input type="submit" value="Delete Image" class="button"> 

</form> 
+2

[如何防止在PHP中SQL注入?(http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – kunal

+1

這是一個重職。不要那麼做!同一(刪除)帖子的答案是,你從來沒有在表單/表單url中設置表名。不難做/發現,對嗎? – djot

+0

@djot啊是的!,我不明白你的意思。但是,我將隱藏的變量添加到表單中。謝謝! – mpn

回答

0

更新形式包括隱藏的變量「表」

<form action="img_delete_new.php" method="get"> 

    <?php foreach ($images as $image) { ?> 
     <div class="delete"> 
      <input type="hidden" name="table" value="<?php echo $tableToDeleteFrom;?>"> 
      <input type="radio" name="id" value="<?php echo $image['id']; ?>"> 
      <img src="../images/thumbs/<?php echo $image['name']; ?>"><br> 
      <?php echo $image['desc']; ?> 
     </div> 
    <?php } ?> 

    <input type="submit" value="Delete Image" class="button"> 

</form>