[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ввод в формах и безопасность
Карина
Здравствуйте!
У меня есть переменная: $x = {$_REQUEST['x']}. Значение $X передается из формы, подскажите, пожалуйста, каким образом мне обработать эту переменную, чтобы быть уверенной в том, что значением $x является вещественное число разделенное точкой, максимум с двумя знаками до и после десятичной точки вида 4.24? Если человек вводит что-то другое, то возвращалось бы сообщение о некорректном вводе.
В арсенале PHP есть много функций для преобразования, но я не знаю какие из них лучше использовать.
Заранее большое спасибо!



Спустя 17 минут, 44 секунды (26.08.2006 - 20:50) zilogo написал(а):
Если просто проверка на число - is_numeric(), а так:
if(!preg_match('/^d{1,2}(.d{1,2})?$/', $x))
echo 'Error';

Спустя 1 минута, 6 секунд (26.08.2006 - 20:51) vasa_c написал(а):
Наиболее простой вариант это насильно привести переменную к нужному виду. Таким образом она не сможет нанести вреда, а если пользователь специально ввел, что-то не то, то он сам и виноват, что получит непонятно что :) В данном случае это будет:
$x = intval( ( float )$x * 100 ) / 100;

Вообще же для проверки формата строк служат регулярки:
if ( !preg_match( '/^[0-9]{1,2}(.[0-9]{1,2})?$/', $x ) ) die( 'Неверный формат' );
Здесь если присутствует точки, то за ней должен быть, как минимум один дробный разряд.

--
Ну вот, тов.zilogo уже все рассказал...

Спустя 18 минут, 38 секунд (26.08.2006 - 21:09) Карина написал(а):
Огромное спасибо! Как всегда оперативно и развернуто:)


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.