2015-06-08 135 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 /包括/

然後你想在另一個文件夾中的文件。因此它找不到它。定義您的實際項目根目錄的路徑的根目錄,而不是包含目錄。

要做到這一點,你可以在你的配置文件中定義的根路徑,並從那裏閱讀。