作者 主題: include 和 Require 的小疑問  (閱讀 4489 次)

0 會員 與 1 訪客 正在閱讀本文。

asukarei

  • 憂鬱的高中生
  • ***
  • 文章數: 92
    • 檢視個人資料
include 和 Require 的小疑問
« 於: 2008-03-05 18:05 »
先跟各位說謝謝.  我的問題是 我有A.php網頁在www.example.com A.php 裡面有一個參數是 $string="1234";
我想在b.php再www.abc.com 裡面用include(http://www.example.com/a.php) 然後用echo $string; 把1234顯示出來. 但是試了很久都不行.所以才想請各位幫忙.
 網路上好像是有人說一定要把a.php做成 function,然後b.php去call function才行.可是我怎麼用都還是呼叫不出來. 麻煩了. 感恩.  請指點迷津

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
回覆: include 和 Require 的小疑問
« 回覆 #1 於: 2008-03-05 19:23 »
非 local 的 include 有可能因為安全的因素而在 php.ini 中被關閉.

asukarei

  • 憂鬱的高中生
  • ***
  • 文章數: 92
    • 檢視個人資料
回覆: include 和 Require 的小疑問
« 回覆 #2 於: 2008-03-05 20:45 »
twu. 我知道可能有限制. 我在php.ini裡面有打開兩個功能. 好像叫 allow_url_  什麼的. 根據php手冊.他就會解除此限制.所以我才想要來瞭解.到底是怎麼回事.  我認為是辦的到的,只是如何做沒有確定的方法. 只能亂槍打鳥. 當然我是初學者,所以如果我理解錯誤,煩請指導.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
回覆: include 和 Require 的小疑問
« 回覆 #3 於: 2008-03-05 20:52 »
用 http 來 include, 除非那台主機沒有 php 的 module, 把 php 檔案當成一般文件來顯示, 否則, 你看到的會是那個 a.php 的執行結果. 並不是那個檔案的內容吧.

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
回覆: include 和 Require 的小疑問
« 回覆 #4 於: 2008-03-05 22:04 »
Warning
PHP 4.3.0 之前的 Windows PHP版本,即使啟動allow_url_fopen選項,也不支援由此函式存取遠端檔案。

Warning
Security warning
Remote file may be processed at the remote server (depending on the file extension and the fact if the remote server runs PHP or not) but it still has to produce a valid PHP script because it will be processed at the local server. If the file from the remote server should be processed there and outputted only, readfile() is much better function to use. Otherwise, special care should be taken to secure the remote script to produce a valid and desired code.

就是這樣

asukarei

  • 憂鬱的高中生
  • ***
  • 文章數: 92
    • 檢視個人資料
回覆: include 和 Require 的小疑問
« 回覆 #5 於: 2008-03-05 22:22 »
首先先謝謝熱烈的回覆.
twu2 兄,你的意思是假設我把a.php那邊的伺服器作成不編譯PHP即可把檔案include,且可呼叫$stinrg嗎?

micmic3兄,你POST 的這段文我有看過. 可是不得其解. 主要原因是,這是指php4.3以前的.我用的是php5所以理論上有支援.再來,他這一段有點像twu2兄所說的.只是我還沒實做.因為我自己的環境是2台伺服器都有裝PHP的.

總結,2位的見解是.我把a.php的伺服器不要做成可以編譯php,所以在b.php include時會把a.php 帶到b.php然後再b.php的伺服器上編譯是嗎? 這樣 我呼叫$string時就會有結果,對把?
請原諒我問這麼多奇怪的概念問題.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
回覆: include 和 Require 的小疑問
« 回覆 #6 於: 2008-03-05 22:35 »
把 a.php 改成 a.txt, 就應該可以了.
一堆透過 php 入侵的攻擊方式都是就樣子來的吧.
參考一下: http://blog.teatime.com.tw/1/post/126

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: include 和 Require 的小疑問
« 回覆 #7 於: 2008-03-05 23:12 »
首先先謝謝熱烈的回覆.
twu2 兄,你的意思是假設我把a.php那邊的伺服器作成不編譯PHP即可把檔案include,且可呼叫$stinrg嗎?

micmic3兄,你POST 的這段文我有看過. 可是不得其解. 主要原因是,這是指php4.3以前的.我用的是php5所以理論上有支援.再來,他這一段有點像twu2兄所說的.只是我還沒實做.因為我自己的環境是2台伺服器都有裝PHP的.

總結,2位的見解是.我把a.php的伺服器不要做成可以編譯php,所以在b.php include時會把a.php 帶到b.php然後再b.php的伺服器上編譯是嗎? 這樣 我呼叫$string時就會有結果,對把?
請原諒我問這麼多奇怪的概念問題.

當你要做這些事情的時候...或許你應該看看有沒有其他比較好的方法讓你去完成這些事情...

目前跨主機的程式呼叫..通常標準的有走  soap ...或是你利用自訂的 post, get 的方法,去向另外一個 server 取得你要的回傳值..

至於你現在企圖要用的這個方法,個人非常的不建議....
官方也預設會關閉相關的功能,你真的還想這麼做?...更何況還會有嚴重的安全性問題...
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

asukarei

  • 憂鬱的高中生
  • ***
  • 文章數: 92
    • 檢視個人資料
回覆: include 和 Require 的小疑問
« 回覆 #8 於: 2008-03-05 23:31 »
再次感謝twu2於這麼晚還熱心的幫忙.  照這個Tommy的範例來看.應該是a.php也是可以的. 只要在遠端伺服器先不編譯.就會把她帶到b.php的本機伺服器作編譯的動作. 好.我明天來公司重新設定測試環境.  感謝.  如果不行.就...只好再麻煩各位前輩了. 請恕我不才.