За последние 24 часа нас посетили 18907 программистов и 1613 роботов. Сейчас ищут 640 программистов ...

include не срабатывает, а если да - то не правильно

Тема в разделе "PHP для новичков", создана пользователем TyronNIKO, 11 май 2017.

  1. TyronNIKO

    TyronNIKO Новичок

    С нами с:
    6 апр 2017
    Сообщения:
    23
    Симпатии:
    4
    Доброго времени! Столкнулся с проблемой:
    есть несколько каталогов в дереве сайта.
    основная страница "site/index.php, на ней выводится 5 материалов из каталога "site/content/" в коде каждой лежит include_once 'menu.php'; "site/includes/", которое выводит меню на страницах. Работает отлично.
    Начинаю углубляться в каталоги, например: материал "Контакты" имеет 5 ссылок, материал которых находится в каталоге "site/content/client/" и указывая include_once 'menu.php'; - ничего нету, только наполнение страницы, в коде пустое место!
    Попробовал добавить к include_once $_SERVER['DOCUMENT_ROOT']. - после чего все заработало, но! теперь все ссылки из меню абсолютны тому каталогу, в котором находится страница...
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. TyronNIKO

    TyronNIKO Новичок

    С нами с:
    6 апр 2017
    Сообщения:
    23
    Симпатии:
    4
    Я перечитал уже по несколько раз и документацию и гугл... нет ниодного нормального примера по моему вопросу... я уже и абсолютный адрес писал! Что то не так, а понять я не могу! На форум я пишу только в крайнем случае, когда совсем туго. Потому и прошу помощи не ссылками, а банальным примером!
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @TyronNIKO тогда делай отладку, вместо вызова include выводи путь и смотри если он правильный.
    сделай эксперименты, включи отображение ошибок, там будет подсказка какой файл PHP пытается подключить и не выходит.
    там всё очень просто, нужно осилить логическую цепочку.
    пример с document_root очень хороший, ты можешь для простоты всегда начинать отсчёт от него, ну и перепроверь если он правильный
     
  5. TyronNIKO

    TyronNIKO Новичок

    С нами с:
    6 апр 2017
    Сообщения:
    23
    Симпатии:
    4
    Включил, поисправлял все ошибки, чуток переделал все и....!
    Почему находясь на главной странице у меня меню впорядке, но перейдя на страницу по ссылке - в сылках меню дописывается каталог в котором находится страница?
    В этом была проблема изначально...

    вот такой код выводит пункты меню:
    Код (Text):
    1. $menuList = array(
    2.     'content/services.php' => 'Услуги',
    3.     'content/promotions.php' => 'Акции',
    4.     'content/social.php' => 'Благотворительность',
    5.     'content/about.php' => 'Онас',
    6.     'content/clients.php' => 'Для клиентов',
    7. );
    8.             <?php
    9.             foreach($menuList as $menuId => $menuName){
    10.                 echo "<li><a href=\"$menuId\">$menuName</a></li>";
    11.             }
    12.             ?>
     
  6. [vs]

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

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Надо всего лишь в адреса ссылок в меню добавить / в самое начало.
     
    TyronNIKO нравится это.
  7. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Слэш перед content поставь.
    --- Добавлено ---
    А ещё лучше добавь в цикл /content/, а в массиве оставь только имена файлов.
     
    TyronNIKO и [vs] нравится это.
  8. TyronNIKO

    TyronNIKO Новичок

    С нами с:
    6 апр 2017
    Сообщения:
    23
    Симпатии:
    4
    я весь код перерыл... а оно вот как! спасибо! ;)
     
    denis01 нравится это.
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Когда ты тыкал или смотрел на не правильные ссылки, то нужно было посмотреть их путь в HTML коде и сравнить с тем куда они ведут если на них нажать,
    имея эти два пути, сесть и прочитать http://phpfaq.ru/newbie/paths при этом вникая где там расписан твой случай,
    там не зря пишут о двух понятиях, это ссылки в браузере и путь в файловой системе, разные вещи, но есть кое что одинаковое и это надо учитывать.


    отладка/debug
    http://phpfaq.ru/debug
    https://netbeans.org/kb/docs/php/debugging_ru.html
    https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550
     
    TyronNIKO нравится это.
  10. TyronNIKO

    TyronNIKO Новичок

    С нами с:
    6 апр 2017
    Сообщения:
    23
    Симпатии:
    4
    Просто до того как я начал углубляться все работало нормально
     
    denis01 нравится это.