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


配置php網站的時候,經常會在頁首出現Warning: session_start() [function.session-start]: Cannot send session cache limiter,也不影響頁面打開。

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\orther object\phptest\session.php:1) in D:\orther object\phptest\session.php on line 2

1. 如果用dreamwever的話並使用utf-8編碼,請在某個頁面上右鍵==>頁面屬性==>標題/編碼,就會看到一個“包括Unicode 簽名(BOM)(S)”的復選框,把它取消即可。這是因為utf-8編碼文件含有的bom原因,而php4,5都是不支持bom的。

2. 修改php.ini中的session.auto_start = 0 為 session.auto_start = 1

3. 還有一種方法直接給session_start()加上@session_start()就沒事了。

4. 該信息說明在啟用session的時候,已經有內容輸出,可在最上面加 ob_start()。

   ob是output buffering的簡稱,ob用對了,能加速網頁的速度,但是盲目的加上ob函數,只會增加CPU額外的負擔。ob的基本作用。
    1).防止在瀏覽器有輸出之后再使用setcookie,或者header,session_start函數造成的錯誤。

    2).捕捉對一些不可獲取的函數的輸出,比如phpinfo會輸出一大堆的HTML,但是我們無法用一個變量例如$info=phpinfo();來捕捉,這時候ob就管用了。

    3).對輸出的內容進行處理,例如進行gzip壓縮,例如進行簡繁轉換,例如進行一些字符串替換。

    4).生成靜態文件,其實就是捕捉整頁的輸出,然后存成文件,經常在生成HTML,或者整頁緩存中使用。

5.  在PHP文件頭部直接加下屏蔽警告錯誤的代碼:
    PHP代碼

    <?php  

       //如有session_star(),放在session_star()后面  

       error_reporting(E_ERROR);  

       ini_set("display_errors","Off");  

       //你的php代碼  

    ?>  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM