2014-01-23 26 views
-1

工作對於需要在我的PHP腳本文件,我使用下面的代碼:/... ...而不是在PHP

require(dirname(__FILE__)."/../config.php"); 

與config.php文件位於不是要求它的文件更高的水平。然而,這似乎不工作,並且該文件無法找到,並出現以下錯誤:

failed to open stream: No such file or directory in /home3/**myusername**/public_html/PHP/access/login.php on line 3 

我不知道是什麼錯誤,我在網上看了看,這似乎是別人用同樣的方式。不過,我相信/ ..不會導致它上升到一個水平。

EDIT 1

我改變的代碼

require_once($_SERVER['DOCUMENT_ROOT'] . "/PHP/config.php"); 

和仍然收到同樣的錯誤。

EDIT 2

我使用絕對路徑的原因是因爲我一直在引導相信這將工作無論身在何處,我從,即調用該文件,如果在不同的目錄中的文件包括這文件(對於這個特定的文件,它不會是這種情況,但它會在其他文件中,我會使用它)它仍然會正確包含config.php文件,而不是相對於包含login.php文件的路徑。

編輯3

如果我vardump它打印以下的要求路徑:

string(52) "/home3/*myusername*/public_html/PHP/access/../config.php" 

所以顯然不會到正確的位置。

EDIT 4

文件的

絕對路徑被要求

/home3/*myusername*/public_html/PHP/config.php 

要求它

/home3/*myusername*/public_html/PHP/access/login.php 
+0

刪除第一個'/',讓你的絕對路徑成爲相對路徑,Bob應該是你的叔叔。 –

+1

'var_dump(dirname(__ FILE __)。「/../ config.php」);'看看實際產生了什麼路徑 – zerkms

+0

「我把代碼改成了」---你明白嗎?只是隨意複製建議,並期望其中一個會奇蹟般地工作? – zerkms

回答

-3

刪除第一個/文件的絕對路徑 - "../config.php"

+0

它會改變什麼? – zerkms

+0

試試看 - 我有完全相同的代碼和文件排列方式完全相同。 – ElendilTheTall

+0

請再次閱讀OPs問題'require(dirname(__ FILE __)。「/../ config.php」);' – zerkms

0

試省確定相對於根的路徑。這是一個更好的方法,然後提供相對於當前文件。

require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php"); 
+0

您爲什麼認爲'config.php'在文檔根目錄下? – zerkms

+0

我不確定,但我建議從根提供路徑,它是一種更清晰的路徑提供方式。 – HariHaraSudhan

+0

明確的方法是依靠你的項目根目錄,而不是在一些環境變量 – zerkms