溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么解決php header失效問題

發(fā)布時(shí)間:2021-10-20 11:42:19 來源:億速云 閱讀:386 作者:iii 欄目:編程語言

本篇內(nèi)容主要講解“怎么解決php header失效問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么解決php header失效問題”吧!

php header失效的解決辦法:1、取消location和“:”符號(hào)之間的空格;2、在用header前不能有任何的輸出;3、修改php.ini打開緩存,并將“output_buffering=0”修改成409。

怎么解決php header失效問題

本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版、DELL G3電腦

如何解決php header 失效問題?

PHP Header失效的原因分析及解決方法

在PHP中用header("location:test.php")進(jìn)行跳轉(zhuǎn)要注意以下幾點(diǎn):

1、location和“:”號(hào)間不能有空格,否則會(huì)出錯(cuò)。

2、在用header前不能有任何的輸出,包括include的頁面中標(biāo)簽“?>”后不能有空格?。?/p>

3、header后的PHP代碼還會(huì)被執(zhí)行。

續(xù):

問題:header函數(shù)前輸入內(nèi)容

一般來說在header函數(shù)前不能輸出html內(nèi)容,類似的還有setcookie() 和 session 函數(shù),這些函數(shù)需要在輸出流中增加消息頭部信息。如果在header()執(zhí)行之前有echo等語句,當(dāng)后面遇到header()時(shí),就會(huì)報(bào)出 “Warning: Cannot modify header information – headers already sent by ….”錯(cuò)誤。就是說在這些函數(shù)的前面不能有任何文字、空行、回車等,而且最好在header()函數(shù)后加上exit()函數(shù)。例如下面的錯(cuò)誤寫法,在 兩個(gè)php代碼段之間有一個(gè)空行:

//這里應(yīng)該是一個(gè)空行

原因:

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

解決方法:

修改php.ini打開緩存(output_buffering),將output_buffering=0修改成output_buffering=4096

或 者在程序中使用緩存函數(shù)ob_start(),ob_end_flush() 等。原理是:output_buffering被啟用時(shí),在腳本發(fā)送輸出時(shí),PHP并不發(fā)送HTTPheader。相反,它將此輸出通過管道(pipe) 輸入到動(dòng)態(tài)增加的緩存中(只能在PHP4.0中使用,它具有中央化的輸出機(jī)制)。你仍然可以修改/添加header,或者設(shè)置cookie,因?yàn)?header實(shí)際上并沒有發(fā)送。當(dāng)全部腳本終止時(shí),PHP將自動(dòng)發(fā)送HTTP header到瀏覽器,然后再發(fā)送輸出緩沖中的內(nèi)容。

到此,相信大家對“怎么解決php header失效問題”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI