gpt4 book ai didi

php - jQuery php 从 mysql 动态删除表中的行

转载 作者:行者123 更新时间:2023-11-29 07:22:42 24 4
gpt4 key购买 nike

我有一个页面,其中有由“lesson_id”定义的表行 id,并且我有一个 jquery 删除函数,可以删除该行而无需更改页面。它几乎一切正常,但是当它将信息发布到delete_row.php 时,它并没有删除记录。但delete_row.php正在工作,因为我已经手动完成了delete_row.php?id=4并且它成功删除了该记录。任何指示和解释都会很棒,因为我仍在学习。

类(class).php

<table id="lessons" class="table-hover">
<thead>
<tr>
<th>Lesson ID</th>
<th>Lesson Name</th>
<th></th>
</tr>
</thead>
<tbody>
<?php
while($row=mysqli_fetch_array($result)){
echo '<tr id="'. $row['lesson_id'].'">';
echo '<td>'. $row['lesson_id'] .'</td>';
echo '<td>'. $row['name'] .'</td>';
echo '<td><a class="delete">Delete</a></td>';
echo '</tr>';
}
?>
</tbody>
<div id="error"></div>
<script>
$(document).ready(function()
{
$('table#lessons td a.delete').click(function()
{
if (confirm("Are you sure you want to delete this row?"))
{
var id = $(this).parent().parent().attr('id');
var data = 'id=' + id ;
var parent = $(this).parent().parent();
//$('#error').html(data);
$.ajax(
{
type: "POST",
url: "delete_row.php",
data: data,
cache: false,

success: function()
{
parent.fadeOut('slow', function() {$(this).remove();});
}
});
}
});
});
</script>

删除行.php

<?php
include ('../../../config.php');
$con = mysqli_connect ($dbhost,$dbuser,$dbpass,$dbname);
if (!$con){
die('could not connect: '. mysqli_error($con));
}
$error = "";
$success = "";

if($_GET['id'])
{
$id = $_GET['id'];

mysqli_query($con,"DELETE FROM module_lessons WHERE lesson_id='$id'");
}
?>

很明显...这没有 SQL 注入(inject)保护。

最佳答案

$_GET['id']; 更改为 $_POST['id'];

在这里,您正在执行一个 POST 请求:

type: "POST",
url: "delete_row.php",

...但是在您的 PHP 脚本中您正在检查 GET

另外,如marc b请注意,您目前很容易受到 SQL 注入(inject)的攻击。考虑使用mysqli_real_escape_string ,或bind_param .

关于php - jQuery php 从 mysql 动态删除表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com