![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
nepster |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Всем привет, возникли несколько вопросов, отелось бы узнать мнения и советы коллег. За ранее большое спасибо!
1) Как лучше хранить денежное значение в базе, какой тип данных ? 2) Собственно вопрос про 0 и false Ситуация когда нужно проверить есть ли значение в переменно и оно равно 0 Мой вариант решения:
А как Вы решаете данную задачу? 3) достаточно ли принудительно указать тип данных для предотвращения sql инъекции для числа и htmlspecialchars для строки ?
|
||||
|
|||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
decimal/numeric
откройте для себя ===
нет -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
Arantir |
|
|||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
И от себя добавлю...
decimal, как и сказали, с нужной точностью (2 знака для рублей, долларов и т.п.). Это тип для точных расчетов. В нем нет каверз, как во float. Хранить целым числом в виде значения копеек, центов и т.п. настоятельно не рекомендую. Округление тысячных долей до сотых - очень частая ситуация (посмотрите на цифры обмена валют), а с целыми числами это невозможно. Fortop +++ Странно вообще возникновение такого вопроса, если честно =)
htmlspecialchars предназначен для вывода текста в браузер, а не для его ввода в базу. Эта функция предназначена для таких строк, как, например: <script>alert("Этот сайт не фильтрует посты юзеров!");</script> Как можно заметить, этот форум вывел просто текст, а не злобный html-код. Причем к sql-инъекциям эта функция не имеет абсолютно никакого отношения. Это сообщение отредактировал(а) Arantir - 2.8.2013, 16:36 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Я Prepared statements пользуюсь только через драйвер PDO напрямую в СУБД их не взываю, нету надобности когда PDO делает тоже самое.
У себя в фм реализовал в методах контролера $this->post(<имя ключа>, возможное значение по умолчанию null, тип проверки null int str num empty можно использовать знак отрицания в начале ! использую так
Такие же методы реализованы отдельно не для глобальных перемененных. Тут как бы хочешь меньше писать рутины, создай себе хелперы функций и таскай их из проекта в проект. ID всегда проверяю через is_int + > 0 но не через numeric Это сообщение отредактировал(а) Sanchezzz - 2.8.2013, 19:25 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Подскажите пожалуйста как безопасно орабатывать получнные данные на сервере.
Я используюю Yii, собственно там работаю с актив рекорд. Я в подробности работы класса не мокался, но знаю, что он тоже проверяет данные. Но хотельсь бы знать более подробно как защиться от злоумышлеников и как правильно валидировать данные. Особенно числовые! |
|||
|
||||
georgiy11 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Метод rules()
|
|||
|
||||
nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
а если на чистом php.
Мне не опнравился данный метод, так как я использую мультиязычность и обрабатываю каждую ошибку. Поэтому мне проще возвращать в качестве ответ от сервера код ошибки или success в формате json |
|||
|
||||
georgiy11 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Все ошибки будут хранится в модели AR. getErrors и можно обрабатывать
![]() Это сообщение отредактировал(а) georgiy11 - 4.8.2013, 13:07 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |