Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проверка числового ввода
Насколько я понимаю она требует, что условию должна соответствовать вся строка, от начала до конца и она должна состоять минимум из одной цифры, правильно?
Один из примеров, здесь
Какой-то велосипед. В php есть нативная функция.
Все входящие данные от пользователя должны проверяться, как минимум, в целях предотвращения компрометации БД
----- армия.. самое убогое место
vsll
Отправлено: 20 Марта, 2011 - 21:47:04
Частый посетитель
Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011
movEAX то есть это в целях безопасности ? Чтобы снять нагрузку с базы данных или что?
Мелкий
Отправлено: 20 Марта, 2011 - 21:47:18
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
ALEN пишет:
filter_var() - не отменяли
отменять-то не отменяли. Вопрос в том, была ли эта функция, когда писали код, она же только в PHP5.2 появилась.
Для числовых значений куда лучше подойдёт intval или приведение типа в стиле С: $val = (int) $val;
----- PostgreSQL DBA
vsll
Отправлено: 20 Марта, 2011 - 21:54:30
Частый посетитель
Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011
Помог: 10 раз(а)
Цитата:
Вы не можете использовать intval() с array и object.
Мелкий объясни пожалуйста по-тупому, для чего на каждом шагу делать проверку, ведь в том примере, который я привела, значения задаются только самим разработчиком и там другого не дано либо 0, либо 1 (есть ошибка или нет)????
На случай опечатки чтоли, когда разработчик вместо 0 поставил букву O ?????
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Подозреваю, что в приведенном примере данные задаются не разрботчиком, а из $_GET, то есть от пользователя.
intval - не хорошая идея. Чаще всего надо не привести данные к какому-то формату/типу, а еще и проверить - а было ли значение вообще говоря корректно. ALEN привел тому хороший пример.
Более того, даже если мы уверены, что данные будут в корректном формате, то есть риск нарушить логику работы приложения. Так, к примеру
по понятным причинам отработает некорректно. По таким причинам (а можно себе представить еще не один такой пример) излишняя педантичность не будет лишней.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
vsll
Отправлено: 20 Марта, 2011 - 22:40:02
Частый посетитель
Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011
Помог: 10 раз(а)
EuGen спасибо, но здесь именно от разработчика, просто очень много и часто (через строку)
и действительно когда много, то можно и опечататься или точку поставить вначале или вообще ничего не поставить ALEN натолкнул на мысль, за мной плюс (пока ручей иссяк)))
EuGen
Отправлено: 20 Марта, 2011 - 22:45:51
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Гм. $_GET - точно не от разработчика. Или имеется ввиду что-то другое?
Я вообще свой класс валидации обычно использую. Ну, или простую функцию, которая по валидатору проверяет.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
vsll
Отправлено: 20 Марта, 2011 - 22:47:57
Частый посетитель
Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011
Помог: 10 раз(а)
EuGen (я сотру через 5 мин этот код, OK?)))
это интимные места моего сайта, на всякий случай лучше с глаз подальше)))Отредактировано администратором: EuGen, 20 Марта, 2011 - 22:49:01 И вовсе не обязательно стирать, есть же спойлеры
EuGen
Отправлено: 20 Марта, 2011 - 22:50:21
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Так а где же здесь валидация, исключая многочисленные if ..
?
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
vsll
Отправлено: 20 Марта, 2011 - 22:52:10
Частый посетитель
Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011
Помог: 10 раз(а)
В самом начале огромного скрипта, скромненько так:
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Если это с Вашего сайта, то думаю, вопросов возникать не должно - ведь разработчик то Вы.
По поводу isnum, вроде уже сказали. Не очень понятно сейчас, в чем вопрос/сомнение.
Ошибку же я бы предпочел хранить в переменной сессии. Таким образом ее можно задавать, например, в блоке catch и потом делать удобное перенаправление, не заботясь о том, откуда пришла ошибка, а просто отображая ее.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
vsll
Отправлено: 20 Марта, 2011 - 23:00:27
Частый посетитель
Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011
Помог: 10 раз(а)
EuGen оО нет, я не разработчик, я горький ламер, который бьётся над этим кодом уже 3й день)))
Ошибку же я бы предпочел хранить в переменной сессии. Таким образом ее можно задавать, например, в блоке catch и потом делать удобное перенаправление, не заботясь о том, откуда пришла ошибка, а просто отображая ее.
Я не сомневаюсь, что это удобно, но пока я нихт ферштейн в этом
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.