2011-10-09 121 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