2011-08-24 81 views
2

有人知道为什么我的header()不重定向吗?PHP header()不起作用

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

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

它写道:

died. 

:(((

应该有它死之前重定向,但它不会。

你有什么想法?

+0

之前,我该怎么办呢?只需点击是或否的反馈? – szatti1489

+2

在PHP中打开error_reporting,error_level等...。你很可能会得到一个“无法发送标题 - 输出已经开始在XXX行”的错误。 –

+1

@mario这不是什么downvotes的意思。因为你喜欢链接到常见问题解答,这里也有一个适合你的问题... [下调应该保留在极端情况下。这并不意味着它可以代替通信和编辑。](http://stackoverflow.com/privileges/vote-down)哦,我会删除我的答案,这实际上帮助他解决了他的问题,但违反了标准。 –

回答

9

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

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

2

你应该为你的位置标头使用完全合格的地址,输出任何内容:

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

而且确保没有其它内容被设定头之前发送的,否则它不会被作为头文件将被发送到浏览器。

3

也许在header之前有一些看不见的输出,它会阻止设置header,并且信息警告被抑制。

另外位置的头应该包含一个绝对URL:

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

location:应该是Location:

而且......

  • 滚动到该页面的顶部。
  • 点击您的帐户名称。
  • 点击随机问题
  • 勾随机答案
  • 回来找更多serieus回答

好运。

+0

亲爱的MattK,当你编写一个长长的小时和长长的代码创建,并且你的代码之前的演示文稿和课程错误报告被关闭,f ..头没有重定向通过一个f ...回显空字符串...你在这种情况下做什么? – szatti1489

0

我也被困在这个错误上,并试图用error_reporting(E_ALL), 显示错误,但这并不适用于我。信息:我在Strato上使用托管服务。

所有这一切的解决方案都由Floem解答,感谢这个伟大的设置。

如果你没有得到的情况下,错误你把error_reporting(E_ALL)一次, - >必须另加ini_set('display_errors', 'On'),迫使PHP来显示你所有的错误。这解决了我的错误问题

然后有可能读出,为什么PHP不会让你的重定向。 我的一个提示:我建议你建立一个小的重定向类,如本视频所示:Redirect Class for easy use,如果你打算使用这个重定向比平常更多。

0

只需通过删除php标签之前的所有东西来解决它。

php的标签之前删除空格

标签之前选择所有,然后按删除按钮。

0

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

0

添加

ob_start();

header("location: test.php");