Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для 6elka1703
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928

Ошибка с путями к файлам

06.02.2019, 13:16. Показов 1661. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, возникли такие ошибки:
Warning: require(../lib/rb.php): failed to open stream: No such file or directory in C:\OSPanel\domains\repetitor\include\db. php on line 2

Fatal error: require(): Failed opening required '../lib/rb.php' (include_path='.;c:/ospanel/modules/php/PHP-7.1;c:/ospanel/modules/php/PHP-7.1/PEAR/pear') in C:\OSPanel\domains\repetitor\include\db. php on line 2
не могу понять в чем проблема, подключаю один файл
файл registration.php
PHP
1
2
3
<?php
require "include/db.php";
?>
в файле db.php подключаю файл rd.php
PHP
1
2
3
4
5
<?php
require "../lib/rb.php";
R::setup( 'mysql:host=localhost;dbname=Tutor', 'root', '' );
session_start();
?>
Миниатюры
Ошибка с путями к файлам  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.02.2019, 13:16
Ответы с готовыми решениями:

Не корректная работа с путями к файлам
Имеем простой скрипт со следующим содержимым(абсолютный путь к файлу): file_put_contents('/var/www/test/demo/people.txt', 'бла-бла'); Он не...

Работа с путями к файлам, записанными в TextBox
Привет, я потихоньку познаю прелести C#, вопросов конечно море, вот один из них: string path = @&quot;file.txt&quot;; - так код работает...

Работа с полными и неполными путями к файлам
Опять возник вопрос. У меня есть документ, выбранный из листбокса (имя+расширение файла). Мне бы хотелось, вот, что сделать. Запускается...

15
4 / 4 / 0
Регистрация: 23.01.2015
Сообщений: 108
06.02.2019, 13:27
Сразу хочу обратить ваше внимание на то что session_start(); пишется в самом начале а потом уже идет код

PHP
1
2
3
4
5
<?php
session_start();
require "../lib/rb.php";
R::setup( 'mysql:host=localhost;dbname=Tutor', 'root', '' );
?>
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
06.02.2019, 13:29
s88s, не имеет значения, главное чтобы до вызова этой функции не было никакого вывода.
1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.02.2019, 13:33
6elka1703, желательно при работе с файлами в php всегда использовать абсолютный путь к файлам. Для фоомирования абсолютного пути удобно использовать магическую константу __DIR__
1
 Аватар для 6elka1703
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
06.02.2019, 13:45  [ТС]
Цитата Сообщение от s88s Посмотреть сообщение
Сразу хочу обратить ваше внимание на то что session_start(); пишется в самом начале а потом уже идет код
а у меня как? Вызываю функцию session_start() и потом пишу код

Добавлено через 42 секунды
Jewbacabra, возьму на заметку, так а что сейчас не так?

Добавлено через 8 минут
s88s, пардон перепутал
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.02.2019, 13:47
6elka1703, а сейчас используется относительный путь, который резолвится скорее всего не так, как ты ожидаешь
0
 Аватар для 6elka1703
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
06.02.2019, 13:53  [ТС]
Jewbacabra, ну по логике же вроде пути правильные
0
 Аватар для useruser
166 / 90 / 38
Регистрация: 29.06.2015
Сообщений: 1,100
06.02.2019, 14:09
Цитата Сообщение от Jewbacabra Посмотреть сообщение
абсолютный путь к файлам
6elka1703 - вот уже правильно сказали. __DIR__ и забыть остальные варианты.

Относительный путь формируется непонятно относительно чего (я уже не помню).
Потому что не ясно что будет вызывать этот файл. А от этого будет зависеть этот путь.
Сегодня пользователь (процесс), завтра крон. И путь будет разный.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
06.02.2019, 14:14
Лучший ответ Сообщение было отмечено 6elka1703 как решение

Решение

Цитата Сообщение от useruser Посмотреть сообщение
непонятно относительно чего
Цитата из доки:
Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку.

Цитата Сообщение от 6elka1703 Посмотреть сообщение
require "../lib/rb.php";
Протестил на своём OpenServer, работает без указания ../, т.е. просто 'lib/rb.php'. Но вообще лучше сделать как сказали выше - использовать только абсолютные пути. Как вариант, можно сделать так:
PHP
1
define('DIR', __DIR__ . '/');
В файле registration.php. Затем в остальных файлах подключать другие скрипты, строя путь от этой константы:

