国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

解決Warning: Cannot modify header information - headers alrea

2024-09-07 00:51:26
字體:
供稿:網(wǎng)友

下面是我自己面臨的問題,我不是去測試函數(shù)遇到的,我是在換服務器的時候遇到的(由VPS轉(zhuǎn)到hostgator),然后換主題激活時遇到這個問題的,才開始一直以為是wordpress4.0的兼容性問題,去試驗3.9版本的問題依舊,所以試著用互聯(lián)網(wǎng)上各種文章解決,不幸的是試驗了很多帖子的方法,都失敗了,最后仔細嘗試每一個不同的方法才得以成功,最后得出是空白行和編碼問題,在此也希望把這個帖子和問題描述更加詳細一點,希望節(jié)省大家的時間.

下面原理介紹有點深奧可以略過,本人自己也看不懂就知道是那么回事.

近幾天在測試有關(guān)跨域名cookies存儲問題,在某個php測試頁面里的header函數(shù)一直遭遇:Warning: Cannot modify header information – headers already sent by錯誤提示。

為了解決該問題,翻山越嶺地用google查詢了相關(guān)資料,造成該問題的原因是:函數(shù) header(),setcookie() 和 session 函數(shù)需要在輸出流中增加頭信息。但是頭信息只能在其它任何輸出內(nèi)容之前發(fā)送。在使用這些函數(shù)前不能有任何(如 HTML)的輸出。函數(shù) headers_sent() 能夠檢查您的腳本是否已經(jīng)發(fā)送了頭信息。

來繼續(xù)了解下原理:PHP腳本開始執(zhí)行時,它可以同時發(fā)送header(標題)信息和主體信息。 Header信息(來自 header() 或 SetCookie() 函數(shù))并不會立即發(fā)送,相反,它被保存到一個列表中。 這樣就可以允許你修改標題信息,包括缺省的標題(例如 Content-Type 標題)。但是,一旦腳本發(fā)送了任何非標題的輸出(例如,使用 HTML 或 print() 調(diào)用),那么PHP就必須先發(fā)送完所有的Header,然后終止 HTTP header。而后繼續(xù)發(fā)送主體數(shù)據(jù)。從這時開始,任何添加或修改Header信息的試圖都是不允許的,并會發(fā)送上述的錯誤消息之一。

解決方案如下(須保證出錯函數(shù)之前沒有任何輸出):

1、如果說這條僅僅只是錯誤提示,并不影響你程序正常運作,那么只需要“屏蔽”它即可。在頁面頂部的php標簽中加入ob_start();,在返回的信息下面加入ob_end_flush();,這樣就可以屏蔽錯誤信息。

... HTML codes ...//開源軟件:Vevb.com

2、反之要徹底解決,正冰是通過Notepad++先建立一個空白頁面,然后將編碼設置為Encode in UTF-8 without BOM,然后將出問題頁面代碼復制進去保存為一個新頁面即可。

因為所測試的頁面還有一個setcookie函數(shù),這個也會導致這樣的問題出現(xiàn),簡單摘錄如下:cookie本身在使用上有一些限制,例如:

呼叫setcookie的敘述必須放在標簽之前

呼叫setcookie之前,不可使用echo

直到網(wǎng)頁被重新載入后,cookie才會在程式中出現(xiàn)

setcookie函數(shù)必須在任何資料輸出至瀏覽器前,就先送出.

解決方法就是在程序開始用ob_start();這個函數(shù).

3、如果問題出現(xiàn)在function文件里面,第一行一般是編碼的問題用2的方法解決,如果是出現(xiàn)在其他行一般是空白行引起的,找到文件所在行刪除即可,還不行的話直接用2的方法.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 滁州市| 洛阳市| 山东省| 洪洞县| 西吉县| 凤阳县| 南皮县| 无极县| 青川县| 诸城市| 紫阳县| 宝山区| 阳东县| 呈贡县| 板桥市| 辛集市| 苏尼特右旗| 北流市| 淄博市| 抚州市| 汪清县| 平远县| 德州市| 邵东县| 浮梁县| 新和县| 靖安县| 云安县| 天等县| 镇安县| 宁晋县| 青川县| 绥江县| 乡城县| 科技| 象州县| 抚顺市| 荣昌县| 盖州市| 当涂县| 曲松县|