![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
В общем решил я потихоньку переходить на class`ы и возникла такая задача.
Как мне грамотнее сделать обработку адресной строки чтобы управлять самим контентом. Т.е. есть к примеру строка http://buw.ru/index.php?option=com_datsoga...y&Itemid=13 вот и нужно из неё вытаскивать нужные параметры, проверять есть или нет и так далее. Наверняка кто-то уже писал... Мне хотябы теории малость, но от примеров не откажусь -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
AztEK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 723 Регистрация: 4.1.2005 Репутация: 6 Всего: 18 |
-------------------- Linux is like wigwam -- no windows, no gates, apache inside. |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
Странная какая-то идея, есть же массив $_GET и предопределенные переменные. А что там еще "так далее"? Добавлено @ 13:59 Ссори я наверное просто не понял вопрос, если чужие адресные строки обрабатывать, то тогда AztEK, прав, parse_str() тебе в помощь. -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
AztEK, это немного не то... это может быть одной из функций класса.
Может я не так объяснил.. попробую ещё раз. Когда страница загружается и считывается заголовок, то я каждуй раз вычлиняю необходимые переменные, их значения. Проверяю вообще на их наличие/отсутсвие. Проверяю допустимость значений, проверяю разрешённость значений и переменных и т.п. и т.д. Это мне приходиться писать постоянно. Вот я и хочу сделать просто класс и когда мне нужно вызывать то или иное. Просто я видел такие классы в нескольких CMS, но разобраться там слишком пока для меня сложно ![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
По-моему лучший вариант это пользоваться mod_rewrite. Тогда на уровне сервера проверяется. И данные уже проходят первичную проверку.
Я делаю так: 1. Весь сайт написан с использованием mod_rewrite 2. В самом начале скрипта проверяешь массив $_GET и удаляешь все не нужные символы, к примеру если у тебя в системе не используются символы $, :, / то убираешь их. 3. Если есть какие-то специфические проверки, то это уже проверяется на уровне модуля к которому обращаются. -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
Gold Dragon,
Сама идея достаточно спорная. Созданием класса просто усложняется синтаксис и замедляется выполнение скрипта. И что всё-таки значит вычленять переменные? Может покажешь, как это обычно выглядит в коде и как хочешь, чтобы это выглядело? -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Это все лишнее.
Ты должен сделать ядро системы, куда должны войти функции разбора строки запроса с нужными проверками.... И то, лишнее Лично я, используя mod_rewrite, как написано тут: http://vingrad.ru/WEB-SERVER-002835 работаю с такой функцией, причем вызывается она ДО создание объекта ядра:
На выходе получая массив параметров, с которым очень удобно работать. |
|||
|
||||
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
Mal Hack,
Не понял... Зачем руками парсить, когда всё в GET пойдёт и так? -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Да выглядит просто. Допустим у меня есть такая переменная в адресной строке как Id. вот что мне приходится с ней делать - проверка на наличие самой переменной - проверка значения на null - проверка значения на содержание только цифр - сверка значения с шаблонами эти действия я делаю как подряд, так и в произвольном порядке. Вот и хотелось это всё упорядочить mod_rewrite для меня сложноват. Вернее я ещё в нём не раздирался. Могу использовать его только как попугай - тупо переписывать, не понимаю сути. ![]() ps Mal Hack, я пока делаю сайты как их вижу (без планирования) хотя уже начал по немногочто-то систематизировать. Но понятие ядра для меня ещё очень туманное. Может новый топик создать, а то я опять с середины начинаю ![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
_http://mysite.com/par1/par2/par3/par4
Что тут в $_GET пойдет? |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 19 Всего: 54 |
Проще разобраться с mod_rewrite тогда не надо будет всего этого делать. Тем более это будет гораздо лучше и систематизированее. -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
ну ты спросил..
![]() Я так и не понял, mod_rewrite вроде в данном случае служет для "нормального" отображения самой адресной строки. Но я то малость о другом спрашиваю.. ![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
Mal Hack,
При использовании в mod_rewrite правила
в $_GET[] попадут все 4 параметра с известными индексами. mishaSL, Полностью на mod_rewrite полагаться не стоит. Злые люди могут обратиться к скрипту напрямую. Gold Dragon, Похоже, тебе нужен класс валидации. Дело хорошее. Сам об этом задумываюсь. Немного приведу в порядок список желаемых фич: - приведение значения к определённому типу или сверка значения с шаблонами (возможно с регулярными выражениями) - проверка существования значения. Если не существует - выброс исключения, либо использование умолчания. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
Glip |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
||||
|
||||
SamDark |
|
|||
![]() Добрый кот ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1424 Регистрация: 25.7.2006 Где: Voronezh Репутация: 10 Всего: 38 |
Glip,
Ну, это не совсем то. Делать обёртки для примитивов == сильное замедление выполнения. -------------------- rmcreative.ru — Это жжж неспроста... yiiframework.ru — О фреймворке Yii на русском. reggi — здесь я регистрирую домены |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |