2011-02-17 88 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()用於包含文件,請確保將其包含在代碼的第一行中。