这是我的文件。我想让它重定向,但没有任何反应。要检查发生了什么,我在标题部分之前添加了一个回显。PHP标题位置重定向不起作用 - 为什么?
它既不会引发错误或重定向到index.php。哪里不对? 我已经打开/关闭输出缓冲,但没有使它重定向。我能做什么?
<?
error_reporting(E_ALL);
echo 'This is an error';
header("Location: login.php");
die();
?>
感谢
这是我的文件。我想让它重定向,但没有任何反应。要检查发生了什么,我在标题部分之前添加了一个回显。PHP标题位置重定向不起作用 - 为什么?
它既不会引发错误或重定向到index.php。哪里不对? 我已经打开/关闭输出缓冲,但没有使它重定向。我能做什么?
<?
error_reporting(E_ALL);
echo 'This is an error';
header("Location: login.php");
die();
?>
感谢
我提醒自己,我已经在实际的测试环境中安装了XDebug和谷歌上搜索之后,我发现这个网站:http://bugs.xdebug.org/view.php?id=532
所以我会下载xDebug的最新版本,并相应地更改了php.ini文件,所有内容都像魅力一样。标题正在发送 - 重定向完成并显示错误。
谢谢大家的帮助!
我知道这就是为什么我在header() - call之前做出回声。它在其他服务器上发生错误,应该这样做。为什么没有发生? – Industrial 2010-04-25 21:40:58
改变标题的替代方法是使用:'<?php echo“”?>' – 2012-11-10 23:19:23
之前您是否启用短标记? 与长标签<?php
尝试:
<?php
error_reporting(E_ALL);
header("Location: login.php");
die();
?>
是的,我确实有短标记设置启用,罚款,除了标题的东西... – Industrial 2010-04-25 22:16:50
是否启用了display_errors?
@Gumbo - 当然是!
好吧,它肯定不是。因为
要检查发生了什么,我在标题部分之前添加了一个回显。
如果您启用了display_errors,它将显示错误,至少在您turned output buffering on
时。
所以,首先确保你可以看到错误信息。
刚刚打印出一个未定义的变量,
error_reporting(E_ALL);
echo $undef9306;
我相信你不会看到它。 所以,你必须打开显示错误
接下来,在服务器端,您可以使用headers_sent()
函数来查看是否发送标头。在客户端使用HTTP嗅探器来查看是否发送了任何东西
然后检查文件的BOM。
嗨。恐怕不是。 Display_errors被启用,但它是xDebug导致这...感谢您的帮助上校! – Industrial 2010-04-26 15:09:35
是* display \ _errors *是否启用? – Gumbo 2010-04-25 21:39:29
@Gumbo - 当然是! – Industrial 2010-04-25 21:42:44
您提供的代码是否至少输出'这是一个错误'? – timdev 2010-04-25 21:48:01