PHP header()不起作用

时间:2011-08-24 16:50:21

标签: php redirect header location

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

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

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

它写道:

died.

:(((

它必须在它死之前重定向,但它不会。

你有什么想法吗?

8 个答案:

答案 0 :(得分:10)

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

换句话说,在向用户显示任何内容之前,您的header()代码需要位于脚本的开头。如果仍然无效,请确保在php标签之外没有任何空格或其他空格。

答案 1 :(得分:3)

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

此外,位置标题应包含绝对网址:

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

答案 2 :(得分:2)

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

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

此外,请确保在设置标头之前没有发送其他内容,否则不会发送,因为标头已经发送到浏览器。

答案 3 :(得分:0)

location:应为Location:

...而且

  • 滚动到此页面顶部。
  • 点击您的帐户名称。
  • 点击随机问题
  • 勾选随机答案
  • 回来找回更多的系列答案
祝你好运。

答案 4 :(得分:0)

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

所有这一切的解决方案都得到了Floem的回答,感谢这个出色的设置。

如果你曾经把error_reporting(E_ALL)放进去,你就不会收到错误, - > 您必须另外添加 ini_set('display_errors', 'On'),以强制PHP显示您的所有错误。这解决了

上的错误问题

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

答案 5 :(得分:0)

只需在php标记之前删除所有内容即可解决此问题。

删除php标记之前的空格

在标签前选择全部,然后按下清除按钮。

答案 6 :(得分:0)

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

所示

答案 7 :(得分:0)

添加

ob_start();

header("location: test.php");