PHP header()在本地主机上工作,但不能在实时服务器上工作


php header() working in localhost but not working on live server?

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或类似的工作。php就像它在我的本地主机服务器。在我的本地主机服务器上,我甚至可以将其链接到在线网站(即。google.com)。我在编写html之前输入了上面的代码——甚至在声明doctype之前。

不知道是什么原因引起的问题,需要一些帮助。

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

发送头信息前不能输出任何内容。

如果您这样做,本地服务器和活动服务器的行为不同,可能是因为不同的输出缓冲设置。

无论如何,它应该工作,如果你删除回声

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

第二:header ()应该工作,甚至与其他内容,如echo "等…

最后:如果您尝试了简单的header()代码,问题仍然没有解决,请联系您的主机提供商。

相关文章: