Cannot modify header information的解決方法

很多人在架設WordPress時,常常換用新佈景或是一開始安裝時常常會碰到一個錯誤訊息「Cannot modify header information – headers already sent by」,通常遇到問題別擔心,Google一下會有很多答案的,這問題其實發生再轉向時,緩衝區出了些問題,只要開啟一下系統設定調整一下,就可以解決這個問題了。

其實這篇的解決方法很久以前就想寫了,不過一直存在草稿區,剛剛看了一下已經截取好的圖,上面網址還是舊網址的浮水印呢!不過有修正成新的就是了XD。最近在寫畢業專題的網頁系統時,也是遇到了「Cannot modify header information」的問題,當然之前也有遇過這問題。通常會出現在網頁轉向時,採用「header」函式,才造成這個緩衝區的錯誤訊息。

Cannot modify header information的解決方法

這個問題全句警告訊息是:

Warning: Cannot modify header information – headers already sent by

其實解決方法很簡單,只要調整一下php.ini內的設定值就可以正常了,換句話說,就是系統本身有個設定值預設是未開啟,只要我們將他開啟就可以了。所以找到系統設定檔「php.ini」,建議使用「Notepad++」開啟,找到「output_buffering」並將他後面的值設定為「On」(啟動),當然也可以設定成「4096」或更高的數值(設定緩衝區大小),然後儲存並重新啟動Apache就可以了。

Cannot modify header information的解決方法

如果你是使用虛擬主機而遇到這樣的問題,建議可以先詢問主機商是否可以啟動這項函數?或者是說看可否透過.htaccess來調整這項設定數值(有些虛擬主機可以這樣調整)。另外,官方有另外一種是透過PHP函式「ob_start()」來解決,就是加在出問題的檔案語法前面,在結束的地方加上「ob_end_flush()」就可以了。您可以參考「剖析PHP中的輸出緩衝」這篇文章,裡面算講的蠻詳細的。

在Google News上追蹤我們最新文章
香腸
香腸

喜歡在網路上透過文字與圖片分文章教學,默默地用鍵盤烤了9年的香腸。另外還身兼阿腸接案餬口飯吃。對了,別叫我阿腸,請叫我香腸,這樣我才知道你看我部落格長大的。

文章: 1781

15 則留言

  1. 大大您好!!

    文內有題到VM虛擬機發生後解決方法,請否能夠講得更詳細點呢?

    我這幾天遇到這個問題始終無法解決,不知道是不是用虛擬機就不能成功解決header的問題呢?

  2. 我發現這種錯誤其實是….

    在開始使用Wordpress之初,我經常在wp-admin/install.php這個“著名的五分鐘安裝現場”之後,發現他明明已經提示沒有問題,已經安裝好了,自己的WP管理後臺上頭卻會出現類似這樣的“亂碼提示”(錯誤提示):

    Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\w\wp-config.php:1)

    那個時候花了好長時間折騰不出原因,後來只是因為換了不同版本的Wordpress安裝包,就沒問題了,但一直不知其所以然。

    現在我可以告訴你,這個問題,實在是太簡單了,如果你現在出現了這個問題,請看下去吧,相信五分鐘以內你的問題可以得到解決!

    好,現在你看一下自己上面的錯誤提示,應該有這一行:

    (output started at C:\xampp\htdocs\w\wp-config.php:1)

    at後面列出來的文檔就是關鍵所在,那你就在FTP上下載這個文檔到本地開始修改吧!

    現在你可以打開這個文檔,一般來說就是wp-config.php,當你打開這個文檔,直接點另存為就可以了,然後你看看編碼那裡,選擇為ANSI之後點保存試試,當你把修改好的文檔重新上傳之後,刷新一下,是不是錯誤提示就沒有了!

    如果還有錯誤提示,照上面的步驟進行,把錯誤提示提及到的文檔都修改一遍吧,如果還有什麼問題,留言吧,或許我會有興趣跟你一起研究問題出在哪里。

    轉載自http://poshi.org/post/401.html

    PS我自己是裝在http://www.com.nu免費空間,最後不是放在public_html,而是直接放在www文件夾底下。
    …最後用我找到的這個方法一改就正常了…真是無言…

    香腸回應:
    哈哈,謝謝您的分享~

  3. 我發現這種錯誤其實是….

    在開始使用Wordpress之初,我經常在wp-admin/install.php這個“著名的五分鐘安裝現場”之後,發現他明明已經提示沒有問題,已經安裝好了,自己的WP管理後臺上頭卻會出現類似這樣的“亂碼提示”(錯誤提示):

    Warning: Cannot modify header information – headers already sent by (output started at C:xampphtdocswwp-config.php:1)

    那個時候花了好長時間折騰不出原因,後來只是因為換了不同版本的Wordpress安裝包,就沒問題了,但一直不知其所以然。

    現在我可以告訴你,這個問題,實在是太簡單了,如果你現在出現了這個問題,請看下去吧,相信五分鐘以內你的問題可以得到解決!

    好,現在你看一下自己上面的錯誤提示,應該有這一行:

    (output started at C:xampphtdocswwp-config.php:1)

    at後面列出來的文檔就是關鍵所在,那你就在FTP上下載這個文檔到本地開始修改吧!

    現在你可以打開這個文檔,一般來說就是wp-config.php,當你打開這個文檔,直接點另存為就可以了,然後你看看編碼那裡,選擇為ANSI之後點保存試試,當你把修改好的文檔重新上傳之後,刷新一下,是不是錯誤提示就沒有了!

    如果還有錯誤提示,照上面的步驟進行,把錯誤提示提及到的文檔都修改一遍吧,如果還有什麼問題,留言吧,或許我會有興趣跟你一起研究問題出在哪里。

    轉載自http://poshi.org/post/401.html

    PS我自己是裝在http://www.com.nu免費空間,最後不是放在public_html,而是直接放在www文件夾底下。
    …最後用我找到的這個方法一改就正常了…真是無言…

  4. 可以請問一下php.ini要去哪裡找??
    謝謝

    香腸回應:
    阿帕契下面,如果用免空請聯絡主機商看看有沒有辦法自己透過.htaccess調整

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料