【发布时间】:2016-04-29 07:40:40
【问题描述】:
我试图让这个生成的表上的删除按钮工作(删除数据库记录并从视图中删除行)。该按钮是通过 for 循环中的 echo 语句生成的。
吐出视图的PHP代码:
<?php
//Waitlist for Nobel Floorplans
$sth = $db->prepare("SELECT id, first_name, last_name FROM wlist");
$sth->execute();
$results = $sth->fetchAll();
$wishlistArray[] = null;
foreach ($results as $result) {
echo "<tr><td>".$result['first_name']."</td><td>".$result['last_name']."</td><td><button class=\"delete_class\" id=\"".$result['id']."\" >DELETE</button></td></tr>";
}
?>
这个 PHP 页面的底部,是这个 javascript f(x):
<script>
$(".delete_class").click(function(){
var del_id = $(this).attr('id');
$.ajax({
type:'POST',
url:'delete_page.php',
data: {delete_id : del_id},
success: function (data) {
if (data) {
tx.executeSql('DELETE FROM wlist WHERE id = ?', [delete_id], success, error);
}
else { // DO SOMETHING
}
}
});
});
</script>
上述代码的问题在于,没有引用 URL 'delete_page.php',也没有从数据库中删除任何内容。完全调用..
我在包含上述所有代码的 PHP 文件所在的文件夹中有“delete_page.php”。这个文件有这个代码:
<?php
$id = $_POST['delete_id'];
$query = "delete from nobel_waitlist where ID = $id";
?>
如果知道如何通过 AJAX 删除该视图中的该行以及删除数据库记录,那也很棒。
【问题讨论】:
-
请考虑如果我向您的
delete_page.php发送POST请求并将id参数设置为值0 OR 1=1会发生什么 -
我有点担心这个问题的答案,但在您的成功案例中,
tx是什么? -
last_name, -
可爱的sql injection attack 漏洞。享受您的服务器 pwn3d。
-
呜呜!! 在这里^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
标签: javascript php mysql ajax