Автор Тема: Есть трудный вопрос.  (Прочитано 4920 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DLama

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 65
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть трудный вопрос.
« : 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

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Евгений aka Razor,

Оффлайн NAS

  • Неопытный юзер
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2951
  • +1/-0
  • 1
    • Просмотр профиля
    • http://nhouse.ru
Есть трудный вопрос.
« Ответ #2 : 19 Ноября 2001, 19:36:35 »

Оффлайн DLama

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 65
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть трудный вопрос.
« Ответ #3 : 20 Ноября 2001, 03:43:36 »
Britva
Эх, ещё бы это по русски, а то чёрт ногу сломит.

Спасибо мужики, попытаюсь разобраться.

Оффлайн DimovD

  • Ноу проблем
  • Пользователь
  • **
  • Сообщений: 79
  • +0/-0
  • 2
    • Просмотр профиля
Есть трудный вопрос.
« Ответ #4 : 21 Ноября 2001, 00:15:53 »

Оффлайн DLama

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 65
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть трудный вопрос.
« Ответ #5 : 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

  • Ноу проблем
  • Пользователь
  • **
  • Сообщений: 79
  • +0/-0
  • 2
    • Просмотр профиля
Есть трудный вопрос.
« Ответ #6 : 21 Ноября 2001, 10:10:16 »
DLama
Если беспокоиться об обрезании адреса ручками, то  Твой способ
http://roma.ru/sections/tolik/istoria.phtml как раз менее правильный чем
http://roma.ru/sections/istoria.phtml?int=tolik
Ты объясни- что Ты делаешь, тогда можно будет советовать как это делать :)

Оффлайн DLama

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 65
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть трудный вопрос.
« Ответ #7 : 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

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.ssrtech.com
Есть трудный вопрос.
« Ответ #8 : 21 Ноября 2001, 12:44:00 »
Кхе-кхе... Ну вы знаете, что я бы тут сказал :-)

Оффлайн DLama

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 65
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть трудный вопрос.
« Ответ #9 : 22 Ноября 2001, 03:00:55 »
To alexvolkov
"Кхе-кхе... Ну вы знаете, что я бы тут сказал :-)"

Так что бы ты сказал? Что то плохо слышно! Надеюсь интересная мысль.

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Есть трудный вопрос.
« Ответ #10 : 22 Ноября 2001, 03:06:34 »
http://ssrtech.com он бы сказал, alexvolkov я правильно понял? :)
Евгений aka Razor,

Оффлайн Foshvad

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Есть трудный вопрос.
« Ответ #11 : 25 Ноября 2001, 01:05:21 »
Хмм...
Лично у меня сделано так:

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

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

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

а это уже нехорошо. Точнее нехороший. Хостер. От переопределения 404-я странички ему ничего плохого не станется, со стругтурой сайта действительно проще.

Оффлайн DLama

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 65
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Есть трудный вопрос.
« Ответ #12 : 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

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 307
  • +0/-0
  • 0
    • Просмотр профиля
Есть трудный вопрос.
« Ответ #13 : 26 Ноября 2001, 12:00:46 »
А чем вы не подходят переменный массиве? В принципе можно сделать
list($url1,$url2....) = $url

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28