亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

php語言

PHP利用header跳轉(zhuǎn)失效的解決方法

時(shí)間:2023-04-13 10:45:34 偲穎 php語言 我要投稿
  • 相關(guān)推薦

PHP利用header跳轉(zhuǎn)失效的解決方法

  主要介紹了PHP利用header跳轉(zhuǎn)失效的解決方法,歸納了這類問題的注意事項(xiàng),非常具有實(shí)用價(jià)值,需要的朋友可以參考下PHP利用header跳轉(zhuǎn)失效的解決方法,就跟隨小編一起去了解下吧!

  PHP利用header跳轉(zhuǎn)失效的解決方法1

  一、問題:

  今天header("Location: $url"),以往跳轉(zhuǎn)總是可以的,今天卻不動,只是輸出結(jié)果,以往自己要確認(rèn)檢查,$url的值獲取的是否正確,所以在前面加了echo $url;來調(diào)試用,結(jié)果就導(dǎo)致了header函數(shù)的無效。

  二、解決方法:

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

  1、location和“:”號間不能有空格,否則會出錯(cuò).//phpfensi.com。

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

  3、header后的PHP代碼還會被執(zhí)行。PHP的 header 跳轉(zhuǎn)之前不能有任何內(nèi)容輸出,因?yàn)镻HP開始執(zhí)行的時(shí)候就已經(jīng)向?yàn)g覽器送出HTTP頭信息,之后就不再允許更改了。但是如果必須要在輸出之后再處理header信息的`話可以使用flush來緩存一下要發(fā)送的內(nèi)容,等到header繼續(xù)再發(fā)送內(nèi)容。或者一個(gè)更簡單的辦法,修改php.ini,找到output buffering=Off 修改為 output buffering=4096。

  PHP利用header跳轉(zhuǎn)失效的解決方法2

  問題:

  一般來說在header函數(shù)前不能輸出html內(nèi)容,類似的還有setcookie 和 session 函數(shù),這些函數(shù)需要在輸出流中增加消息頭部信息。如果在header執(zhí)行之前有echo等語句,當(dāng)后面遇到header時(shí),就會報(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ù))并不會立即發(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信息的試圖都是不允許的,并會發(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) 輸入到動態(tài)增加的緩存中(只能在PHP4.0中使用,它具有中央化的輸出機(jī)制)。你仍然可以修改/添加header,或者設(shè)置cookie,因?yàn)?header實(shí)際上并沒有發(fā)送。當(dāng)全部腳本終止時(shí),PHP將自動發(fā)送HTTP header到瀏覽器,然后再發(fā)送輸出緩沖中的內(nèi)容。

【PHP利用header跳轉(zhuǎn)失效的解決方法】相關(guān)文章:

PHP頁面跳轉(zhuǎn)的技巧09-20

PHP中實(shí)現(xiàn)頁面跳轉(zhuǎn)04-19

PHP頁面跳轉(zhuǎn)實(shí)現(xiàn)技巧04-19

php的header和asp中的redirect比較09-20

PHP頁面跳轉(zhuǎn)幾種實(shí)現(xiàn)技巧04-15

利用PHP模板引擎smarty08-08

PHP頁面跳轉(zhuǎn)到另一個(gè)頁面的方法09-22

利用PHP實(shí)現(xiàn)短域名互轉(zhuǎn)08-06

利用PHP校驗(yàn)ISBN碼函數(shù)08-08