PHP会话代码在两台服务器上的工作方式不同

PHP会话代码在两台服务器上的工作方式不同,php,session,Php,Session,我有一些代码可以在一台服务器上正常工作,但会发出会话头警告: 警告:会话启动()[function.session start]:无法发送会话缓存限制器-已发送头 另一方面 我已经检查了两台服务器上的php.ini设置,它们是相同的 我知道警告消息应该表明在会话开始之前已经输出了一些东西,但我不明白的是,为什么相同的代码在一台服务器上工作,而在另一台服务器上不工作 除了php.ini设置之外,还有什么可以解释的吗?可能是在将文件传输到第二台服务器时,您在其中一个文件的末尾引入了空行 我已经检查了

我有一些代码可以在一台服务器上正常工作,但会发出会话头警告:

警告:会话启动()[function.session start]:无法发送会话缓存限制器-已发送头

另一方面

我已经检查了两台服务器上的php.ini设置,它们是相同的

我知道警告消息应该表明在会话开始之前已经输出了一些东西,但我不明白的是,为什么相同的代码在一台服务器上工作,而在另一台服务器上不工作


除了php.ini设置之外,还有什么可以解释的吗?

可能是在将文件传输到第二台服务器时,您在其中一个文件的末尾引入了空行

我已经检查了上的php.ini设置 这两个服务器是 一模一样


我认为您错了,其中一个服务器已打开缓冲。

您是否也检查了web服务器的配置?php指令可以在Apache的httpd.conf和.htaccess文件中设置,即使主php.ini文件相同,最终也会有差异


您应该做的是比较两台服务器上的输出。如果在服务器配置上有任何差异,就会显示出来。

可能在传输过程中某个文件的开头出现了一些不可见的字符,或者无论什么情况,都会显示确切的错误消息。itIt中有一些重要信息,最好避免比较php.ini文件。相反,比较
php_info()
Mike-我比较的是php_info的输出,但鉴于这只是php.ini的一个更容易阅读的版本,我不确定它的优势是什么。好的,让我澄清一下。我检查了php.ini中的“会话”设置,它们是相同的。你是对的,如果我将缓冲设置为On,问题就会消失。这样做的更广泛后果是什么?Thanks@william唯一的结果是,您编写了一个无结构、杂乱无章的意大利面代码。在正确规划的代码中,不可能在HTML输出启动后发送HTTP头。