【问题标题】:Why doesnt ../ (dot dot slash) work in my root directory? [duplicate]为什么 ../(点点斜杠)在我的根目录中不起作用? [复制]
【发布时间】:2012-12-17 19:58:30
【问题描述】:

可能重复:
Relative include files

例如,

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

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

警告:include(../admin/db_cred.php) [function.include]:无法打开流:第 6 行的 /home/[...].php 中没有这样的文件或目录

我添加了(点点斜线),因为搜索 ../ 效果不佳...

【问题讨论】:

  • 它究竟是如何“不工作”的?
  • 抱歉,我已更新以包含警告。
  • @KeithThompson "does not work very well"
  • 让你的路径绝对化。
  • 您没有访问该文件夹的权限。

标签: php


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    ../ 表示“上一个文件夹”或“上移一个文件夹”。例如,如果您在终端中输入cd ../,您将从您开始的位置上移一个文件夹。

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

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

    【讨论】:

      【解决方案3】:

      ../ 是父文件夹,但根目录没有父文件夹。

      如果你想解决

      http://site/admin/db_cred.php 
      

      你应该这样写:

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

      【讨论】:

        猜你喜欢
        • 2020-12-27
        • 2019-01-15
        • 2017-03-22
        • 1970-01-01
        • 1970-01-01
        • 2018-12-10
        • 2017-05-17
        • 2010-10-09
        • 2017-06-19
        相关资源
        最近更新 更多