2012-04-15 76 views
1

下面這段代碼時,我盡我的本地主機上,但是當我把它上傳到我的服務器不工作PHP頭不工作的服務器,但工作本地主機上完全正常

$sendquery = "INSERT INTO `message` (`from`, `to`, `subject`, `date`,`message`) VALUES ('".$_SESSION['UID']."', '".$toarray['Uid']."', '$subject','$d', '$message')"; 
$sendresult = mysql_query($sendquery); 

if($sendresult) 
{ 
    header('Location: home.php?action=inbox&success=1'); 

} 
else 
{ 
    header("Location: home.php?action=inbox&success=2"); 
} 

是工作完全正常這是我的服務器或代碼的問題?

+0

你的SQL後看到一個錯誤。如果你呼應的東西(如錯誤消息)你呢?無法再更改標題 – gulyan 2012-04-15 19:26:29

+0

是您的服務器連接到同一個數據庫嗎? – Rooster 2012-04-15 19:26:32

+0

我修復了您的代碼塊。請參閱http://meta.stackexchange.com/questions/22186/how-do-i-format-my - 代碼塊如何發佈代碼在stackoverflow上 – MitMaro 2012-04-15 19:29:58

回答

0

本地主機和網絡服務器有許多不同之處。我猜測這個問題是在windows上開發的,並且在linux上託管。

小寫所有的頭部字符串和之後

header("location: home.php?action=inbox&success=2"); 
exit(); 
+0

謝謝 是的,你是懷特關於Windows和Linux ,但我只是嘗試小寫,它仍然沒有重定向我的服務器是在Ubuntu的 我試着用小寫字母和退出仍然沒有重定向頁面 – user1334969 2012-04-15 19:45:33

1

也許你在SQL錯誤停止執行。

如果您迴應某些內容(如錯誤消息),則無法再更改標題。

標題在echo之前發送,並且在此之後設置位置不起作用。

+0

感謝您的答覆問題是SQL運行良好後,SQL運行的頁面沒有得到重定向,它保持在dame頁面沒有錯誤消息它只是不重定向頁面,但當我在本地主機上重定向的服務器上的頁面不重定向頁面,它只是刷新頁面 – user1334969 2012-04-15 19:39:40

1

在設置「位置」標題之前,請確保代碼中沒有任何內容開始輸出。
確保您使用的絕對URL(所要求的HTTP specification

樣品:

header('Location: http://' . $_SERVER['HTTP_HOST'] . '/Home.php'); 

如果是這樣的話,您的重定向應該工作。

爲什麼輸出已經開始的一些常見原因:

  • BOM(字節順序標記)之前,你的第一<?php ... ?>
未正確處理
  • 警告或信息
  • 空白字符或任何其他HTML標記
  • +0

    謝謝你的米斯塔克是我已經開始輸出之前設置的位置,但有沒有辦法減少PHP附近,我可以給位置,即使開始輸出的頁面和下一個疑問如何在本地主機上工作 – user1334969 2012-04-15 20:13:10

    +0

    號。如果你拿一個仔細看看HTTP協議,你會明白,發送帶有「Location:」頭的30x狀態碼並仍然寫輸出(HTTP正文)是沒有意義的。輸出完全無用,因爲瀏覽器所要做的就是請求一個新的URL。您應該改進代碼,以便在開始輸出之前完成可能導致重定向的所有內容。 – CodeZombie 2012-04-15 20:23:52

    0

    檢查

    var_dump($ sendresult);出口();

    啓用錯誤報告。您可能有其他錯誤。 順便說一下

    $ sendresult = 1;

    如果($ sendresult){

    頭( '地點:home.php動作=收件箱&成功= 1');

    } else {

    header(「Location:home.php?行動=收件箱&成功= 2" );

    }

    這對我工作得很好

    相關問題