【问题标题】:PHP MySQL Redirect with header location [duplicate]带有标头位置的PHP MySQL重定向[重复]
【发布时间】:2015-11-10 19:13:05
【问题描述】:

我对 mysql 非常陌生,就像这个周末一样。我不知道如何使用 header() 进行重定向。我错过了什么?顺便说一句,这个页面是 test_db.php

<?php include("mysql_connect.php"); ?>
<?php
$sql = "SELECT * FROM budget ORDER BY id DESC";
$query = mysql_query($sql) or die (mysql_error());
if (isset($_GET['recordId'])) {
    $id = mysql_real_escape_string($_GET['recordId']);
    $sql_delete = "DELETE FROM budget WHERE id = {$id}";
    mysql_query($sql_delete) or die(mysql_error());

    header("Location: test_db.php");
    exit();
}

?>

...有问题的链接...

<a href="test_db.php?recordId=<?php echo $row['id']; ?>">Delete</a>

单击“删除”按钮后,它似乎进入了连接页面,并且重定向不起作用。 我可以连接,这段代码删除得很好,但我希望它留在同一页面上。

请帮忙,谢谢。

【问题讨论】:

  • 可能在标题之前输出。在这里,找出它是否是 php.net/manual/en/function.error-reporting.php 并将其应用于您的代码。
  • 这与刚接触 MySQL 有什么关系?事实上,您的 SQL 代码看起来不错,而且您实际上是 PHP 新手。为什么你有$sql 没有在任何地方调用的变量。
  • 您应该使用mysqliPDOmysql 已弃用。
  • 就像我说的。将错误报告添加到您的打开 PHP 标记之后的文件顶部,例如 &lt;?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,以查看它是否产生任何结果。如果弹出一个已经发送通知的标题,您就会知道该做什么并向我们展示这些结果。
  • 或您的查询失败。因此,如果可行,请输入else{ header },那么您可以追求另一件事。但是,直到您开始告诉我们您遇到了哪些错误,我们才会知道这一点,我们也不知道 mysql_connect.php 内部是什么,无论是 mysql_mysqli_ 还是 PDO,不知道。

标签: php mysql database redirect header


【解决方案1】:

在代码顶部的 PHP 结束标签和开始标签之间有一个换行符。这会创建输出。

<?php include("mysql_connect.php"); ?>
<?php

如果您将其更改为一个 PHP 部分,它应该可以工作。

<?php
include("mysql_connect.php");

【讨论】:

  • 是的,在那里结束 PHP 标记有什么意义?
【解决方案2】:

我认为问题是在所有 HTTP 标头都发送到浏览器之后您不能使用标头功能。如果您没有故意在标头函数之前向浏览器发送任何信息,请查看您是否在

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 2015-11-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    相关资源
    最近更新 更多