gpt4 book ai didi

php - 无法通过单击同一页面上的删除按钮从数据库中删除用户

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

我搜索了解决方案,但没有任何效果。

<?php

$result = mysql_query("SELECT username, EmailAddress FROM users", $connection);

echo "<form method='post'><table class='mecz' cellpadding='0' cellspacing='0' border='0'>
<tr>
<th>user names:</th>
<th>address e-mail</th>
<th></th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr align='center'>";
echo "<td>" . $row['username'] . "</td>";
echo "<td>" . $row['EmailAddress'] . "</td>";
echo "<td><input class='delete' type='submit' name='delete' value='usuń' /></td>";
echo "</tr>";
}
echo "</table></form>";

//这是我尝试从表单传递删除操作的部分

?>
<?php

if (($_POST['username'] != "") && (isset($_POST['delete'])))
{
$username = $_POST['username'];
$query = "DELETE FROM users WHERE username = '".$username."' AND '".$_POST['delete']."'";
$result = mysql_query($query,$connection);
echo mysql_error();
}

?>

我认为解决方案不是很复杂,但我找不到它,请帮忙。

谢谢,克里斯

最佳答案

  1. 您没有在发布的代码中发送用户名,因此未设置$_POST['username'],因此不会删除已执行。

  2. 即使您输入 if block ,您的删除查询也没有多大意义 - 应该 AND '".$_POST['delete'] ."' 做什么?这部分看起来很无意义。

  3. 您尝试制作一个包含多个提交按钮(每个用户一个)的表单。在服务器端,您无法确定按下了哪个提交按钮,因为整个表单作为一大堆数据发送。您需要每个用户一张表单,或者仅使用链接(a-元素)发送delete-和username-值(但请注意在后一种情况下,您将执行 GET 而不是 POST-requests)

  4. 您没有为表单指定操作 - 对于您的情况来说,这可能是问题,也可能不是问题,请参阅对此问题的各种评论以了解更多信息。

  5. 您的删除查询完全开放于 sql-injections 。请考虑使用prepared statements或至少mysql_real_escape_sting以避免这种情况。

这只是真正的问题点,它们会阻止您的代码完全工作或留下尴尬的安全漏洞。此外,有些事情只是不必要的或某种困惑(例如每次都调用 mysql_error ,而不是仅在查询失败时才这样做 - 但也许您只是为了调试而添加了它)。

总而言之,您似乎应该再次开始阅读一本好书或一些详细的教程,以刷新和扩展您对 php/mysql/html 的基本理解。

关于php - 无法通过单击同一页面上的删除按钮从数据库中删除用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469113/

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