我是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 :(得分:6)
已经发送好的标头意味着在调用session_start()之前已经打印了一些内容。通常的罪魁祸首是在您错过的<?php之前的任何空格,或者如果您包含了任何文件,请确保在最终版本之后没有空格?>在那些包含的文件中。
对于第二个问题,您可以像平常一样访问另一个php文件(位于同一服务器上)中的$ _SESSION变量。只需调用session_start()并使用$ _SESSION数组。
答案 1 :(得分:2)
必须在任何输出之前调用session_start - 通过在doctype之前输入(firt行将使用php代码)或在任何输出之前调用ob_start来确保这一点
答案 2 :(得分:1)
将session_start()放在代码的最开头。如果您将session_start()用于包含文件,请务必将其包含在代码的第一行。