Обычно я создаю страницу удаления, которая показывает форму подтверждения, если метод запроса «GET», и удаляет данные, если метод «POST» и пользователь выбрал опцию «Да».
Затем на странице со ссылкой для удаления я добавляю функцию onclick (или просто использую плагин jQuery для подтверждения ), который использует AJAX для публикации по ссылке, минуя страницу подтверждения.
Вот идея в псевдокоде:
delete.php:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST['confirm'] == 'Yes') {
delete_record($_REQUEST['id']); // From GET or POST variables
}
redirect($_POST['referer']);
}
?>
<form action="delete.php" method="post">
Are you sure?
<input type="submit" name="confirm" value="Yes">
<input type="submit" name="confirm" value="No">
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
<input type="hidden" name="referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>">
</form>
Страница со ссылкой для удаления:
<script>
function confirmDelete(link) {
if (confirm("Are you sure?")) {
doAjax(link.href, "POST"); // doAjax needs to send the "confirm" field
}
return false;
}
</script>
<a href="delete.php?id=1234" onclick="return confirmDelete(this);">Delete record</a>