За последние 24 часа нас посетили 20744 программиста и 1010 роботов. Сейчас ищет 391 программист ...

Не работает абсолютная ссылка! Подскажите новичку.

Тема в разделе "PHP для новичков", создана пользователем Hooker, 20 июл 2011.

  1. Hooker

    Hooker Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Приветствую всех, кто читает это сообщение. Я недавно увлекся php, поэтому сталкиваюсь с трудностями.

    Проблема такая:

    Хочу сделать сайт с использование php-вставок ( используя include). Имеется 2 страницы, полный путь к которым: http://site.ru/pages/php/main.php и http://site.ru/header.php
    Текст со страницы header.php я хочу добавить на страницу main.php, для чего прописываю в main.php следующее:
    <?php include 'http://site.ru/header.php'; ?>, но ничего в итоге не отображается... :(

    Пробовал так: <?php include '/header.php'; ?>, но толку нет.

    Единственное, что работает, так это <?php include '../../header.php'; ?>

    Подскажите, почему не работает абсолютный путь?
     
  2. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    может потому что вы не верно написали абсолютный путь?
    вы написали адрес урл
    а инклуде к этому адресу не какого отношения не имеет, это функция для работы с файлами, и путь должен быть файловой системы.
     
  3. Hooker

    Hooker Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
  5. Hooker

    Hooker Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Так как заставить include работать? Покажите на примере
     
  6. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    вот так
    PHP:
    1. <?php include '../../header.php'; ?>
    или же
    PHP:
    1. <?php include '/полный/путь/к/директории/header.php'; ?>
     
  7. Hooker

    Hooker Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Пишу так
    <?php include '/public_html/site.ru/header.php'; ?>
    и не работает
     
  8. Котэ

    Котэ Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    35
    Симпатии:
    0
    конечно стоит тебя помучать :) ну да ладно...

    /header.php
     
  9. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    вы уверенны что это весь путь?
    обычно путь начинается с /home/...
    или с /var/...
    создайте скрипт
    PHP:
    1. <?php echo dirname(__FILE__) ?>
    Он вам покажет полный путь к скрипту
     
  10. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    стоит почитать вначале :)
     
  11. Котэ

    Котэ Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    35
    Симпатии:
    0
    а тебе что трудно проверить :)
     
  12. Котэ

    Котэ Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    35
    Симпатии:
    0
    PHP:
    1. require_once('/header.php');
     
  13. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    / - означает что от корня из патча, а если у него нет корневого каталога в патче? то и не найдёт он файла.
     
  14. Котэ

    Котэ Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    35
    Симпатии:
    0
    и такое не катит?

    DIRECTORY_SEPARATOR . header.php

    или даже

    $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . header.php
     
  15. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    такое должно работать, пока кроном не захочет запустить скрпит без web сервера
     
  16. Котэ

    Котэ Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    35
    Симпатии:
    0
    не захочет, судя по названию там у него скорее всего просто ХТМЛ :)
     
  17. Hooker

    Hooker Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Вот это спасибо за совет. Посмотрел директорию, в действительности оказалось:
    <?php include '/home/site/domains/site.ru/public_html/header.php'; ?>

    Тогда другой вопрос, почему на этом сайте: http://www.bestfree.ru/article/webdesign/php.php
    автор прописывает путь через http://www.ваш_сайт/header.php ? И у него похоже в таком виде работает, а у меня нет.
     
  18. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    Не читал что там, не люблю читать много букф :)

    могу предположить что у автора там только html код и в настройках php разрешено использовать удалённый include

    просто нужно понимать что когда ты обращаешься по http:// обработка идёт файла перед тем как ты его включишь с помощью вэб сервера.
    а когда ты включаешь по файловому пути - то вэб сервер не обрабатывает.

    эти знания понадобятся когда ты захочешь например закрыть к файлам доступ по ссылке из вне, а с помощью инклуда ты легко сможешь включать эти файлы в свой проект.

    вообщем на практике не видел зачем нужны удалённые конекты, это скорей всего только безопасность нарушит, если бы это было не так, то по умолчанию эта возможность была бы включена в пхп.
     
  19. Hooker

    Hooker Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Понятно, спасибо.