2011-02-17 78 views
1

我新的PHP会话,我遇到了以下错误:PHP会话错误

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at somefile:someline). 

除了这一个:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent by (output started at somefile:someline). 

session_start();是第一件事情在我所有的代码中。我不确定问题是什么。它给了我线路号码,但我在这些线路上做的所有事情都是开始会话。

此外 - 我有一部分代码的POST操作是另一个PHP页面。如何在该操作页面中设置与此页面有关的$ _SESSION变量?

+0

发布一些代码显示session_start()是代码中的第一件事。通常这个问题是由一个新的行字符引起的 – Jacob 2011-02-17 07:26:06

回答

6

好头已经发送之前调用ob_start意味着事情已经印刷在调用session_start()之前。通常的罪魁祸首是在你错过了<?php之前的任何空间,或者如果你已经包含了任何文件,请确保在包含文件的最后?>之后没有空格。

对于第二个问题,您可以像访问通常一样访问另一个php文件中的$ _SESSION变量(位于同一台服务器上)。只需调用session_start()并使用$ _SESSION数组。

2

在session_start必须在任何输出之前调用 - 确保这一点通过DOCTYPE之前投入(firt线将PHP代码与本),或通过任何输出

1

将session_start()放在代码的开头。如果您将session_start()用于包含文件,请确保将其包含在代码的第一行中。