2015-11-08 118 views
0

我在兩臺服務器上有兩個php文件。讓我們稱之爲服務器A和B.PHP文件包含問題

我想通過我的PHP文件,包括必須在兩個服務器上啓用什麼PHP指令在文件上B.

的代碼?

此外,當包含遠程文件時,文件的代碼是否會被包含或發送到請求腳本的代碼輸出(如echo數據)?

+0

您的'include()'命令將正確包含它從有問題的服務器發送的有效負載。如果這是php代碼或輸出取決於該服務器的配置,顯然。通常它會被輸出,_unless_你採取非常特殊的配置步驟。總的來說,可以說這種方法是一個值得懷疑的方法。這看起來像你在那裏打開的一個_huge_安全問題。試想一下,如果某人成功地僞造了一個包含文件的回覆:您可以執行Bad Girl女士在您心愛的系統上向您發送的任何代碼...... – arkascha

+0

我相信您可以使用include('ftp:// user :[email protected]/file.php');'如果你不想分析數據,但速度很慢。然而,你這樣做,它會很慢。最好的解決方案是將文件複製到本地服務器! –

+0

我可以簡單地將php代碼回顯到調用文件。這將工作爲文本輸出或將代碼解析爲php代碼? :S另外,**需要在兩臺服務器上設置哪些指令才能使包含工作? –

回答

1

在服務器B上,您應該在您的php.ini中將allow_url_include的值設置爲On。請謹慎使用allow_url_include,因此請謹慎使用,並在做這些之前進行大量的盡職調查。

如果你只需要一個目錄允許由另一臺服務器包含PHP文件,那麼你可以創建一個與以下行.htaccess文件:

php_flag allow_url_include on 

無論你的文件結構,然後allow_url_include是一個安全問題(除非你的服務器不能被外界訪問)。

+0

當我甚至沒有在線提供我的目錄索引時,人們怎麼能找到我的服務器上php文件的名稱?另外,不同的目錄可能有不同的php指令嗎?或者一個PHP安裝對所有文件/文件夾使用相同的指令? –

+0

請看我更新的帖子。 – itoctopus

+0

這是否意味着我可以用htaccess文件覆蓋php.ini中的設置?或者這是否意味着php.ini指令必須在**和**上設置,然後編輯htaccess文件? –