TerryBear
@TerryBear

Как решить проблему: «Один из файлов на локалке не виден исключительно в корневой директории»?

Всем доброй ночи/утра/дня (надеюсь не вечера) ). Вчера столкнулся с такой вот проблемой: при подключении стороннего файла через include, в любой файл корневого раздела, выводится ошибка - Warning: include(../../app/db/functions.php): failed to open stream: No such file or directory in D:\OpenServer\domains\e-News\app\controllers\categories.php . Изначально грешил на неправильно прописанные пути/доступы, но проблема (насколько я могу судить) не в этом, т.к. пробовал абсолютно все виды указания путей (прямые, относительные, (__DIR__ . ""), проверял path в php.ini ) + права 777 - не видит файл и все! Честно, довольно долго пытался решить проблему, но вообще ума не приложу, что же пыхе не нравится.

P.S.
Возможно помогут некие уточнения - что и вообще и зачем я подключаю:
Задача вывести список категорий в сайд бар, при помощи categories.php, а сам сайд на главную страницу. То-есть изначально нужно было подключить categories.php только в сайд, на нем все прекрасно подключается и отрабатывает, тк находится он не в корне, но если зайти непосредственно на главную, то выводит ошибку подключения. После этого решил попробовать напрямую подключить categories.php на главную и... та дамс - все та же ошибка. Все хорошенько проанализировав, прописал инклюды categories и в другие файлы корневого раздела, и да - не подключается. Из чего можно сделать вывод ,что дело именно в корневом разделе, т.к. categories.php прекрасно подключается в сайд-баре и админке.
  • Вопрос задан
  • 73 просмотра
Решения вопроса 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Напрямую из файла
D:\OpenServer\domains\e-News\app\controllers\categories.php
путь ../../app/db/functions.php запросит файл
D:\OpenServer\domains\e-News\app\app\db\functions.php
. Вы уверены?

Но и это ещё не всё! (C) магазины-впариватели.
Если этот categories.php сам был include-нут из другого файла index.php - то текущей директорией становится директория файла index.php, и ../../ нужно считать уже начиная с директории файла index.php. Понимаешь?
Ответ написан
delphinpro
@delphinpro Куратор тега PHP
frontend developer
права 777

Какие нафиг права на windows? Их нет в принципе.

failed to open stream: No such file or directory in


Ошибка очень однозначная, и разночтений быть не может: по указанному пути файл отсутствует.

Есть простой путь:
В индексном файле определите константу

define('DIR_ROOT', __DIR__);
// Здесь у вас будет путь D:\OpenServer\domains\e-News


И используйте ее везде для инклудов

include DIR_ROOT.'/app/db/functions.php';
include DIR_ROOT.'/app/controllers/categories.php';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы