有人知道为什么我的header()没有重定向吗?
我的脚本的最后一部分是:
header("location: test.php");
die('died');
它写道:
died.
:(((
它必须在它死之前重定向,但它不会。
你有什么想法吗?
答案 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");