Функция include - вопрос новичка в PHP

Mirotvoretz
На сайте с 03.07.2009
Offline
86
1230

Ситуация такая: в корневой папке сайта имеется вложенная папка со статьями.

Сайтик разбит на блоки средством INCLUDE, в т.ч. основное меню сайта. Соответственно имеется вложенная папка blocks для этик инклюдов.

Проблема такая: при переходе из статьи (вложенная папка), например на главную, выдаётся ошибка.

Видимо дело в том, что в блоке с меню ссылки прямые, а из вложенной папки - нет. Как быть?

Может кто подскажет начинающему?

SEO
samimages
На сайте с 31.05.2009
Offline
427
#1

Код можно увидеть? Ту часть где ссылки в статьи и из статей

Опыт как иммунитет — приобретается в муках! Хостинг: экономия до 1300 руб + домен в подарок ( https://clck.ru/XLscf ) / Аудит семантики от 15К [долго] - ЛС
Mirotvoretz
На сайте с 03.07.2009
Offline
86
#2

Код ссылки в меню:

<h1>Меню</h1>
<ul class="sidemenu">
<li><strong><a href="index.php" >Главная</a></strong></li>
</ul>

Это - знаходится здесь: site/blocks/menu.php

Ссылка на статью идёт с главной страницы сайта

<ul>
<li><a href="../my_articles/stairs.php">Статья</a></li>
</ul>

Мне кажется, что дело в том, что статья также разбита на блоки при помощи include,

но находится в отдельной папке и когда подставляются блоки, то ссылки

имеют вид: index.php, а не ../index.php.

Как же с эти бороться?

samimages
На сайте с 31.05.2009
Offline
427
#3

Главная по идее должна быть в корне сайта...

т.е.


<ul>
<li><a href="my_articles/stairs.php">Статья</a></li>
</ul>

а из статьи



<a href="../index.php">Статья</a>

include подключает файл туда где функция применена

index.php



бла бла бла
include("my_articles/stairs.php");
бла бла бла

stairs.php



бе бе бе

результат


бла бла бла
бе бе бе
бла бла бла

ссылки если и ведут не туда, то не из-за include()

Mirotvoretz
На сайте с 03.07.2009
Offline
86
#4

Это ясно, проблемка в другом:

Кусок кода страницы index.php:


...

<!-- navigation starts-->
<?php include ("blocks/navigation.php")?>

<!-- navigation ends-->
</div>

<!-- content-wrap starts -->
<div id="content-wrap">

<?php include ("blocks/sidebar.php")?>
<!-- sidebar ends -->
</div>
и т.п.

Главная находится в корне сайта

теперь кусок кода статьи:

<!-- content-wrap starts -->
<div id="content-wrap">

<?php include ("../blocks/sidebar.php")?>
<!-- sidebar ends -->
</div>
<div id="main">

<h1>Заголовок статьи</h1>
<p>текст</P>

<!-- main ends -->
</div>

<!-- content-wrap ends-->
</div>

<!-- column starts -->
<?php include ("../blocks/column_footer.php")?>
<!-- footer-columns ends -->

Статья находится: site/my_articles

Теперь, когда вызываются куски кода с помощью инклюда, там ссылки вида index.php, а не ../index.php.

D
На сайте с 25.09.2008
Offline
16
#5

Пропишите ссылки в абсолютном виде или через подстановку домена из переменных окружения. Или базу задайте.

Mirotvoretz
На сайте с 03.07.2009
Offline
86
#6

Спасибо, dekus!

Уже создал базу данных и загнал статьи туда, хоть сайтик и небольшой.

Но на будущее буду ссылки в блоках задавать в абсолютном виде.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий