2013-07-08 114 views
2

我已經瀏覽了此論壇上的所有主題,然後發佈此文章。沒有解決方案能夠解決我的問題,所以我不得不打開一個新的線程。未能打開流錯誤:Http請求失敗

我有以下include在我的代碼,但它的錯誤了以「未能打開流:HTTP請求失敗!」錯誤。我已經在php.ini

allow_url_include = On and 
allow_url_fopen = On 

但它仍然失敗。

1.Below是包括在/test/foo.php其包括下/test/bar.php

<div class="tab-content" style=''> 
<div class="tab-pane active" id="my1"><?php include('http://'. $_SERVER['SERVER_NAME'] . ':' . 
$_SERVER['SERVER_PORT'] . "/bar.php?env=test1&days=3&start=$start&end=$end");?></div> 
</div> 

2.Here在同一服務器上的文件中定義爲目錄結構:

一個)/test/foo.php - >這包括我自己的服務器。 二)/test/bar.php

3.Apache文檔根目錄指向/test

/var/www/html --> /test 

4. echo __DIR__顯示我 「/測試」,所以它肯定是指向正確的目錄。

5.I都給予充分的權限在此目錄中的情況下,這是個問題,但沒有運氣。

6.Exact誤差在apache的錯誤日誌中的上述包含一個。它不包括任何上述內容。服務器名稱和端口有意從下面的日誌中刪除。

[太陽07年7月15時01分47秒2013] [錯誤] [客戶] PHP的警告:包括(HTTP://:/bar.php ENV = MY1 &天= 3 &開始= 2013- 06-07 & end = 2013-07-07):無法打開流:HTTP請求失敗!在上線/test/foo.php 36
[太陽07年7月15時01分47秒2013] [錯誤] [客戶] PHP警告:包括():無法打開的「http://:/bar.php ENV = MY1 &天= 3 &開始= 2013年6月7日&端= 2013年7' 月7日列入(include_path中= ':在/ usr /共享/梨:在/ usr /共享/ PHP')中/測試/ foo.php上線36

+0

嗯,首先什麼是對foo.php的第36行的代碼? –

+0

通常這是由服務器在具有DNS名稱的實際IP地址的路由器後面引起的,但是,通常包含本地_files_而不是url ... – Wrikken

+0

感謝大家的回覆。如果我包含本地文件而不是URL,可以如何添加查詢參數? – user2561808

回答

0

如果

include('http://'. $_SERVER['SERVER_NAME'] . ':' 
    . $_SERVER['SERVER_PORT'] 
    . "/bar.php?env=test1&days=3&start=$start&end=$end"); 

試圖從

http://:/bar.php?env=my1&days=3&start=2013-06-07&end=2013-07-07 
獲取

這意味着$ _SERVER ['SERVER_NAME']和$ _SERVER ['SERVER_PORT']爲空。你是從命令行運行的嗎? (我假設你知道,即使有字面值,你在系統中創建了一個很大的安全漏洞,生成的腳本將比直接包含文件慢得多,並且即使變量已經填充,它也不會運行,牛逼意味着許多主機路由/ DNS將允許您訪問的代碼以這種方式)

相關問題