這段時間開始搞PHP了,第一次用SESSION,就遇到了這個問題,錯誤提示:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
於是上網找了一下,網上的高手們列出了各種解決辦法,這裏彙總一下:
1.php.ini中的output_buffering=off 改成output_buffering=4096
2.php.ini中的session.save_path是否設置好了
3.pgp.ini中的session.auto_start = 0 改成session.auto_start = 1
4.php代碼session_start() 前面不能有輸出,而且必須放在首行;在session_start()的php代碼之前的任何字符都被看作headers。
所以解決方法是:
將<? session_start();.......?>放到文件首,並且<? 前面不能有任何字符
但上述4種我都沒有成功,後來發現原來是我用UltraEdit-32的UTF-8另存爲了一下,因爲UTF-8文件頭有輸出,具體說明見下面,後來用新建過了一個文件把代碼複製一下就好了!
包括 Unicode 簽名 (BOM) 可在文檔中包括字節順序標記 (BOM)。BOM 是位於文本文件開頭的 2 到 4 個字節,可將文件標識爲 Unicode,如果是這樣,還標識後面字節的字節順序。由於 UTF-8 沒有字節順序,因此可以選擇添加 UTF-8 BOM。對於 UTF-16 和 UTF-32,這是必需的。