所以,最奇怪的事情正在發生,我真的被難住了。 我不認爲我需要發佈代碼示例,我會告訴你爲什麼。PHP header()不起作用
我跑在我的本地一個PHP header("location:blah.php")
和正常工作。 當我將所有內容遷移到我的1and1
託管帳戶時,標題標記根本無法使用。這顯然與來源無關。
任何想法爲什麼它不會工作,當我把它放在我的其他主機上?
所以,最奇怪的事情正在發生,我真的被難住了。 我不認爲我需要發佈代碼示例,我會告訴你爲什麼。PHP header()不起作用
我跑在我的本地一個PHP header("location:blah.php")
和正常工作。 當我將所有內容遷移到我的1and1
託管帳戶時,標題標記根本無法使用。這顯然與來源無關。
任何想法爲什麼它不會工作,當我把它放在我的其他主機上?
嘗試用一個絕對URI,而不是相對一個:
header("Location: http://yourhost.com/blah.php");
你可以參考http://php.net/manual/en/function.header.php 它說:
HTTP/1.1需要一個絕對URI作爲參數傳遞給»位置:包括方案,主機名和絕對路徑,但有些客戶端接受相對URI。你通常可以使用$ _ SERVER [「HTTP_HOST」],$ _ SERVER [「PHP_SELF」]和目錄名()從一個相對自己
順便說讓一個絕對URI,確保你不發送在撥打header()
之前的任何輸出。甚至沒有空白的一行。
error_reporting(E_ALL);
if(!headers_sent()){
header("location:blah.php");
exit("Headers aren't set");
} else{
exit("Headers already sent");
}
試一下.. 如果頭被送到您將獲得第二mesasge。 如果頭沒有發送,你必須重定向,如果你不是,你會得到第一條消息。
如果他們被送到你必須要找到確切位置是..通常PHP錯誤報告告訴你。
這是說頭已經發送,但我不知道這可能是如何..我有我的所有其他頭在功能,不會跑到另一個頁面。 – 2013-04-07 10:29:20
我更新我的答案請嘗試..這必須重新調整和錯誤報告..他們在哪裏發送 – Svetoslav 2013-04-07 10:31:07
我還只是得到頭已經發送。放在header header_remove()之前的 – 2013-04-07 10:34:40
錯誤/通知?檢查任何?? – swapnesh 2013-04-07 10:10:28
顯而易見的原因是在header()執行之前會輸出一些東西。 PHP標籤之前的空字符,字節順序標記或類似的東西? – adeneo 2013-04-07 10:10:30
「這顯然與來源無關。」 - 你確定嗎?通常'header'失敗,因爲在該調用之前已經有一些輸出。你應該檢查一下。 – Gumbo 2013-04-07 10:10:53