用户面板上的删除按钮

时间:2014-09-21 12:17:34

标签: php

我一直很好奇有多少网站的用户面板上有delete按钮。 例如,如果用户可以提交帖子,并且必须可以在他的用户控制面板上将其删除,如果他想要如何编写此按钮而没有PHP中的任何框架? 我现在还没有创建一个具有hiden值的表单,你可以在下面看到一段代码:

<?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();

}

所以,你可以看到这种方法是如此不安全,容易搞砸。但是我只把它用于只有我有权访问的控制面板。我知道我永远不应该在生产网站上使用类似的方法添加删除按钮。 有没有更好,更安全可靠的方法呢?

1 个答案:

答案 0 :(得分:0)

简单链接(GET)只显示当前用户可以删除的内容是否正常,只要再次在PHP中检查它即可。所以:

  1. 检查当前用户是否可以删除元素。
  2. 如果是,则显示(图像)链接到例如/delete.php?id=2。
  3. 在页面delete.php上检查当前用户是否可以删除id = 2的元素。
  4. 如果是,请删除元素并返回页面。否则显示警告。
  5. 也可以使用AJAX完成,步骤相同。