2014-02-10 70 views
0

我意识到我的舞台服务器和本地主机之间存在不匹配。
我发送了两次头部的错误。不幸的是在我的本地一切工作正常,但在阶段服务器上,我得到一个正确的警告:
“警告:不能更改头信息 - 头已经发出” ......标题重定向,无法修改标题信息

这是对我的Apache的一些配置的调整?

舞台上GoDaddy的/ Linux上运行(?阿帕奇/版),PHP版本5.4.19
本地主机就是Apache/2.4.6,PHP 5.5.3-1ubuntu2.1

编辑:
一些示例代码,希望能够澄清...
在我的本地主机上,每次重定向页面都没有错误,输出文本“Page redirect done!”每次刷新都会显示。
在舞台上,此错误报告为“警告:无法修改标题信息 - 标题已经发送”,输出文本“页面重定向完成!”根本没有显示。

<?php 
ini_set("display_errors", true); 
error_reporting(E_ALL); 

if (!isset($_SESSION)) { 
    session_start(); 
} 
?> 
<html><body><h1>It works!</h1> 
</body></html> 
<?php 
if (isset($_SESSION['redirect'])) { 
    unset($_SESSION['redirect']); 
    echo "Page redirect done!<br><br>"; 
    echo "Session redirect is now unset, please update one more time to be sure!"; 
} else { 
    $_SESSION['redirect'] = "1"; 
    header("Location: index.php"); 
} 
?> 

谢谢!

+0

我找到了原因。我只是删除我的php.ini中的output_buffering,并获得与舞台服务器上相同的行为。关于在这个答案标题非常好的解释http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php/8028987#8028987 – volt

回答

0

在你的代码开头添加这...

ini_set("display_errors", true); 
error_reporting(E_ALL); 

,或者你手动修改php.ini自己哪个地方是位于服务器上。

+0

谢谢!这不是关于如何报告错误吗?我试过这个没有成功。在我的情况下,代码执行没有错误(页面完全重定向),日志文件中没有错误,也没有错误。我将用代码示例更新这个问题。 – volt