2017-02-22 85 views
-1

有一個奇怪的一個。我是個系統和登陸斷裂上工作時,我把它從開發服務器轉移到了活,給這個錯誤:會話配置PHP

[21-Feb-2017 16:55:40 Europe/London] PHP Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/xxx/public_html/olympus/index.php:12) in /home/xxx/public_html/olympus/classes/login.php on line 28

如果我移動會話它工作正常,直接啓動到該文件的頂部。但是,如果我感到困惑,它在開發服務器上沒有問題?

他們都是的cPanel服務器,開發服務器上唯一的主要區別是它的運行cloudlinux。 任何想法,如果任何PHP設置會造成這種情況?

+2

它說:「輸出開始於/home/xxx/public_html/olympus/index.php:12」 – nogad

+0

這些文件與開發服務器上的文件完全相同。哪些工作沒有問題。 – Jargen

+0

的檔案?你知道我們不能看到他們的權利? ? – nogad

回答

0

這意味着你調用session_start前的東西是寫輸出 - 它甚至告訴你

在哪裏(第12行/home/xxx/public_html/olympus/index.php)沒有看到該文件,它很難確切地知道什麼是outputing但比回聲/打印等明顯的輸出功能等的常見原因是你開的PHP代碼前換行/空格(或後您的結束標記 - 這是可選的,最好完全錯過在年底一個文件)

+0

這些文件與開發服務器上的文件完全相同。哪些工作沒有問題。 – Jargen

+0

您是否通過運行md5函數或其他方法驗證了這一點?它是一種常見的錯誤是假設他們沒有意識到的東西,同樣是不同的(行尾等),否則沒有看到至少index.php的(理想的login.php)的內容是很困難的幫助。 – Theo

+0

發現服務器之間的區別。輸出緩衝被設置爲關閉,將其更改爲4096已解決它。謝謝您的幫助。 – Jargen