php session_start()報錯 解決辦法

 這段時間開始搞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,這是必需的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章