1

可能重复:
相对包含文件

例如,

    include('../admin/db_cred.php');

如果我在另一个文件夹(例如 public)中,那将有效。但是,如果我只是在 www.SITE.com/index.php,它不起作用。

警告:include(../admin/db_cred.php) [function.include]: failed to open stream: No such file or directory in /home/[...].php on line 6

我添加了(点点斜线),因为搜索 ../ 不能很好地工作......

4

3 回答 3

2

约定表示从您所在的../位置上移一级目录。如果您在根目录中,则不能再向上移动任何级别。

如果您的 /admin 文件夹在根目录中,并且您从 /public 目录调用它,那么../admin/将允许您从下一级选择 /admin 文件夹

于 2012-12-17T20:01:43.813 回答
2

../意思是“这个文件夹上面的文件夹”或“上移一个文件夹”。例如,如果您在终端中输入cd ../,您将从开始的位置向上移动一个文件夹。

当您位于 时site.com/index,您很可能位于您网站的 Web 根目录中,因此无法升级,因为没有升级。

“可是上面有文件夹/var/www!” 是的,有,但是您的脚本无权访问它们(这是一件非常好的事情,您不希望被劫持的脚本访问您的整个服务器)。就您的脚本而言,/var/www(或任何您的 Web 根目录)最顶层,无论文件系统上实际存在什么。

于 2012-12-17T20:04:06.770 回答
0

../ 是父文件夹,但 root 没有父文件夹。

如果你想解决

http://site/admin/db_cred.php 

你应该这样写:

include('~/admin/db_cred.php');
于 2012-12-17T20:03:07.480 回答