2014-09-21 60 views
0

我一直很好奇有多少網站在其用戶面板上有一個delete按鈕。 例如,如果用戶可以提交帖子,並且這必須在他的用戶控制面板上可用以刪除它,如果他想要如何編碼此按鈕沒有任何框架在PHP中? 我有什麼用隱伏值現在不其creatre一種形式,你可以看到一塊下面的代碼:用戶面板上的刪除按鈕

<?php foreach ($results as $result): ?> 
    <tr> 
    <td> <?php echo $result['id'] ?> </td> 
    <td> <?php echo $result['message'] ?> </td> 
    <td> <?php echo $result['name'] ?> </td> 
    <td> 
    <form method="POST" action=""> 
    <input type="checkbox" 
      name="delete_action" 
      value="<?= $result['id'] ?>" 
      style="display:none; visibility:hidden;" 
      checked> 
    <input class="" type="submit" value="Delete"> 
    </form> 
</td> 
</tr> 

時間PHP動作:

if (isset($_POST['delete_action'])) { 

$get_id_to_delete = $_POST['delete_action']; 

$delete_action = $pdo_testimonials->prepare("DELETE FROM testimonials WHERE id = :id"); 
$delete_action->bindParam(':id', $get_id_to_delete); 

$delete_action->execute(); 

} 

所以,正如你所看到的,methond是如此不安全,容易搞砸。不過,我只用它只有我有權訪問的控制面板。我知道我絕不應該使用類似的方式在生產網站上添加刪除按鈕。 有沒有更好,更安全和可靠的方法來做到這一點?

回答

0

只要在當前用戶可以刪除的內容中顯示簡單鏈接(GET)即可,只要您再次在PHP中進行檢查即可。所以:

  1. 檢查當前用戶是否可以刪除元素。
  2. 如果是這樣,顯示(圖片)鏈接到例如/delete.php?id=2。
  3. 在頁面delete.php檢查當前用戶可以用ID刪除元素= 2
  4. 如果是這樣,刪除元素並取回網頁。否則顯示警告。

它也可以用AJAX來完成,使用相同的步驟。