Forum Webscript.Ru

Программирование => PHP => Тема начата: DLama от 19 Ноября 2001, 19:24:43

Название: Есть трудный вопрос.
Отправлено: DLama от 19 Ноября 2001, 19:24:43
Вопрос трудный, для меня конечно и я надеюсь, что найдутся те, кому ответить на него не составляет проблемм.

Стоит следующая задача.
Нужно задавать переменные таким образом, что бы они были зависимы в строки URL.

Поясню.
Предположим пользователь обратился к странице http://roma.ru/sections/tolik/istoria.phtml
Теперь нужно сделать анализ URL и определить переменные соответствующие разделу в котором лежит документ. В данном URL например признаком принятия решения, т.е. выбора того или иного варианта переменных является последовательность "tolik" и соответственно переменые устанавливаются соответствующие разделу tolik. А в URL таком http://roma.ru/sections/maha/skazki.phtml является наличие в URL "maha".
Теперь собственно сам вопрос.
Какой функцией в РНР можно было бы сделать анализ и принять решение о наличии в URL той или оной последовательности знаков.

Всех зарание благодарю за помощь.
Название: Есть трудный вопрос.
Отправлено: Britva от 19 Ноября 2001, 19:35:45
http://www.php.net/manual/en/function.parse-url.php
Название: Есть трудный вопрос.
Отправлено: NAS от 19 Ноября 2001, 19:36:35
Для начала
http://www.webscript.ru/stories.php3?story=52
Название: Есть трудный вопрос.
Отправлено: DLama от 20 Ноября 2001, 03:43:36
Britva
Эх, ещё бы это по русски, а то чёрт ногу сломит.

Спасибо мужики, попытаюсь разобраться.
Название: Есть трудный вопрос.
Отправлено: DimovD от 21 Ноября 2001, 00:15:53
DLama

А почему не так?
http://roma.ru/sections/istoria.phtml?int=tolik
http://roma.ru/sections/istoria.phtml?int=masha
Название: Есть трудный вопрос.
Отправлено: DLama от 21 Ноября 2001, 05:05:22
То  DimovD
 
Ну например по тому что есть люди которые обрезают адрес ручками и попадают в error 404, т.е. делают так
http://roma.ru/sections/istoria.phtml
или так
http://roma.ru/sections/
а если разделов и подразделов предостаточно, то получается что то геморное :(
Случай http://roma.ru/sections/ конечно не смертельный и решается киданием индекс файла в папки например, а вот первый
http://roma.ru/sections/istoria.phtml однозначно ошибка, но тут конечно можно былобы в сам istoria.phtml кинуть для определённости.
Ещё хуже когда чел орезку делает не верно, с ошибкой типа http://roma.ru/sections/istoria.ph

Не знаю, может дело просто я "классики правильной структуры" сайта не знаю, может подскажите, как например Вы делали.
Название: Есть трудный вопрос.
Отправлено: DimovD от 21 Ноября 2001, 10:10:16
DLama
Если беспокоиться об обрезании адреса ручками, то  Твой способ
http://roma.ru/sections/tolik/istoria.phtml как раз менее правильный чем
http://roma.ru/sections/istoria.phtml?int=tolik
Ты объясни- что Ты делаешь, тогда можно будет советовать как это делать :)
Название: Есть трудный вопрос.
Отправлено: DLama от 21 Ноября 2001, 10:40:14
То DimovD

Всё достаточно просто и достаточно сложно :)

Контент раскидан по разделам типа предположим
skazki
anekdoti
istorii
povesti

Нужно чтобы при запросе типа http://roma.ru/sections/skazki/skazki.phtml
в зависимости от того в каком разделе контент, подгружались соответствующие переменные (для оформления и прочей лабуды) и при этом чтобы при любой обрезке и искажении урл до http://roma.ru/sections/skazki/
посетитель не вываливался за пределы раздела skazki
Т.е. получается что всё должно определятся по урл без QUERY_STRING
Ну и чтобы структура сайта пользователю была понятна и из урла в том числе, т.е. отсутствовали непоняточки в урле после "?"
Вариант описанный в http://www.webscript.ru/stories.php3?story=52 не кактит, так хостер "не очень этому рад".
Название: Есть трудный вопрос.
Отправлено: alexvolkov от 21 Ноября 2001, 12:44:00
Кхе-кхе... Ну вы знаете, что я бы тут сказал :-)
Название: Есть трудный вопрос.
Отправлено: DLama от 22 Ноября 2001, 03:00:55
To alexvolkov
"Кхе-кхе... Ну вы знаете, что я бы тут сказал :-)"

Так что бы ты сказал? Что то плохо слышно! Надеюсь интересная мысль.
Название: Есть трудный вопрос.
Отправлено: Britva от 22 Ноября 2001, 03:06:34
http://ssrtech.com он бы сказал, alexvolkov я правильно понял? :)
Название: Есть трудный вопрос.
Отправлено: Foshvad от 25 Ноября 2001, 01:05:21
Хмм...
Лично у меня сделано так:

      $url = explode("/", $REQUEST_URI);

Тогда $url[2]  и будет skazki, anekdoti, istorii или povesti по ситуации.

> хостер "не очень этому рад".

а это уже нехорошо. Точнее нехороший. Хостер. От переопределения 404-я странички ему ничего плохого не станется, со стругтурой сайта действительно проще.
Название: Есть трудный вопрос.
Отправлено: DLama от 26 Ноября 2001, 10:00:28
То Foshvad
Спасибо за вариант.

$url = explode("/", $REQUEST_URI);
Тогда $url[2] и будет skazki, anekdoti, istorii или povesti по ситуации.

Т.е. получается что в переменной $url ,удет skazki, anekdoti, istorii povesti и т.д. всё через пробел вместо "/"

Теперь подскажите пожалуйста как присвоить из этого другие перменные.
Например:
Есть запрос http://roma.ru/sections/istoria/subsections/skazki/?id=labuda
Получили в $url
sections  istoria  subsections  skazki  id=labuda

Как бы теперь присвоить перменным, например таким:
$urls1; $urls2; $urls3; $urls4; $urls5; $urls6,
значения из перменной $url , что бы получилось так:
$urls1="sections";
$urls2="istoria";
$urls3="subsections";
$urls4="skazki";
$urls5="id=labuda";
$urls6="";
т.е. по порядку следования например урле,
а потом что бы это дело можно было уже использовать по потребностям.

Или может из   explode("/", $REQUEST_URI);
сразу присваивать нескольким переменным???

Или может я не понял чего. Может $url[1], $url[2], $url[3]
и т.д. и выдаст мне требуемое?

Буду весь признателен за подробный ответ.
Название: Есть трудный вопрос.
Отправлено: Foshvad от 26 Ноября 2001, 12:00:46
А чем вы не подходят переменный массиве? В принципе можно сделать
list($url1,$url2....) = $url

Только зачем?