php header()在localhost中工作但不在live server上工作?

时间:2011-10-26 21:10:56

标签: php header location

if ($num_rows == 0 && $num_rows2 == 0) {
    echo 'result1';
    header('Location:enter-work.php');
    die();
} else if ($num_rows >= 0 || $num_rows2 >= 0) {
    echo 'result2';
    header('Location:similar-work.php');
    die();
}

我有上面的代码,我正在测试,并且每次使用此代码刷新页面时,它都会正确地回显示例文本'result1'或'result2',但它不会重定向到enter-work。 php或类似work.php就像在我的localhost服务器上一样。在我的本地主机服务器上,我甚至可以将其链接到在线网站(即google.com)。我在编写任何html之前就输入了上面的代码 - 所以甚至在声明了doctype之前。

不确定导致问题的原因,需要一些帮助。

编辑:正如Pekka在他的评论中所提到的(在选定的答案上)问题是我在header()函数之前有回声和空格。

2 个答案:

答案 0 :(得分:8)

在发送标题之前,您不得输出任何内容。

如果您这样做,本地和实时服务器的行为会有所不同,可能是因为output buffering设置不同。

无论如何,如果你移除了回声,它应该可以工作。

答案 1 :(得分:0)

对于任何一个仍面临同样问题: 首先尝试header()中的简单yourfile.php代码,如果问题解决了,则删除任何其他内容,这意味着旧代码中的问题。

第二:header ()应该可以使用其他内容,例如echo""等...

最后:如果您尝试了简单的header()代码,但问题仍未解决,请与您的托管服务提供商联系。