一、問(wèn)題:
今天header(location: $url),以往跳轉(zhuǎn)總是可以的,今天卻不動(dòng),只是輸出結(jié)果,以往自己要確認(rèn)檢查,$url的值獲取的是否正確,所以在前面加了echo $url;來(lái)調(diào)試用,結(jié)果就導(dǎo)致了header函數(shù)的無(wú)效.
二、解決方法:
在php中用header(location:test.php)進(jìn)行跳轉(zhuǎn)要注意以下幾點(diǎn):
1、location和“:”號(hào)間不能有空格,否則會(huì)出錯(cuò).//downcc.com
2、在用header前不能有任何的輸出,包括include的頁(yè)面中標(biāo)簽“?>”后不能有空格.
3、header后的php代碼還會(huì)被執(zhí)行.
php的 header 跳轉(zhuǎn)之前不能有任何內(nèi)容輸出,因?yàn)閜hp開(kāi)始執(zhí)行的時(shí)候就已經(jīng)向?yàn)g覽器送出http頭信息,之后就不再允許更改了.
但是如果必須要在輸出之后再處理header信息的話可以使用 ob_start() ob_end_flush() 來(lái)緩存一下要發(fā)送的內(nèi)容,等到header繼續(xù)再發(fā)送內(nèi)容.
或者一個(gè)更簡(jiǎn)單的辦法,修改php.ini,找到 output_buffering=off 修改為 output_buffering=4096.
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