2

我已经搜索了方法来做到这一点,但它们似乎都不适用于所有路径,所以我想知道你是否可以给我一个关于如何做到这一点的方向:

这是结构:

Home Directoy
   config.php
   index.php
   includes/
      user_login.php
      applicant_track.php
   ucp/
      index.php

当我试图在 ucp/index.php 中包含 include/user_login.php 时,它不允许我说它找不到该文件,我的代码在 ucp/index.php 中是:

if(!defined('root_path'))
{
    define('root_path', realpath(dirname(__FILE__)));
}

include(root_path . '\config.php');

switch($_GET["a"])
{
    case null: include(root_path . '\index.php'); break;
    case "login": include(root_path . '\includes\user_login.php'); break;
}

这就是我得到的:

Warning: include(E:\xampp\htdocs\aod_panel\ucp\config.php): failed to open stream:

我很乐意提供有关如何解决此问题的建议。

4

3 回答 3

1

您的根路径不指向项目的实际根。您的实际根目录是 someLocation/yourProject。

您定义的根是 someLocation/yourProject/includes/

然后你想在另一个文件夹中包含文件。因此它找不到它。将路径的根定义到实际项目根目录,而不是包含目录。

为此,您可以在配置文件中定义根路径并从那里读取它。

于 2015-06-08T15:12:13.867 回答
1

使用以下路径

define('root_path', realpath(dirname(dirname(__FILE__))));

而不是你定义真实路径的代码。因为你的文件夹结构是这样的。

看到你的 index.php 在ucp文件夹中,但你想要 config.php 的路径。所以返回一个目录并获取 config.php 路径。

于 2015-06-08T15:12:39.957 回答
0

这很可能是您的其他脚本之一包含没有正确路径的 config.php。使用以下代码设置包含路径

  set_include_path(get_include_path() . PATH_SEPARATOR . $root_path);

还将包含更改为 require_once 以防止多个包含。

于 2015-06-08T15:09:19.587 回答