Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#24 used as offset, casting to integer (24) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#27 used as offset, casting to integer (27) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: PHP – абсолютные и относительные ссылки
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): [1] 2 »   

> Описание: Вот такой вопрос интересный!
euroboy
Отправлено: 23 Июля, 2005 - 17:18:13
Post Id


Newbie


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2005  

Карма 0




Надеюсь, что мой вопрос будет по теме.
На моем сайте хочу, используя функцию php, сделать более легче редактируемый сайт, создал четыре файла php top, right, left & footer, которые в свою очередь составляют верхнюю, правую, левую и нижнюю часть выводимой страницы соответственно, однако столкнулся с проблемой, для меня пока не разрешимой, если все эти файлы выложены в корне сайта, то при попытке создать папку (например для статей) и сделать абсолютные или относительные ссылки на эти основные файлы, ссылки (содержащиеся в этих файлах ссылки ) меняются т.е. добавляют к правильному пути еще и адрес той папки в для создания страницы которого они запрашиваются. Например:
Нормально выглядит так: www.site.ru/rutop.php, a в папке со статьями /article в адресе почему то добавляется адрес этой папки и адрес уже выглядит так: www.site.ru/article/rutop.php. Можно безусловно избежать этой проблемы если абсолютно все файлы и соответственно ссылки на них размещать в корне сайта, но эту ужасно не удобно! Надеюсь, кто-нить из гуру и сенсеев php сможет указать правильный путь в решении этого вопроса.
Как же сделать так, чтобы другие скрипты и вообще эти php файлы работали при таких условиях?
Заранее благодарен, НИКолай
 
 Top
Владимир
Отправлено: 23 Июля, 2005 - 18:56:59
Post Id


Advanced Member


Покинул форум
Сообщений всего: 417
Дата рег-ции: Дек. 2004  
Откуда: Санкт-Петербург

Карма 0





Относительная ссылка из /article на файл www.site.ru/rutop.php должна выглядеть так: ../rutop.php
Абсолютная ссылка должна работать однозначно даже если у тебя файлы на другом сервере.
Называй темы так, чтобы было понятно о чем речь.
 
 Top
euroboy
Отправлено: 23 Июля, 2005 - 19:28:48
Post Id


Newbie


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2005  

Карма 0




Ничего подобного и на Денвере и на сайте одна и та же проблема, вот например в корне сайта файл модержащий меню все ссылки отображает ка кположено, то бишь верные пути указывает, как только он используется в папке, т.е. страница со статьей содержащаяся в папке и имеющая функцию инклюд на этот файл с меню, все начинает себя вести по другому (и при относительный и при абсолютном пути до этого файла с меню). И на Денвере и на сайте у хостера появляется в АДРЕСЕ название этой самой злоч\счастной папки в адресе. И ничего поделать не удается, почему и как не знаю потому и обратился за советом, уважаемый админ TvoyWeb не смог дать ответ и порекомендовал выложить этот запрос для всеобщего обсуждения. Вот и вся история.
 
 Top
TvoyWeb Администратор
Отправлено: 23 Июля, 2005 - 19:56:08
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




euroboy пишет:
админ TvoyWeb не смог дать ответ и порекомендовал выложить этот запрос для всеобщего обсуждения.

Нет ты не прав. Я не по этой причине порекомендовал тебе создать тему. А потому что многим это будет полезно знать.

Итак начнем.
К примеру у тебя есть файл left.php с меню.
Примерный код меню:
CODE:
<a href="index.php">Главная</a>
<a href="about.php">О нас</a>
<a href="contact.php">Контакты</a>

Например в корне у тебя есть файл index.php в который инклюдится наш left.php, находящийся тоже в корне. Тогда все ссылки на странице www.site.ru/index.php будут выглядеть как надо.
Но если будем вызывать файл www.site.ru/article/article.php в который также инклюдим файл left.php из корня то все ссылки будут выглядеть как ссылки относительно папки article.
Решение: прописывать в left.php абсолютные ссылки, тогда ссылки не будут меняться независимо куда инклюдится left.php.
 
 Top
Владимир
Отправлено: 23 Июля, 2005 - 20:09:44
Post Id


Advanced Member


Покинул форум
Сообщений всего: 417
Дата рег-ции: Дек. 2004  
Откуда: Санкт-Петербург

Карма 0




Давай так. Что такое инклуд? Это включения некого файла в код страницы(как его части). Раз у тебя страница в /article, то и весь код, включая инклудный файл, лежит в /article. Поэтому ссылки и неверные. Сделай так: перед ссылками в файле меню добавь $papka. Получаться примерно так:
<a href= $papka.'ссылка_меню.php' >
Теперь в файлах php до инклуда задай $papka = "../"; для файлов в папках и $papka = "./"; для файлов основной директории. Должно получиться...
 
 Top
