PHP

Не работает PHP include на хостинге

Warning: include(/header.html) [function.include]: failed to open stream: No such file or directory in /home/sashasait/domains/example.com/public_html/index.php on line 53

Warning: include() [function.include]: Failed opening '/header.html' for inclusion (include_path='.:/usr/local/php53/lib/php') in /home/sashasait/domains/example.com/public_html/index.php on line 53
На этих строках у меня <?php include.
Что делать? пути у меня указаны
<?php include '/footer.html';
?>
На денвере всё прекрасно работает, я думаю пути не правильные, но index.php и header.html с footer.html в одной директории. Может надо указывать полный адрес ?
Сколько специалистов-то набежало.
И ни один не знает разницу между абсолютным и относительным путем. Что, впрочем, для специалистов по пхп неудивительно.

В денвере у тебя работает потому, что использованный тобой путь случайно совпал реальным.
Но так не бывает практически никогда.
Слеш перед именем файла означает, что искать его надо в корне диска. И если вдн\енвере у тебя есть виртуальный диск, прямо в корне которого располагается веб-сервер, то на хостинге писать в корень диска никто не даст.
И файлы твои располагаются совсем не в папке /
А в папке /home/sashasait/domains/example.com/public_html/
И вот её-то и надо писать вместо / если ты хочешь получить абсолютный путь.
А абсолютный путь надо использовать всегда, потому что с относительным у тебя в будущем начнутся проблемы.

Впрочем, тебе это всё тоже неинтересно, тебе надо только чтобы сейчас заработало.
АС
Александр Савченко
1 157
Лучший ответ
Витя Некрасов интересно, стараюсь развиваться)
я убрал / как посоветовали выше и пошло, но попробую абсолютный путь если так лучше))
Если в одной директории, то:

include __DIR__.'/header.рhp';

А вообще-то путь к корневой директории сайта находится в $_SERVER['DOCUMENT_ROOT']
Рамиль Хакимов
Рамиль Хакимов
52 294
Витя Некрасов Уже ответили, но спасибо за ответ
надо было всего лишь убрать слэш: '/header.php' >> 'header.php
Про путь - почти правильно. Лучше указывать относительный путь. Вообще непонятно, как это работало на денвере; убери слеш - и все заработает.
Витя Некрасов СПАСИБО ОГРОМНОЕ Я ВАС ЛЮБЛЮ
На хостинге всегда лучше указывать полный путь с помощью предопределенной константы.
Евгений Петров
Евгений Петров
38 877
Витя Некрасов >>предопределенной константы
попроще можно, в php плохо разбираюсь)
У тебя же есть подсказка. Там всё написано как и что указывать.
поставь точку перед /header.html если не поможет поставь две точки ../header.html ./header.html
Витя Некрасов выбивает тогда три строки ошибки а не две :D
Игорь Полехин поставьте серверную дерективу $_SERVER['DOCUMENT_ROOT']