簡體   English   中英

PHP項目可在Linux服務器上運行,但不能在Windows上運行

[英]php project works on linux server but not on windows

因此,我有兩個完全相同的項目的副本。 服務器的配置相同。 該腳本必須將一些數據寫入數據庫,然后根據寫入數據庫的數據使用header()函數將用戶重定向到適當的頁面。

它在Linux服務器上運行良好,盡管在Windows中它先嘗試重定向,然后再寫入數據庫,但這當然不起作用,因為沒有寫入任何數據。 如果我注釋掉Windows版本中的header()函數,它將寫入數據庫,但不執行重定向。

兩個確切的腳本如何如此不同?

編輯:

我不確定如何顯示代碼,因為其中有很多,而且是如此分散。 但基本上,它只是一個設置header()的函數,然后是寫入db的函數。 並且當它重定向時,它應該選擇寫入數據庫的數據並顯示它。

那是它的非常簡化的版本。 請記住, header是在寫入數據庫之前設置的。 我相信這是罪魁禍首,但是我沒有編寫代碼,也無法更改其體系結構,因為它可以完美地在2個Linux服務器上運行,我只是不知道該怎么做。 我只需要使其在Windows服務器上工作即可。

這樣可以使重定向正常,我的意思是,它會將我發送到應該發送給我的鏈接,但不會將其寫入數據庫。 但是我注釋掉了header()部分,將其寫入數據庫,但沒有進行重定向。

嘗試添加以下if語句:

if(mysql_query('...') && mysql_affected_rows()){
   header("Location: redirectScript.php");exit();
}

希望這可以幫助...

標頭函數文檔指出以下內容:

注意:

HTTP / 1.1需要絕對URI作為»位置的參數:包括方案,主機名和絕對路徑,但是某些客戶端接受相對URI。 通常,您可以使用$ _SERVER ['HTTP_HOST'],$ _ SERVER ['PHP_SELF']和dirname()從您自己的親戚那里創建絕對URI:

您是否使用相對網址? 與WAMP相比,LAMP可能更喜歡相對URL。 這是一個簡單的測試,因此值得一試。

由於某種原因,我只能在WampServer和PHP 5.2.4上使用它

暫無
暫無

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

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