【问题标题】:PHP header() does not workPHP header() 不起作用
【发布时间】:2011-11-03 00:02:22
【问题描述】:

有人知道为什么我的 header() 没有重定向吗?

我的脚本的最后一部分是:

  header("location: test.php");
  die('died');

它写道:

died.

:(((

它应该在它死之前必须重定向,但它没有。

你有什么想法吗?

【问题讨论】:

  • 我该怎么做?只需点击反馈是或否?
  • 在 PHP 中开启 error_reporting、error_level 等。您很可能会收到“无法发送标头 - 输出已在第 XXX 行开始”错误。
  • @mario 这不是投票的目的。既然你喜欢链接到常见问题,这里也给你一个...Downvoting should be reserved for extreme cases. It's not meant as a substitute for communication and editing.哦,我会删除我的答案,这实际上帮助他解决了他的问题,但违反了标准。
  • @mario 然后为海报发表评论以扩展更多内容......我们不是在这里让初学者对发布问题感到不舒服。您认为每个人都天生就知道“标头已发送”问题吗?如果有不清楚的地方,请询问更多细节,让他们参与进来,不要只是开始投反对票。

标签: php redirect header location


【解决方案1】:

可能是您在向浏览器输出一些文本/HTML 之后调用了 header(),这是一个禁忌。如果在调用之前发送了一个空格的输出,您的 header() 调用将被忽略。

换句话说,您的 header() 代码需要位于脚本的开头,然后才能向用户显示 anything。如果这仍然不起作用,请确保您的 php 标签之外没有任何空格或其他空格。

【讨论】:

    【解决方案2】:

    可能在header 之前有一些不可见的输出,这会阻止设置header,并且会抑制信息警告。

    另外,Location-Headers 应该包含一个绝对 URL:

    // Show Errors
    error_reporting(E_ALL);
    ini_set('display_errors','On');
    // Redirect
    header('Location: http://example.com/path/test.php');
    die('redirect');
    

    【讨论】:

      【解决方案3】:

      您应该为您的位置标头使用完全限定的地址,并且输出任何内容:

      header('Location: http://example.com/test.php');
      die();
      

      另外确保在设置header之前没有发送其他内容,否则不会发送,因为headers已经发送到浏览器了。

      【讨论】:

        【解决方案4】:

        location: 应该是Location:

        此外...

        • 滚动到本页顶部。
        • 点击您的帐户名。
        • 点击随机问题
        • 勾选随机答案
        • 回来寻找更多严肃的答案

        祝你好运。

        【讨论】:

        • 亲爱的 MattK,当您长时间编写代码并创建了很长时间的代码,并且您的代码在演示之前和偏离课程之前,错误报告已关闭,并且 f.. 标头不会通过 f... 回显空字符串进行重定向... 在这种情况下您会做什么?
        【解决方案5】:

        只需删除 php 标记之前的所有内容即可解决。

        去掉php标签前的空格

        选择标记前的所有内容,然后按擦除按钮。

        【讨论】:

          【解决方案6】:

          我也遇到了这个错误,并尝试使用 error_reporting(E_ALL) 显示错误, 但这对我不起作用。信息:我在 Strato 上使用托管服务。

          Floem 回答了所有这些问题的解决方案,感谢您的出色设置。

          如果您输入error_reporting(E_ALL) 一次后没有出现错误, -> 您必须额外添加 ini_set('display_errors', 'On'),以强制 PHP 显示您的所有错误。这解决了我的错误问题

          然后就可以读出为什么 PHP 不会进行重定向。 我这边的一个提示:我建议你构建一个小的重定向类,如本视频所示:Redirect Class for easy use,如果你打算比平时更多地使用这个重定向。

          【讨论】:

            【解决方案7】:

            如果在 HTML 文件中直接/间接需要包含 'header()' 指令的文件,则指令 {include 'someFile'} 应该是该 HTML 文件的第一行。将此指令放在 HTML 文件的顶部,如 this image.

            所示

            【讨论】:

              【解决方案8】:

              添加

              ob_start();

              之前

              header("location: test.php");
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2016-09-11
                • 1970-01-01
                • 1970-01-01
                • 2016-01-03
                • 2017-03-29
                相关资源
                最近更新 更多