Задать вопрос
@Gleb316
Учиться и не бросать на половине.

Абсолютный путь к файлу php?

Всем привет.
Делаю к ссылкам на фотки или просто к <a href="">
define("SITEROOTDIR", $_SERVER['DOCUMENT_ROOT']);
а потом ссылку к ссылке или фотке добавляю вот так
<img src="<?php echo SITEROOTDIR . '/img/kamin/best_kamin.jpg';?>">


и ссылка просто не работаетf7198359ef9f47b799eb33d0421bdc49.png
Вопрос :Как можно прописывать абсолютные пути к ссылкам? Так как у меня есть шаблон header php и на каждой страницы разные ссылки к главным страницам и другого выхода я не знаю. Или это можно както реализовать по другому ?
  • Вопрос задан
  • 9015 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
gr1mm3r
@gr1mm3r
50% ответа в правильном вопросе. Остальное мануал.
<img src="<?php echo SITEROOTDIR . '/img/kamin/best_kamin.jpg';?>">
- это читается от корня системы. Зачем? Не надо так. Вы сами даете злоумышленникам пути для захвата.
<img src="/img/kamin/best_kamin.jpg"> - это путь относительно корня сайта. И ему плевать где и в какой папке в системе находятся ваши файлы. Он будет отображать только "Корень_сайта[Имя_домена]/путь до файлов" Это и есть правильно. Еще и хтаксесс на read поставть надо.
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
В вашем случае есть 2 абсолютных пути: на сервере и на клиенте.
Для того, чтобы надежно открыть файл на сервере используйте SITEROOTDIR . '/img/kamin/best_kamin.jpg'.
Для того, чтобы указать путь к файлу на фронтенде достаточно /img/kamin/best_kamin.jpg (начальный слэш значит что путь будет от носительно домена, то есть https://example.com/img/kamin/best_kamin.jpg не зависимо от текущей страницы). Либо можете явно добавить префикс https://example.com вместо SITEROOTDIR.

P.S. Вместо
<?php echo SITEROOTDIR . '/img/kamin/best_kamin.jpg';?>

лучше использовать
<?=SITEROOTDIR.'/img/kamin/best_kamin.jpg'?>
а ещё лучше вынести неизменяемую часть
<?=SITEROOTDIR?>/img/kamin/best_kamin.jpg
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы