2015-06-08 138 views
2

我搜索的方法来做到它,所以它会工作,但没有人似乎对所有路径的工作,所以我在想,如果你可以给我如何做到这一点的方向:相对/绝对路径问题

这是结构:

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

当我试图包括包括/ user_login.php在UCP/index.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: 

我很乐意为如何解决这个问题提供建议。

+0

告诉我实际路径config.php所在的位置。 –

+0

您是否尝试过:'包括$ _ SERVER [ 'DOCUMENT_ROOT'] '/包括/ user_login.php';' – SuperDJ

+0

你的index.php代码是在\ UCP,所以root_path是\ UCP,但config.php文件不在\。 ucp ... – Armage

回答

1

使用以下路径

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

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

见你的index.php是ucp文件夹,但你要config.php文件的路径。因此,返回一个目录并获取config.php路径。

+0

不幸的是,现在我遇到了显示来自主目录/模板的模板文件的问题,它没有找到它们(又名CSS引用和从这里带来的'{include file ='header.html'}',也就是我用的Smarty重定向模板,他们不再工作。 – Everett

0

这是最有可能的其它脚本中的一个包括不正确的路径的config.php文件。使用以下代码设置包含路径

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

还要将include添加到require_once以防止包含多个。

+0

没有工作,同样的问题。 – Everett

1

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

您已经定义了根someLocation/yourProject /包括/

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

要做到这一点,你可以在你的配置文件中定义的根路径,并从那里阅读。