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
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как прописать путь от корня - запутался... [2]
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
LIME
Отправлено: 15 Июня, 2013 - 13:52:44
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
нет смысла
винда понимает оба слеша
Hapson
Отправлено: 15 Июня, 2013 - 13:59:00
Посетитель
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
LIME пишет:
нет смысла
винда понимает оба слеша
Понятно, спасибо.
Как же тогда быть с админкой... Вход в админку через другой index.php, который лежит в корень/admin/index.php (Добавление)
Может прописать константу в config.php, так как он подключен к обоим index.php и лежит в корне
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
esterio
Отправлено: 15 Июня, 2013 - 14:20:32
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
в общем опишу так.
1. слешы
nix*-ы понимают только /
винда же понимает оба варианта.
Но все же для полной кростплатферменности используют DIRECTORY_SEPARATOR
И вы в правильном направлении движитесь, так как константа долгая и многые определяют свою
2. какподсказали выше getcwd
Но если бы прочитали доку то увидели бы такое:
Цитата:
На некоторых вариантах Unix getcwd() вернет FALSE, если на каком-либо из родительских каталогов не установлен режим чтения или поиска, даже если он установлен на текущем каталоге
Поетому результатам данной функции я бы не доверял
3. $_SERVER['DOCUMENT_ROOT'] - отлично работает на апаче, но увы с nginx не прокатит.
4. __DIR__ - то что нужно, и как писали выше появилась в PHP 5.3
5. dirname(__FILE__) - древняя конструкция и работает везде, но не забываем о том что все уже сидят на 5.3 версии
Теперь стосовно __DIR__ и __FILE__:
обе константы предопределенные и указивают на текущый каталог/файл в котором вызвана константа
данный подход отлично как раз подходит для единой точкы входа, тоесть index.php
А щас о вашем индексе в админке. Есть два варианта
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
esterio
Отправлено: 15 Июня, 2013 - 14:45:09
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
получится то что надо
Hapson
Отправлено: 15 Июня, 2013 - 14:47:12
Посетитель
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
esterio пишет:
получится то что надо
А ну да, то есть конфликта здесь никакого не будет.
Просто можно будет уже не думать, откуда попал на тот или иной файл - из фронта или из админки, просто везде писать ROOT.
Спасибо!
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
Ch_chov
Отправлено: 15 Июня, 2013 - 18:12:33
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
Цитата:
Но если бы прочитали доку то увидели бы такое:
Цитата:
На некоторых вариантах Unix getcwd() вернет FALSE, если на каком-либо из родительских каталогов не установлен режим чтения или поиска, даже если он установлен на текущем каталоге
Поетому результатам данной функции я бы не доверял
А не нужно закрывать доступ на чтение к каталогам в которых находятся скрипты.
DelphinPRO
Отправлено: 15 Июня, 2013 - 22:30:51
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
LIME пишет:
нет смысла
винда понимает оба слеша
esterio пишет:
в общем опишу так.
1. слешы
nix*-ы понимают только /
винда же понимает оба варианта.
блин, опять!!! задолбался объяснять!! винда не понимает — ей вообще пофиг данный момент, — винда понимает только один вид слэша - "\"
а в скриптах понимает php, скомпиленный под винду, который преобразует "\" в "/" (или наоборот, неважно), это разные вещи, и это нужно понимать.
Hapson пишет:
Как же тогда быть с админкой... Вход в админку через другой index.php, который лежит в корень/admin/index.php
вы как разработчик знаете расположение админки относительно корня, значит вы можете вычислить этот путь.
Пполучить абсолютный путь путь можно функцией realpath()
грубо говоря если ваша админка лежит в каталоге admin основного каталога сайта, то в /admin/index.php вы можете определить константу
define ('ROOT', realpath(__DIR__.'/../')) в файле index.php;
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.