2014-09-03 2 views
-7

У меня есть php-файл в моем корне приложения. Я могу получить к нему доступ вот так: localhost/auth.phpВключает изменение пути по папке для PHP?

My auth.php есть здесь.

include_once("infrastructure/account/AccountManager.php"); 

if(AccountManager::isUserLoggedIn()){ 
    echo '{"user":{"isAuthenticated": true"} }'; 
}else{ 
    echo '{"user":{"isAuthenticated": false} }'; 
} 

Я хочу поместить auth.php в папку пользователя в корне. localhost/user/auth.php И я переехал auth.phpпользователь папка. Но было предупреждение.

include_once(): Ошибка открытия 'инфраструктуры/счета/AccountManager.php' для включения (include_path = '.; C: \ PHP \ грушей')

является include_once относительный путь меняется от файла место нахождения?

+0

'include_once ('../ инфраструктуры ...')'. Поскольку ваш 'auth.php' спустился по папке, ваш путь включения изменится. – putvande

+1

Как вы думаете, что означает слово «родственник», hm? – CBroe

+0

Как только путь не является абсолютным (поэтому не начинается с '/'), тогда он будет относиться к _current working directory_. Это может быть не каталог текущего скрипта (в случае, если он включен), это каталог, из которого началось выполнение трассировки скрипта. Он может быть изменен с помощью 'cd' где-то внутри скрипта, но в общей ситуации - это будет начальный каталог сценариев –

ответ

0

Основание для относительного пути принимается всегда как текущий рабочий каталог.

Так, как при изменении местоположения auth.php на «пользовательскую» папку исполняемый каталог изменяется на «пользовательскую» папку.

Чтобы выбрать папки из корневого каталога, вам необходимо перейти в корневую папку.

0

Попробуйте использовать это:

include_once("localhost/infrastructure/account/AccountManager.php"); 

или

include_once("../infrastructure/account/AccountManager.php"); 

../ ссылается на родительский каталог текущего каталога; если вам нужно вернуться на два уровня, вы должны использовать ../../ и так далее.

+0

, но на этот раз другие файлы, на которые ссылается«/инфраструктура/учетная запись », дают предупреждение. – barteloma

+0

Поскольку вы перенесли auth.php в другую папку, все файлы, на которые указывает auth.php, и все файлы, указывающие на auth.php, могут выводить ошибки, поэтому вам необходимо их проверить и изменить. –

0

попробовать этот

include_once($_SERVER['DOCUMENT_ROOT]."/infrastructure/account/AccountManager.php"); 
Смежные вопросы