2013-08-02 146 views
0

我正在開發一個應用程序並使用一個子文件夾作爲測試域。包括使用直接路徑而不是相對路徑dbconfig.php文件失敗

http://mywebsite/testing-folder 

我DBCONFIG位於:

http://mywebsite/testing-folder/lib/dbconfig.php 

,如果我包括文件: http://mywebsite/testing-folder/userarea/profile

它是罰款的相對路徑。如果我將它包含在直接路徑中,則會引發錯誤:

FATAL ERROR: Call to a member function prepare() on a non-object in... 

$root = 'http://mywebsite/testing-folder/'; 
include '../../lib/dbconfig.php'; // This works 
include $root.'lib/dbconfig.php'; // This does not 

有什麼線索爲什麼?

+0

請閱讀本文,您將找到答案:http://www.php.net/manual/en/function.include.php#52342 – vee

回答

1

您試圖通過HTTP包含文件。這是不對的,你應該包含文件,將本地文件系統路徑傳遞到includerequire

你的根或許應該像這樣:

$root = '/var/www/mywebsite/testing-folder/'; 
+0

謝謝..這沒關係! –

2

除了使用URL的,你必須使用一個文件系統路徑。因此,而不是

$root = 'http://mywebsite/testing-folder/'; 

$root = '/var/www/whatever/'; 

應該被使用。當你通過http包含php時,你的web服務器將已經解釋代碼並返回你輸出的任何內容(如echo "hello world";)。如果您的文件只包含配置,則輸出可能爲空。

+0

謝謝!必須接受第一個來的人。 –

+0

雖然這是一個回答!這說35分鐘前,而接受的答案是38分鐘前。 – Jamesking56