如果要在PHP中使用Session,通常第一個步驟就是啟用Session,也就是:
session_start();
但是用了之後很有可能會出現像這樣的錯誤訊息:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/codecrai/public_html/wiki/conf/dokuwiki.php:81) in /home/codecrai/public_html/wiki/inc/common.php on line 22
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/codecrai/public_html/wiki/conf/dokuwiki.php:81) in /home/codecrai/public_html/wiki/inc/common.php on line 22
這個問題的發生主要有兩種可能:
- 在session_start()之前有空格或空白斷行
- 把session_start()寫在<html>之後
這樣的設定既可讓網頁以UTF-8編碼呈現,又不會出現上述問題。


Comments (4)
這是因為PHP不認得BOM(byte order mark), 這也是現在讓我很那悶的事情, 不曉得php官方是怎麼看待這個的!! 唉~~
Posted by Calvin | January 14, 2007 10:51 PM
界面与程式的分离,可以很好的避免这个问题。因为不再需要用UTF-8格式来编辑程式。
Posted by zhaiduo | March 6, 2007 3:58 PM
微軟搞出來的BOM(byte order mark),應該由微軟去解決
Posted by cefc | February 22, 2008 3:58 PM
windows搞出來的BOM(byte order mark)應該由微軟去解決吧
Posted by cefc | February 22, 2008 3:59 PM