我现在已经在我网站的管理端工作了一段时间。我已经成功创建了一个添加页面,将项目添加到数据库mysql中的数据。但是当添加一个delete.php页面时它不能很好地工作。当我选择我不再需要的那个并单击删除按钮时,这个消息出来并且当我检查我的网站时它没有删除文章也没有错误。
这是我的delete.php编码
<?php
include ("dbase.php");
//Use method $_Get to retrieve data from url
$id=$_GET['id'];
mysql_query("DELETE FROM logbook WHERE id=$id");
echo mysql_error();
header('Location:delete.php');
?>
有人可以看到我出错的地方吗?如果您需要更多信息,请告诉我。 感谢。
答案 0 :(得分:1)
目前您加载delete.php
,从数据库中删除,然后重定向到delete.php
。当您重新加载delete.php
时,您将从数据库中删除,然后重定向到delete.php
。当你重新加载delete.php
时,你明白了。
这就是错误“Redirect Loop”的来源;它永远不会结束。尝试评论您的header()
来电或将位置更改为其他页面,例如deleted.php
。
答案 1 :(得分:1)
您需要检查$_GET['id']
是否存在。只有这样,您才能执行查询然后重定向。
if (!empty($_GET['id'])) {
mysql_query("DELETE FROM logbook WHERE id=$id");
header('Location:delete.php');
}
一旦delete.php
没有id
的查询字符串参数,它就不会重新加载并导致无限循环。
答案 2 :(得分:0)
您的代码存在逻辑严重的安全问题。 至少使用“mysqli”,PDO,预备语句。阅读并保护您的Web应用程序。
如果该代码在“delete.php”中,那么您应该重定向到其他地方或使用如下的逻辑。
<?php
if($_GET['id'])
{
include ("dbase.php");
//Use method $_Get to retrieve data from url
$id=addslashes($_GET['id']);
mysql_query("DELETE FROM logbook WHERE id=".mysql_real_escape_string($id).")" or die(mysql_error());
header('Location: delete.php');
}
?>