【发布时间】:2017-06-20 00:25:32
【问题描述】:
通过ajax请求删除一行有更聪明的方法吗?
这里的代码我用的,也许有更好更安全的方法。
按钮
<a href="#" msg_id="<? echo $msg_id; ?>" class="delete-btn"> DELETE </a>
AJAX
$('.delete-btn').click(function(){
// Confirm
///if ( ! confirm('Are you sure want to delete this row?')){
// return false;
// }
// id need to delete
var msg_id = $(this).attr('msg_id');
// Current button
var obj = this;
// Delete by ajax request
$.ajax({
type : "post",
dataType : "text",
url : 'messages_sql.inc.php?a=message_delete',
data : {
msg_id : msg_id
},
success : function(result){
$(obj).parent().parent().remove();
window.location.assign('messages.php?msg=deleted');
}
});
});
【问题讨论】:
-
messages_sql.inc.php是做什么的?它是否检查用户的会话以确认他们有权删除他们将要删除的记录? -
你不应该编造你自己的属性。使用
data-msg_id而不是msg_id。 -
messages_sql.inc.php 只有 SQL QUERY $msg_id = $_POST['msg_id']; $sql = "从 db_messages 中删除 msg_id = $msg_id";
-
只要服务器进行适当的验证,这是正常的做法。
-
你应该使用准备好的语句来防止 SQL 注入。