2012-01-11 106 views
110

Possible Duplicate:
PHP headers already sent
Headers already sent by PHP「無法發送會話緩存限制器 - 已經發送了頭」

具有用變得非常惱人的會議的一個問題。每次我試圖將一個特定的頁面,我得到下面的錯誤上啓動一個會話:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at ............ on line 23 

使用此代碼:

<?php 
session_start(); 
if(isset($_SESSION['user'])) 
    { 
     $user = $_SESSION['user']; 
     echo "$user"; 
    } 
else 
    { 
    } 
?> 

難道是暗示我已經使用session_start();?我看了一下,但沒有真正清除了這一點對我來說。

感謝

+0

「(輸出從23行的...........開始」第23行的內容是什麼? – 2012-01-11 00:53:17

+0

第23行是上述代碼的'session_start();'位 – user1039878 2012-01-11 00:54:24

+2

在我的情況我不得不設置文件編碼沒有BOM。 – 2016-05-06 05:54:14

回答

211

「已經發送了頭」是指你的PHP腳本已經發出HTTP頭,因此現在不能進行修改它們。

檢查您是否在致電session_start之前不發送任何內容。更好的是,只需要在你的PHP文件中做第一件事就是session_start(所以把它放在絕對的開始,在所有的HTML之前)。

+13

把<?php session_start();?>以上所有和它的工作,謝謝!:) – user1039878 2012-01-11 00:57:58

+73

請允許我分享另一個見解。如果您使用PHP文檔,請確保<?php是第一個字符,而不是標籤或間隔。這解決了我的問題。 – bryansis2010 2013-02-17 11:21:53

+20

就我而言 - 我創建了新文檔,粘貼了內容並工作。問題是在包含的文件中包含了一個utf符號(bom)。 – 2014-06-25 15:19:19

相關問題