Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Корректное указание путей
Форумы портала PHP.SU » » HTTP и PHP » Корректное указание путей

Страниц (1): [1]
 

1. 20VinT11 - 25 Ноября, 2014 - 18:42:01 - перейти к сообщению
При обработке данных из формы скриптом, указанном в action="act/action.php" возникает проблема с путями к другим скриптам. Если до обработчика скрипты отлично работают по относительным путям типа main/*.php, то после выполнения запроса из формы везде приходится указывать абсолютные пути типа $path = $_SERVER["DOCUMENT_ROOT"] и путь $path/main/*.php т.е во всем проекте что ли так делать? Как этого избежать????? В адресной строке браузера после выполнения скрипта action.php висит путь ИмяСата/act/action.php и видимо все скрипты начинают эту директорию воспринимать как ту от которой следует плясать..... Как на сайте глобально оптеделить корневую директорию?
2. DeepVarvar - 25 Ноября, 2014 - 19:03:59 - перейти к сообщению
Как на сайте глобально оптеделить корневую директорию?

1) Для HTTP контекста - всегда и все от корня сайта, т.е. начиная со слеша: /a/b/c?x=2 или даже полностью с доменом чтобы не зеркалили сайт так просто.
2) Для бекенда php - всегда абсолютный путь от корня диска, хранить в константе:

index.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1. define('APPLICATION', dirname(__FILE__) . '/');
3. 20VinT11 - 25 Ноября, 2014 - 19:51:02 - перейти к сообщению
т.е я правильно понял: нужно в самом начале определить константу корневой директории define ('CONSTANT', dirname($_SERVER["DOCUMENT_ROOT"])); и перед каждым requare или include вызывать эту константу .... include "CONSTANT/main/index.php" ???
4. Мелкий - 25 Ноября, 2014 - 20:11:26 - перейти к сообщению
Нет, именно __DIR__ или dirname(__FILE__)
DOCUMENT_ROOT может указывать не туда.
5. 20VinT11 - 25 Ноября, 2014 - 20:48:48 - перейти к сообщению
А почему при объявлении константы define ("ROOT", dirname(__DIR__));она видна только в текущем каталоге. Это же глобальная константа, она везде должна быть видна. Но в других папках ROOT определяется как простая строка а уже не константа?
6. DeepVarvar - 25 Ноября, 2014 - 21:03:24 - перейти к сообщению
Потому что надо все приводить к единой точке входа

 

Powered by ExBB FM 1.0 RC1