[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: [b]Не работают абсолютные ссылки[/b]
Guest
Файл pages/n1.php содержит:
<?
include ("/n2.php");
?>
<br><br><br>
<?
include ($_SERVER['DOCUMENT_ROOT']."/n2.php");
?>


Файл n2.php содержит:
<? echo "Ссылка работает!"; ?>


Страница pages/n1.php в браузере выглядит так:
Цитата
Warning: include(/n2.php) [function.include]: failed to open stream: No such file or directory in /home/u444555333/public_html/pages/n1.php on line 8

Warning: include() [function.include]: Failed opening '/n2.php' for inclusion (include_path='.:/usr/lib/php') in /home/u444555333/public_html/pages/n1.php on line 8



Ссылка работает!


Оба инклюда, вроде бы, означают одно и то же. Почему тогда работает только второй?
Xpund
Вместо /n2.php => n2.php или ./n2.php

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Guest
Просто n2.php направит в эту же папку, а не от корня сайта (разве не так?). А ./n2.php не работает. Вообще не понимаю, такой простой элемент - как он может не работать? sad.gif
Guest
На локальном тоже самое... В ошибке путь к файлу правильно указан - почему тогда файл не может быть найден?
Guest
А, тут оказывается всё немножко интересней - не работает только внутри include'а. Изображения подключаются нормально. Что это может быть, подскажите, пожалуйста.
Nikitian
Цитата (Guest @ 25.01.2013 - 19:40)
Просто n2.php направит в эту же папку, а не от корня сайта (разве не так?).

Так и ваш пример адресует не от корня сайта, а от корня сервера. Практически 100%, что ваш сайт не находится в корне сервера. Можно для адресации от корня сайта использовать переменную $_SERVER['DOCUMENT_ROOT'], но не факт, что эта переменная будет определена. Надёжнее и, имхо правильнее, использовать относительную адресацию - это позволит ваши скрипт ы располагать в поддиректориях. Я все пути прописываю так:

include(dirname(__FILE__).'/file1.php');
include(dirname(__FILE__).'/../file1.php');
include(dirname(__FILE__).'/somedir/file1.php');
include(dirname(__FILE__).'/../../somedir/file1.php');

Система должна быть целостной, без привязки к месту расположения.
phpschool
Я не советовал бы абсолютные пути использовать. Кроме этого относительные корня так же не рекомендую. Система должна быть единой, а значит проще относительный путь указать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.