我已經完成了我的研究 - 並找到了多個解決方案來解決這個問題,但無論出於何種原因,我的工作仍然無法正常工作!PHP頭重定向不起作用
使用IIS來承載站點本地重定向工作正常,但是當我將它放在我的Web服務器上時,重定向不起作用。
下面是我的'myaccount.php'頁面的一段代碼。
<?php
session_start();
if ($_SESSION['LoggedIn'] == true)
{
// ... Display page... lots of code here
}
else
// Session not active.
{
// Redirect to login page.
header("Location: http://{$_SERVER['HTTP_HOST']}/2ndassign/login.php");
}
?>
當該頁面在線託管我只是一個空白的「myaccount.php」 ......不重定向發生。沒有可能導致錯誤的空白。
所以,我已經將我的代碼縮減到了這個位置,這樣它就儘可能的簡單和簡單。錯誤報告已啓用,因此不再顯示空白頁面,但會吐出任何錯誤。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
header("Location:http://{$_SERVER['HTTP_HOST']}/2ndassign/login.php");
?>
您可以查看www.candlesoft.com.au/2ndassign/myaccount.php 網站這可以幫助你在幫我 - 看被吐出來的是什麼錯誤。
我的膽量告訴我這是我的託管服務提供商的設置。
CODE ON PASTEBIN - 這是來自www.candlesoft.com.au/2ndassign/myaccount.php的myaccount.php - 它不是摘錄它是整個文件。 (顯示空白不會導致錯誤) http://pastebin.com/FUHPpT5A
原來故障是,我需要將文件保存爲UTF-8(無BOM)... PHP似乎解釋某些字符物料清單生成爲空白 - 更好地解釋這裏:How to fix "Headers already sent" error in PHP 感謝Billy2mates的鏈接!
'Warning:Can not modify header information - headers already sent by(output started在/home/candleso/public_html/2ndassign/myaccount.php:1)/ home/candleso/public_html/2ndassign/myaccount。在線4上的php' –
請確保代碼位於'
'區段 –之前我認爲你的printf(「somthing」)或echo,你不能在位置標題前輸出任何文本,直到標題顯示你的整個頁面代碼位置?它可能會幫助完整。 –