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

php header()在localhost中工作,但在live server上不工作?,php,header,location,Php,Header,Location,我使用上面的代码进行测试,每次我用这些代码刷新页面时,它都会正确地回显示例文本“result1”或“result2”,但它不像在本地主机服务器上那样重定向到enter-work.php或类似的-work.php。在我的localhost服务器上,我甚至可以将它链接到在线网站(例如google.com)。我在编写html之前输入了上面的代码——甚至在声明doctype之前 不确定是什么导致了问题,需要一些帮助 编辑:正如Pekka在他的评论(关于所选答案)中提到的,问题是header()函数之前有

我使用上面的代码进行测试,每次我用这些代码刷新页面时,它都会正确地回显示例文本“result1”或“result2”,但它不像在本地主机服务器上那样重定向到enter-work.php或类似的-work.php。在我的localhost服务器上,我甚至可以将它链接到在线网站(例如google.com)。我在编写html之前输入了上面的代码——甚至在声明doctype之前

不确定是什么导致了问题,需要一些帮助


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

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

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


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

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

第二:
header()
应该可以与其他内容(如echo“”等)一起使用


最后:如果您尝试了simple
header()
code,但问题仍未解决,请与您的主机提供商联系。

您能更具体一点吗?你有什么错误?在我的本地主机上,它也可以工作。我没有收到任何错误,比如“header not defined”。它只输出'result1'或'result2',然后是一个空白页,因为我刚刚使用了die()函数。header()函数之前也没有其他print()函数。它不起作用。我还尝试将doctype和开头的header标记放在我的header()函数之前,但这也不起作用。这很奇怪。你能试试绝对URL吗?(http://...)但是大多数浏览器都应该接受它而不使用它,这也不起作用,您能告诉我在输出缓冲设置中要更改什么吗?我是新手。@Qlidnaque尝试一个完全空的PHP脚本,并将
头()
放在第一行。这行吗?@Qlid我想你在标题前输出了一些东西-可能在某处有一些空白?
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();
}