簡體   English   中英

php header()在本地主機上工作,但在實時服務器上不工作?

[英]php header() working in localhost but not working on live server?

if ($num_rows == 0 && $num_rows2 == 0) {
    echo 'result1';
    header('Location:enter-work.php');
    die();
} else if ($num_rows >= 0 || $num_rows2 >= 0) {
    echo 'result2';
    header('Location:similar-work.php');
    die();
}

我具有上面要測試的代碼,每次我刷新此代碼頁面時,它每次都會正確地回顯示例文本“ result1”或“ result2”,但它不會重定向到enter-work.php或類似文件-work.php就像在我的本地主機服務器上一樣。 在本地主機服務器上,我什至可以將其鏈接到在線網站(即google.com)。 在編寫任何html之前,我都輸入了上面的代碼-甚至在聲明了doctype之前。

不知道是什么原因導致的問題,需要一些幫助。

編輯:正如Pekka在他的評論中(在選定的答案上)提到的,問題是在header()函數之前我有回聲和空格。

發送標頭之前,您不得輸出任何內容。

如果這樣做,本地服務器和實時服務器的行為會有所不同,這可能是由於不同的輸出緩沖設置。

無論如何,如果您刪除回聲,它應該可以工作。

對於仍然遇到相同問題的任何人:首先嘗試在yourfile.php簡單的header()代碼,如果問題解決就意味着刪除舊代碼中的問題,則刪除任何其他內容。

第二個: header ()應該與其他內容一起工作,例如echo“”等...

最后:如果您嘗試了簡單的header()代碼,但問題仍未解決,請與您的托管服務提供商聯系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM