gpt4 book ai didi

php - mysqli DELETE ahref 无法运行

转载 作者:搜寻专家 更新时间:2023-10-31 21:15:09 25 4
gpt4 key购买 nike

我在所有 $rows 旁边列出了一个删除链接,当我将鼠标悬停在它们上面时,它们会反射(reflect)正确的删除 ID,但是,当我单击 DELETE 时,我会被重定向到 phpfile.php?id=4,例如,没有删除任何内容,也没有发布任何错误。

while ($row = mysqli_fetch_array($r,MYSQLI_ASSOC))
{
echo '<tr><td align="left">' .
$row['title'] . '</td><td align="left">'
. $row['genre'] . '</td><td align="left">'
. $row['length'] . '</td><td align="left">'
. $row['created'] . '</td><td align="left">'
. $row['views'] . '</td><td align="left">'
. "<a href='newwriter_profile.php?id={$row['upload_id']}'>Delete</a></td>" . '</tr>';
}
echo '</table>'; // Close the table

代码的其余部分,存在于同一页面上:

if(isset($_GET['id'])) {
// Get the ID
$id = intval($_GET['upload_id']);


require_once ('../mysqli_connect.php'); //Connect to the db




$delquery = "
DELETE
FROM upload
WHERE upload_id = {$id}";
$done = @mysqli_query ($dbc, $delquery); // Run the query

if($done) {
// Make sure the result is valid
if (mysqli_num_rows($done)==1) {
echo 'Record Deleted';
}
else {
echo 'error - delete failed';
}

// Free the mysqli resources
@mysqli_free_result($result);
}
else {
echo "Error! Query failed:" .$mysqli_error($dbc);
}
mysqli_free_result($done);
mysqli_close($dbc);
}

如果我能解决这个错误,我会解决一个类似的错误,除了下载功能。

最佳答案

当您打算使用 $_GET['id']< 时,您正在从不存在的 $_GET['upload_id'] 中提取 $id/。由于 $_GET['upload_id'] 未设置,其值为 NULL,被解释为 0。您的查询最终为:DELETE FROM upload WHERE upload_id = 0

$id = intval($_GET['upload_id']);
// Should be
$id = intval($_GET['id']);

我建议不要使用 intval(),而是对 $id 使用更广泛的边界检查。例如,如果在 ?id=abc 中传递了类似 "abc" 的字符串,intval("abc") 会将其转换为 0并且您会将 0 传递到您的查询中。如果 id 需要是正整数,请使用类似:

if (ctype_digit($_GET['id'])) {
// ok, do your query
}
else {
// invalid input, report error to user and don't touch your database.
}

最后,我们看不到您脚本的其余部分,但在使用超链接执行删除操作(或与此相关的任何操作)时,检查所有权通常至关重要您在完成操作之前尝试删除的行。确保登录用户具有删除该行的权限,如果没有,则不要执行任何数据库操作。否则,任何用户都可以将任何值传递到 URL 以修改其他人的数据。推荐阅读:The Spider of Doom

关于php - mysqli DELETE ahref 无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10544496/

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