标头在一台服务器上发送,但在另一台服务器上不发送

时间:2014-03-09 17:49:42

标签: php

我有两台服务器。一个开发服务器,我开发我的代码和一个实时服务器。

直播服务器
Apache 2.2.23
DirectAdmin 1.43.3
Exim 4.80.1
MySQL 5.1.66
命名为9.7.3
ProFTPd 1.3.4d
sshd的
dovecot 2.1.10
Php 5.2.17
SSL证书

开发服务器
Apache 2.2.26
DirectAdmin 1.44.3
Exim 4.82
MySQL 5.6.15
命名为9.8.2rc1
ProFTPd 1.3.4d
sshd的
dovecot 2.2.10
Php 5.2.17

我知道我的版本不是最新的,但是现在我没有机会更新它。

除了站点根目录和数据库设置(密码,用户名等)之外,我的网站代码在两台服务器上完全相同。我的实时服务器有SSL证书。

由于某些原因,在我的实时服务器上,当我想重定向时,我收到“无法修改标头信息 - 标头已发送”错误。我的开发服务器上根本没有发生此问题。

怎么会发生这种情况?可能有一些空白,但为什么这只发生在一台服务器上?

2 个答案:

答案 0 :(得分:0)

不要忽视错误,@ amnadiel - 你是一个非常糟糕的程序员。

坚持 IPO原则

  • 输入
  • 处理
  • 输出

http://en.wikipedia.org/wiki/IPO_Model

问题是,您在输出后处理了一些数据。

答案 1 :(得分:-1)

将php display_errors设置为Off以避免该消息。

之后,请检查您的php错误日志,以查看导致这些标头提前发送的任何通知或警告。看起来您的错误级别在生产中的容忍度较低,因此您触发了您在开发中看不到的通知或警告。

无论如何,你不应该在制作中显示错误,所以关闭它们总是一个好习惯。