2017-04-27 48 views
0
<?php 
if(session_id() == '' || !isset($_SESSION)) 
session_start(); 
?> 

我在我的所有網頁中都有這行代碼......它位於我的腳本的最頂端..但不幸的是,我的某個人遇到了一個錯誤腳本,但其他網頁沒有得到錯誤...我試圖搜索它,但他們說,它需要在HTML之前的腳本的頂部..只是我做了...但我沒有任何想法爲什麼即時消息得到錯誤在我的網頁之一..我發現這個錯誤,當我開始上傳到我的cPanel服務器..但在我的本地服務器上,它的完全工作..
這是警告消息,我得到了......當我試圖刪除這在我的腳本之一,這給了我的錯誤信息我的網頁不能正常工作如何避免會話啓動時出現錯誤

警告:在session_start():不能發送會話緩存限制器 - 頭已經發出已

+1

將'session_start()'放置在頂部。檢查會話變量是否設置。 – marmeladze

+0

或者這個,[檢查PHP會話是否已經開始](http://stackoverflow.com/questions/6249707/check-if-php-session-has-already-started)。 – Qirel

+0

導致這種情況的典型原因是'<?php'標記之前的任何空格。請注意[零寬度空間](https://en.wikipedia.org/wiki/Zero-width_space) –

回答

0

發帖爲asnwer按the comment made by OP

如果在調用session_start()之前有輸出,就會發生這種情況。最典型的罪魁禍首是<?php標籤之前的空間(或任何字符)(也請注意zero-width space字符)。

0

的session_start()函數必須是第一個

<?php 
session_start(); 
if(session_id() == '' || !isset($_SESSION)) 
?> 
+1

*「session_start()函數必須是第一個一個「*不是真的。 OP正在檢查會話在啓動之前尚未啓動。在session_start()之前有一個'if()'條件,只要在它之前沒有發送頭部就可以。 –

+0

我嘗試過但沒有任何反應,但我得到了錯誤信息...在我的服務器上... –

相關問題