2013年2月18日 星期一

session_start的bug可能性

在各個網頁上,很常會用到的一個php函數,session 列出目前所碰到的狀況

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

 網頁出現這種狀況,可能可以解決的狀況如下 
1. session_start(); 以上這段程式碼,必須放在程式的第一行,連空格都不行。

2. BOM(Byte Order Mark)的問題 解決方式: 在存檔的時後,若是用DW(Dreamweaver),在存檔時將【包含 Unicode 簽名 (BOM)】給取消掉

3. session 的使用必須有幾個要素

(1) /etc/php.ini 的設定 session.save_path = "/tmp" session.auto_start = 0 (或1)
(2) 在 php 程式中 如果 session.auto_start = 0 則必須先執行 session_start() 如果 session.auto_start = 1 就不必執行 session_start()
(3) 第一次使用 session 變數時, 先執行 session_register('變數名稱') 註冊變數 之後即可以使用 $_SESSION['變數名稱']

 4.php.ini的設定 output_buffering預設為OFF,將之設定為ON

沒有留言 :

張貼留言