2011-06-09 110 views
0

這是我收到的消息:在session_start警告在PHP

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/new/login.php:1) in /var/www/new/login.php on line 3 

而這完全相同的代碼:之前

<?php 
if(!isset($_SESSION)) 
    session_start(); 
ob_start(); 

不能有空格,什麼都沒有。這裏有什麼問題?

+4

雙重和三重檢查空間 - > 「輸出開始/var/www/new/login.php:1」< - – 2011-06-09 12:49:22

+2

我發現錯誤! output_buffering在php.ini中關閉!有人可以回答,所以我可以檢查有效嗎? – 2011-06-09 12:53:10

+1

你自己輸入答案,如果你發現問題,你應該得到信用。 – Nightwolf 2011-06-09 12:54:58

回答

4

您確定您的文件沒有以BOM格式保存在UTF-8中嗎?嘗試保存UTF-8無BOM

+1

BOM在那裏。我不確定是否是這種情況,或者是否是output_buffering。刪除並激活並正常工作! – 2011-06-09 12:56:24

+1

@Antonio如果有BOM,那麼就會導致問題。這是一個非常普遍的問題。 – kapa 2011-06-09 13:00:57

+1

顯然BOM unicode是問題的原因而不是輸出緩衝 – malko 2011-06-09 13:02:13

2

檢查您的文件中沒有設置BOM unicode,這是此類型的常見錯誤。 如果沒有BOM,那麼你有沒有通過htaccess或phpini自動包含的文件php_auto_prepend?

0

檢查您的php配置session.auto_start,如果啓用,您已經打開了會話。

或者試試這個:

if (empty(session_id())) { 
    session_start(); // if no active session we start a new one 
} 
相關問題