php
  • iis
  • iis-7
  • fastcgi
  • 2011-06-05 19 views 0 likes 
    0

    我正要扔掉毛巾。有人可以幫我解決這個問題。 在我的本地開發服務器上,這一點PHP的工作正常,它只是通過構建一個url的一些變量重做。所以我按照預期重定向到這個頁面。PHP標題重定向不適用於製作,空白頁

    $status = "0"; //unsubscribed 
    header('Location:http://www.skandium.com/manage-your-mailing-list.asp?status='.$status); 
    die(); 
    

    在生產服務器上,我只是得到一個空白頁。我知道PHP頁面本身正在工作,因爲所有其他事情發生在這條線之前和工作正常。我可以用一個簡單的echo替換這一行,並且可以看到URL也是正確的。

    其他詳情:

    • 託管在Windows中(DEV也窗口)
    • 相同的PHP版本通過FASTCGI運行

    編輯:情節變得

    以下代碼在新頁面中獨立運行,可以在生產環境中正常工作。仍然沒有解釋爲什麼上面的代碼在本地工作,而不是生產。我似乎排除的一點是,標題重定向聲明本身並不是罪魁禍首。

    <?php 
    
    //test.php 
    
    //prevent page caching 
    header("Cache-Control: no-cache"); 
    header("Expires: -1"); 
    
    $status = "0"; //unsubscribed 
    
    header('Location:http://www.abc.com/manage-your-mailing-list.php?status='.$status); 
    die(); 
    
    ?> 
    
    +0

    你試圖改變您的重定向是一個完整的HTTP路徑,而不是相對路徑頁面的名字嗎? – 2011-06-05 09:05:23

    +1

    你有權訪問錯誤日誌嗎?他們提到了什麼? – Arjan 2011-06-05 09:12:18

    +0

    在頁面的開始嘗試添加「ob_start();」在PHP標記。希望這能解決你的問題。 – balanv 2011-06-05 09:19:34

    回答

    0

    這些都沒有工作。

    我最終迴應了meta重定向。

    我還可以這樣迴應一個javascript location.replace

    0

    文件UTF-8編碼? 任何輸出都可以阻止執行代碼,包括BOM。也許編碼沒有明確設置,但你的開發機器假定UTF-8(並忽略了標記),而你的生產服務器沒有。

    +0

    如何驗證?我正在使用記事本+ +和編碼菜單選項我看到'編碼在ANSI'選中。還有其他選項,如'沒有BOM的UTF-8'等。 – 2011-06-05 09:24:44

    +0

    UTF-8本身沒有BOM。我不知道如何在記事本++中將編碼更改爲UTF-8;你應該參考應用程序的文檔。 (另外,編碼也應該針對包含進行更改)。 – cbrandolino 2011-06-05 09:37:56

    +0

    好吧,我保存的頁面和任何包含爲UTF-8,它仍然表現相同。 – 2011-06-05 11:04:05

    3

    確保有PHP的標籤之前沒有空格

    +0

    沒有 – 2011-06-05 09:25:25

    1

    試試這個..

    header('Location: http://www.abc.com/manage-your-mailing-list.php?status='.$status) 
    

    我只加冒號之間(URL中的空間:) .. 我不知道這一點發生在別人身上,但有時候這種事情發生在我身上,有時這種情況會出於任何原因。

    另外,你有沒有嘗試過相對路徑? 或在其他頁面,我的意思是「標題位置」在其他地方工作? 或者只發生在這個腳本上?

    1

    ,你可以嘗試一些事情是:

    • 檢查headers_sent()true發送重定向頭
    • 設置error_reporting(E_ALL)ini_set('display_errors', 1)
    • 使用Firebug檢查(如果有的話),報頭是什麼之前發送到瀏覽器
    相關問題