покритикуйте задумку для include'а

Патриот

Новичок
покритикуйте задумку для include'а

Смысл вот в чем:
Когда файл лежит в N подпапке, include файла приходиться писать так:
Код:
include '../../../../../php/config.php';
Что не очень удобно т.к. постоянно приходиться прописывать путь для разных местонахождений файлов...
Решил задачу так:
PHP:
$uri_m=explode("/",$REQUEST_URI);
$points="";
for($i=1; $i<=count($uri_m)-2; $i++)
{
if(empty($points)){ $points=".."; } else { $points=$points."/.."; }
}
if(!file_exists("$points/php/config.php")){ exit(); }
// и дальше пошел include всех файлов из папки php
Вопросы:
1. Безопасен ли такой подход?
2. Я не пытаюсь изобрести велосипед? Если да, то расскажите как надо
3. Недостатки такого подхода
4. Ошибки в коде
 

Yaguan

пилот
2. Я не пытаюсь изобрести велосипед? Если да, то расскажите как надо
Да, и весьма странный велосипед.

В таких случаях надо писать абсолютный путь, он всегда одинаковый (и для удобства использовать, например $_SERVER['DOCUMENT_ROOT']).
 

Патриот

Новичок
Yaguan
точно...
PHP:
include($_SERVER['DOCUMENT_ROOT']."/php/config.php");
а как быть, если папка "php" лежит за пределами "www"? (для безопасности)
есть способ? (кроме explode конечно)
 

Фанат

oncle terrible
Команда форума
лично я пишу нужные пути в конфиг файле, который инклюдится ко всем скриптам автоматом.

также такой скрипт можно инклюдить во все скрипты руками.
 

440hz

php.ru
Автор оригинала: Фанат
лично я пишу нужные пути в конфиг файле, который инклюдится ко всем скриптам автоматом.
также такой скрипт можно инклюдить во все скрипты руками.
аналогично, только я настраиваю include_path еще
 

Патриот

Новичок
440hz
правда не знал...
Фанат
спасибо за механизм и пример

теперь настроил все по уму :)
 
Сверху