euroboy
Отправлено: 24 Июля, 2005 - 10:48:12
Post Id


Newbie


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2005  

Карма 0




Спасибо за помощь и дельный совет, правда, так и не смог понять, как и куда нужно вставлять код $papka.
Большая часть проблем решена, однако неожиданно возникли и другие, вернее те же самые, только до этого не бросавшиеся в глаза!
После инклюда файла right.php в основную страницу в папке www.site.ru/article/index.php выяснилось следующее:
в данном файле находящемся в корне есть html-код с ссылками а также картинка (формат .jpg) так вот, при нормальном виде ссылки на них должны быть например следующие:
http://www.site.ru/lavka/index.php, а получается вот что -
http://www.site.ru/article/lavka/index.php

с картинкой та же беда. должно быть:
http://www.site.ru/i/shop_pic3.jpg , а на выходе имеем -
http://www.site.ru/article/i/shop_pic3.jpg. Вот так выглядит код этого ресурса непосредственно в самом файле файла right.php:
<img src="i/shop_pic3.jpg" width="152" height="220" border="0">
Даже с учетом всех Ваших рекомендаций, решения и этой проблемы я так и не смог найти, и ничего не остается, как снова обратится к Вам за помощью.
Заранее благодарен, НИКолай.
 
 Top
Владимир
Отправлено: 24 Июля, 2005 - 15:42:50
Post Id


Advanced Member


Покинул форум
Сообщений всего: 417
Дата рег-ции: Дек. 2004  
Откуда: Санкт-Петербург

Карма 0




Цитата:
Решение: прописывать в left.php абсолютные ссылки,
Не устраивает?
Тогда разжовываю с кодом $papka:
ВСЕ ссылки в любом месте сайта должны иметь вид:
CODE:
<a href= $papka.'ссылка.php' >страница</a>

ВСЕ рисунки должны иметь вид:
CODE:
<img src=$papka.'адрес_картинки.jpg' width="152" height="220" border="0">

В начале КАЖДОГО файла .php должна быть строчка:
Для файлов .php лежащих в любой папке
CODE:
$papka = "../";

Для файлов .php лежащих в корне сайта
CODE:
$papka = "./";

ссылка.php и адрес_картинки.jpg - это твои относительные ссылки. Те, что были у тебя изначально.
 
 Top
Леголегс Администратор
Отправлено: 24 Июля, 2005 - 16:07:50
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




euroboy
Я бы тебе посоветовал всё-таки использовать абсолютные ссылки. Если сильно ломает писать
CODE:
<a href="http://site.hoster.ru/somedir/some.php">ссылка</a>
то пиши путь от корневой папки, т.е. от "/"
CODE:
<a href="/somedir/some.php">ссылка</a>
 
 Top
Ray Wen Администратор
Отправлено: 24 Июля, 2005 - 16:28:06
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




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

Нужно на все взглянуть с другой стороны... ты сейчас пытаешся сделать кучу страничек с содержанием и навесить на них одинаковый шаблон, при этом разбить по класификации... А что если сделать на оборот, сделать шаблон и на него навесить разное содержание? Ты сразу избавляешся от кучи проблем...
Пример: Сделай свой диз в одном или нескольки файлах и прикрепи его к одному, к index.php... Сделай содержание страничек и запихни его в папку page/... При этом ты сможеш в этой папке уже разбивать по папочкам на классы как тебе взблагорасудится... пробем с дизайном у тебя уже не возникнет... В index.php прописываеш всего одну строчку где ты хотел бы видеть свое содержание... примерно так:
CODE:
$id=(isset($_GET['id'])?$_GET['id']:'index'; //Для запуска главной странице при входе без параметров
include ('page/'.((isset($_GET['f']))?$_GET['f'].'/'.$id:$id).'.php');

Естественно что в page/ должен быть файл index.php с содержанием главной страницы... Ссылки на страницы будут выглядеть примерно так: index.php?id=rutop, или index.php?f=article&id=rutop для того чтобы достать файл с содержанием из папки article...
Мда, придется повозится с переделкой, но зато потом будет на много удобнее... полностью решаются проблемы с шаблонами, так как это всего один файл и прописан он только в нем одном... Добавлять тоже удобнее, забрасываеш содержание и даеш где-то ссылку на него...
 
 Top
Владимир
Отправлено: 24 Июля, 2005 - 17:45:43
Post Id


Advanced Member


Покинул форум
Сообщений всего: 417
Дата рег-ции: Дек. 2004  
Откуда: Санкт-Петербург

Карма 0




Ray Wen пишет:
А по моему с самого начала не правильный подход к проблеме...
Абсолютно согласен. Было бы желание сделать один раз большой труд чтобы потом жить спокойно.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0549]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33