2015-06-08 7 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

Вы пытались: 'include $ _SERVER ['DOCUMENT_ROOT']. '/ Includes/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

К сожалению, теперь у меня возникла проблема с отображением файлов шаблонов из Home Directory/template, он их не находит (например, ссылки на CSS и такие, которые приводятся здесь '{include file = 'header.html'}', иначе я использую Smarty перенаправить шаблоны, и они больше не работают. – Everett

0

Это, скорее всего, один из ваших других скриптов включает config.php без правильного пути. Настройте ваш включают пути, используя следующий код

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

Также изменить включают в require_once для предотвращения многократного включает.

+0

Не работает, такая же проблема. – Everett

1

Ваш корневой путь не указывает на фактический корень вашего проекта. Ваш фактический корень - это someLocation/yourProject.

корень вы определили это someLocation/yourProject/включает/

Затем вы хотите включить файл в другую папку. Следовательно, он не может его найти. Определите корень вашего пути к вашему фактическому корню проекта, а не внутри, включая каталог.

Для этого вы можете определить корневой путь в вашем файле конфигурации и прочитать его оттуда.

 Смежные вопросы

  • Нет связанных вопросов^_^