PHP会话错误

时间:2011-02-17 07:22:50

标签: php html session

我是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变量?

3 个答案:

答案 0 :(得分:6)

已经发送好的标头意味着在调用session_start()之前已经打印了一些内容。通常的罪魁祸首是在您错过的<?php之前的任何空格,或者如果您包含了任何文件,请确保在最终版本之后没有空格?>在那些包含的文件中。

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

答案 1 :(得分:2)

必须在任何输出之前调用session_start - 通过在doctype之前输入(firt行将使用php代码)或在任何输出之前调用ob_start来确保这一点

答案 2 :(得分:1)

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