2011-10-09 110 views
0

我無法嘗試將文件包含到php腳本中。該文件存儲在根文件夾中,該文件夾不是實際的Web根目錄,而是通過共享主機帳戶訪問的根目錄。共享主機 - 如何在web根目錄下包含文件?

我已經在這個目錄存儲PHP會話數據,在創建的文件夾關於這將是以下行的.htaccess配置:

php_value session.save_path "/usr/home/accountname/sessions" 

網站根將被存儲在這個目錄中:

/usr/home/accountname/public_html/domainname/ 

我所試圖做的是確保保存數據庫連接細節素文字,文件夾中的,將是這樣的:

/usr/home/accountname/includes/ 

這是我目前如何包含文件:

require_once $_SERVER['DOCUMENT_ROOT'].'/includes/config.php'; 

我已經試過這樣:

require_once $_SERVER['PATH'].'/usr/home/accountname/includes/config.php'; 

至於$_SERVER['PATH']/bin

這不是工作作爲頁面出來空白,這意味着config.php中定義的變量未激活,因爲頁面未包含在內。

誰能提供有關此事的一些信息,或點我解決問題的方向。此外,任何教程或其他信息將不勝感激。

謝謝!

回答

3

如果包括的config.php腳本的Web根目錄下保存,你可以寫:

require_once dirname(__FILE__) . '/../../includes/config.php'; 

你已經嘗試過了嗎?

+0

不,我沒有嘗試過,但我看到它的方式,目錄暗示將基於腳本的路徑?我基本上不想重寫這取決於每個腳本路徑。我是否會包含一個文件,比如位於我的webroot中的'config.php',然後從該文件包含webroot下的實際配置文件? –

+1

這就是爲什麼你應該有一個前端控制器。嘗試使用這個:''require_once $ _SERVER ['DOCUMENT_ROOT']。 '/../../包括/ config.php中';''。 –

+0

現貨,非常感謝:) –

1

如果你的腳本是在/usr/home/accountname/public_html/domainname/something.php,你可以這樣做:

require_once(dirname(dirname(dirname(__FILE__))).PATH_SEPARATOR."includes".PATH_SEPARATOR."config.php"); 
+0

謝謝你的回覆,但實際的劇本我會努力包括將以下目錄中:'在/ usr /家庭/帳戶名/包括/ something.php'您能簡單介紹一下你正在與完成? –

+0

@BlackberryFan:是的,這應該是這樣做的。 ['dirname'](http://www.php.net/dirname)返回目錄的名稱保持給它(這樣'富/酒吧/ baz'的文件或目錄 - >'富/ bar'和' foo/bar' - >'foo')。 '__FILE__'是當前正在執行的文件的路徑。所以,如果你開始'在/ usr /家庭/帳戶名/的public_html /域名/ something.php',我們採取'dirname'三次:'在/ usr /家庭/ accountname',然後我們添加'/包括/配置。考慮到'PATH_SEPARATOR'(因爲Windows使用'\',其他大多數操作系統都使用'/')。 – icktoofay