Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс для обработки адресной строки 
:(
    Опции темы
Glip
Дата 19.1.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: 7
Всего: 18



Не настаиваю, просто как вариант. Мне например очень удобно. А замедление выполнения, не силно заметно на фоне скорости обмена с субд

Это сообщение отредактировал(а) Glip - 19.1.2007, 10:50


--------------------
user posted image
PM MAIL   Вверх
Gold Dragon
Дата 19.1.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



Цитата(SamDark @  19.1.2007,  09:54 Найти цитируемый пост)
Похоже, тебе нужен класс валидации. 

ну может быть, может быть...

Цитата(SamDark @  19.1.2007,  09:54 Найти цитируемый пост)
- приведение значения к определённому типу или сверка значения с шаблонами (возможно с регулярными выражениями)

наверное всё же не ИЛИ. Это разное. Иногда нужно одно, иногда другое, иногда и то и другое.



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
SamDark
Дата 19.1.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38



Gold Dragon
Да, наверное, всё-таки разное. Как-нибудь на днях усядусь за это дело...


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Mal Hack
Дата 19.1.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Gold Dragon, я тебе просто, как вариант, привел другое возможное реализационное решение.

SamDark, я говорил именно про тот вид правил, который я описал в статье.


Цитата(SamDark @  19.1.2007,  09:54 Найти цитируемый пост)
Похоже, тебе нужен класс валидации. Дело хорошее. Сам об этом задумываюсь.

Немного приведу в порядок список желаемых фич:

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

Тут есть маленькая проблема. Все входные параметры нужно проверять там, где они используются, а не в самом начале скрипта. Например, может получиться такая вещь, что мы преобразуем входные параметры, а потом нам понадобится исходное значение.
PM ICQ   Вверх
SamDark
Дата 19.1.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38



Mal Hack
Естественно сразу всё обрабатывать не стоит. Но по-моему легче пользоваться валидатором:
Код

print Validator::GET->getEmail('email');
print Validator::POST->getSQLParam('page');


Это сообщение отредактировал(а) SamDark - 19.1.2007, 15:17


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Mal Hack
Дата 19.1.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Исключения должны генерироваться уже в самом коде, где эта проверка и должна проходить. Только так мы сможет четко видеть где и что у нас - не так и нормально вывести ошибку.
PM ICQ   Вверх
SamDark
Дата 19.1.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38



Mal Hack
Ну как раз в классе Validator::что_то_там можно выкинуть исключение.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Mal Hack
Дата 19.1.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



SamDark, но выкидывать его надо не в начале, а по время работы. Если, конечно, ты не хочешь сделать вросто что-то вроде настроек проверки...И исходя из того, что венет функция (true|false) - выкидывать Exception
PM ICQ   Вверх
SamDark
Дата 19.1.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38



Mal Hack
Не понял, чем плохо выкидывать его в классе.
Код

try{
  $mail = Validator::GET->getEmail('email');
}
catch (Exception $e) {
  print 'Invalid e-mail.';
}



--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Mal Hack
Дата 19.1.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Ну не правильно это с точки зрения проектирования. Ошибка должна генерироваться там, где она происходит.
try в данном случае не уместен, если ты try не используешь на все прострнаство кода.
Таким образом, при неправильно заполненной форме регистрации ты не сможешь вывести пользователю его ошибку и новую форму
PM ICQ   Вверх
SamDark
Дата 19.1.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38



Цитата
try в данном случае не уместен

Почему?


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Mal Hack
Дата 19.1.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Mal Hack @  19.1.2007,  16:00 Найти цитируемый пост)
Таким образом, при неправильно заполненной форме регистрации ты не сможешь вывести пользователю его ошибку и новую форму 


PM ICQ   Вверх
SamDark
Дата 19.1.2007, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 10
Всего: 38



Код

try{
  $mail = Validator::GET->getEmail('email');
  //выводим результат обработки
}
catch (InvalidEmailException $e) {
  //выводим форму с пометкой, что адрес неправильный
}



--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Mal Hack
Дата 20.1.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



SamDark, а как ты будешь действовать, если у тебя мыло проверяется на 10-12 формах проекта?
Я клоню к тому, что проверка ошибок и их вывод - на ядре, а вот реакция на ошибки - в модуле...
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.