PHP
1
2
include DIR . 'lib/rb.php';
include DIR . 'include/db.php';
Имхо такой подход проще, поскольку не нужно задумываться, где нужный скрипт находится относительно текущего, всегда строишь путь относительно корня сайта.
0
06.02.2019, 14:26

Не по теме:



Цитата Сообщение от Jodah Посмотреть сообщение
В файле registration.php. Затем в остальных файлах
Не соглашусь. наверно, лучше прямо прописать
PHP
1
include_once (__DIR__.'/../php/mysql_connection.php');
Чтобы всегда и везде иметь доступ к файлу. При сложной структуре, можно и позабыть "В файле registration.php".
По крайней мере у меня так. Когда проект большой - стремлюсь к максимальной независимости модулей, функций.
Пусть модуль будет больше (больше кода), но пусть будет максимально независимый. А то потом кто знает, что то изменится в registration, исказится - бывает же...

В одном файле, где много include, наверно красиво
PHP
1
2
3
define('DIR', __DIR__ . '/');
include DIR . 'lib/rb.php';
include DIR . 'include/db.php';
Хотя тут "экономия текста" в / __ __. :)






0
31 / 46 / 19
Регистрация: 18.07.2018
Сообщений: 578
06.02.2019, 14:32
Цитата Сообщение от useruser Посмотреть сообщение
__DIR__.'/../
нормас

Добавлено через 2 минуты
Цитата Сообщение от 6elka1703 Посмотреть сообщение
require "include/db.php";
PHP
1
require_once __DIR__ . '/include/db.php';
Цитата Сообщение от 6elka1703 Посмотреть сообщение
require "../lib/rb.php";
PHP
1
require_once dirname(__DIR__) . '/lib/rb.php';
0
06.02.2019, 14:35

Не по теме:


Цитата Сообщение от Сынок Посмотреть сообщение
нормас
Что не так? Есть другой способ перейти на уровень выше?

0
31 / 46 / 19
Регистрация: 18.07.2018
Сообщений: 578
06.02.2019, 14:38
Цитата Сообщение от useruser Посмотреть сообщение
Есть другой способ перейти на уровень выше?
выше __DIR__ ?
0
06.02.2019, 14:44

Не по теме:


Цитата Сообщение от Сынок Посмотреть сообщение
выше __DIR__ ?
Выше директории данного файла. Что то смущает?

0
1310 / 1002 / 232
Регистрация: 01.10.2018
Сообщений: 3,898
06.02.2019, 14:47
Jodah, не будет путаницы с завершающим слешем у префикса DIR? Обычно таким префиксам дают более развернутые названия, подчеркивающие присутствие этого слеша. Ну, или DIR.'/....

Цитата Сообщение от Сынок Посмотреть сообщение
нормас
Да, так делают. Но в общем-то и ваш подход хорош.

useruser, он его показал в конце сообщения.
0
31 / 46 / 19
Регистрация: 18.07.2018
Сообщений: 578
06.02.2019, 14:50
Цитата Сообщение от useruser Посмотреть сообщение
Что то смущает?
чтобы окончательно ТС запутать, дайте ему
Code
1
'./../'
дирнеймом выйти и всё
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.02.2019, 14:50
Помогаю со студенческими работами здесь

Перебор файлов на диске. Работа с путями к файлам. Подскажите, куда копать :)
Всем приветы! Изучаю delphi, делаю небольшую программку по подсчету текстовых файлов и ведения бд по ним. Одной трудновато,...

ошибка с путями
компилирую: qmake -project lol.pro qmake make QT += network указал make выдает что не может до тсп сокета путь найти, что...

Android Studio ошибка с путями
При попытке запуска приложения на Android выбила ошибка, пишет что проблема с путями, вопрос где эти пути установки настроить или может у...

Ошибка с путями при запуске другой программы
Есть программа_1 написанная на c#. Обычным двойным щелчком программа_1 запускается без ошибок. Я хочу запустить программу_1 из другой...

Ошибка в программе при работе с путями и файлами
написана программа в C# если в приложении ввести mkdir поставить пробел и нажать enter в строке string mDir =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru