2014-09-21 59 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来完成,使用相同的步骤。