解決session cache limiter錯誤

2013-12-25
Warning: session_start() [function.session-start]:
Cannot send session cache limiter – headers already sent

解決方法
1、將出錯檔案轉換為 UTF-8 編碼無 BOM 格式(我一般是用 Notepad++ 來轉)
2、以 ob_start() 開啟緩衝區將輸出資訊寫入緩衝區,可避免 headers 先於 session_start() 輸出

<?php
ob_start();
echo "test";
session_start();
ob_end_flush();
?>

3、修改 php.ini 中的 session.auto_start = 0 為 session.auto_start = 1
因為我使用的是 GoDaddy 主機來測試
設置好後把 localhost 的 php.ini 上傳到 Godaddy 根目錄就可以了

以上方法其實未必需要全用…
在 localhost 基本上只要有 ob_start 就 OK
不過為適應各種不同 server 環境,我全用掉才把問題解決。

 

第二種解決方式:

重新存一遍檔案,確定為UTF8編碼,且無 BOM 格式即可。

Contact

Github

Codepen

歡迎參觀我的賣場
© 2013 Copyright Digishot Web | Design Tools
Visitors【633641】
digishot webdesign studio