Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at .... ) 發生原因 session_start() 之前不能有任何字元輸出,UTF-8 編碼裡的 BOM 也會被認為是 headers,有上述狀況 Session 將無法順利傳遞,並會顯示錯誤訊息。 解決方法1 1. 確定 <?php 和 session_start() 之間沒有其他字元,空格也要移除。 2. 若是 UTF-8 編碼,請用編輯器(例 UltraEdit、Notepad++...)將檔案裡的 BOM 移除。 解決方法2 以 ob_start() 開啟緩衝區將輸出資訊寫入緩衝區,可避免 headers 先於 session_start() 輸出,寫入緩衝區的內容可由 flush() 或 ob_end_flush() 輸出至瀏覽器,以下範例不會顯示錯誤訊息: <?php ob_start(); echo "test"; session_start(); ob_end_flush(); ?> 相關連結:PHP,Output Control Functions - Manual (感謝 YOGO 熱心提供) |
| 2008/04/18 02:36 |
Trackback Address :: http://blog.raienet.com/trackback/406
