[PHP] 惱人的 Warning: Cannot add header information – headers already sent by ….

寫過 PHP 的人一定看過這個訊息..

Warning: Cannot add header information – headers already sent by ..


有空再解釋原理及發生的原因,一般可以用 PHP 的 ob 系列函數來處理,但是比較簡單的方式也可以用打開 PHP Output buffer 的方式來解決。

打開的方法:

方法1.在 php.ini 裡面找到 output_buffering ,並改為1。

方法2.由於虛擬主機不可能改 php.ini ,因此只要在自己網站的根目錄新增一個 .htaccess 的檔案,並且加入下面這一行:

PHP_FLAG output_buffering On

這個方法跟 apache 的 .htaccess AllowOverride 權限有關,所以如果用 phpinfo(); 看還是沒有的話,就要先在 .htaccess 裡面改為:

AllowOverride Options
PHP_FLAG output_buffering On

AllowOverride All
PHP_FLAG output_buffering On

這樣看看有沒有 HTTP 500 Error 的錯誤訊息,如果有的話,就可能要請主機商打開 .htaccess AllowOverride 了。

6 comments On [PHP] 惱人的 Warning: Cannot add header information – headers already sent by ….

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar