• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Хостинг. Объязательный абсолютный путь к файлу для require и include

Форумы Хостинг Объязательный абсолютный путь к файлу для require и include
frolly35
19.05.2017 18:12
хостинг: есть
домен: есть
Объязательный абсолютный путь к файлу для require и include
Всем привет)
Такой вопрос, это нормально что у меня на сайте не работает "относительные пути к файлу" для require, include, require_once, include_once?
Если указываю путь к файлу типа
require('templates/test/index.php')
- то я получаю еррор.
Если использую вида
require('/home/engine32/moidomen.ru/www/templates/test/index.php')

то всё нормально.

Если я буду использовать абсолютный путь к файлу это не понизит безопасность сайта?
Спасибо
toxi
20.05.2017 02:29
хостинг: есть
домен: есть
Доброго дня.
Безопасность не понизится, но при переносе сайта, нужно будет все пути редактировать заново в всех файлах.
Можете показать, какие ошибки показываются?
frolly35
20.05.2017 14:25
хостинг: есть
домен: есть
Warning: require_once(/templates/top/categories.php): failed to open stream: No such file or directory in /home/engine07/moidomen.ru/www/engine/controllers/VideoController.php on line 475

Fatal error: require_once(): Failed opening required '/templates/top/categories.php' (include_path='.:/usr/local/pear/php55') in /home/engine07/moidomen.ru/www/engine/controllers/VideoController.php on line 475
toxi
20.05.2017 16:09
хостинг: есть
домен: есть
Есть вероятность, что при использовании относительного пути скрипт, который подключает другой файл, находятся в разных каталогах либо главный файл, например index.php, который собирает все файлы вместе, образуя уже готовую страницу, не находит этот файл относительно своего каталога.
Например:
index.php
|_ 1dir
| |_ 1.php
|_ 2dir
| |_ 2.php
|_ 3dir
|_ 3.php

Если в таком случае Вы инклудите в файл 2.php файл 3.php через require('3dir/3.php') то будет ошибка.
Если попробовать написать так: require('../3dir/3.php') то должен подключиться без проблем, так как мы вернулись в "корневой каталог" и в нем ищем папку 3dir и в ней файл 3.php, что нам и нужно. Возможно у Вас похожая ситуация. Попробуйте добавить "возврат на каталог выше" в require('templates/test/index.php'). Например так: require('../templates/test/index.php') либо может потребоваться даже так: require('../../templates/test/index.php')
Дмитрий Б.
20.05.2017 21:49
хостинг: есть
домен: нет
1
Указанная Вами конструкция
require('templates/test/index.php') © frolly35

должна работать.
Судя по тексту ошибки
Warning: require_once(/templates/top/categories.php) © frolly35

пусть указан как require('/templates/test/index.php') т.е. с лидирующим слешем. И воспринимается как полный путь.
frolly35
20.05.2017 22:55
хостинг: есть
домен: есть
Спасибо, да я был немного невнимательный, если без первого '/' то всё норм, но я по любому решил поставить для include и require .. константу ROOT_TPL.
define( 'ROOT_DIR', dirname(__FILE__) );
define( 'TPL', '/templates/top/' );
define( 'ROOT_TPL', ROOT_DIR . TPL );

Спасибо )
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города