2014-09-21 2 views
0

Мне всегда было интересно узнать, сколько веб-сайтов имеет кнопку delete на своих панелях пользователей. Например, если пользователь может отправить сообщение, и это должно быть доступно на панели управления пользователя, чтобы удалить его, если он хочет, как бы вы закодировали эту кнопку без каких-либо фреймворков в php? Что я Dont сейчас его 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, с такими же шагами.

Смежные вопросы