Помогите пожалуйста. И лучше с примером.
Вот поля:
<input name="sum" type="text">
<input name="sub" type="submit">
</form>
Спустя 22 минуты, 46 секунд (17.03.2011 - 21:39) inpost написал(а):
Это делается на JS, регуляркой проверяешь, либо на onKeyUp ставишь фунцию "привести к числу", либо регуляркой убираешь всё, что не число. Выбирай что тебе нравится и пробуй реализовать на JS
Спустя 10 минут, 1 секунда (17.03.2011 - 21:49) planetary написал(а):
а разве не пхп никак? вроде как-то где-то ставится %s или %d ...
Спустя 2 минуты, 43 секунды (17.03.2011 - 21:52) Arni написал(а):
Пхп это уже на сервере, и конечно же! Обязательно еще раз проверяем что пришло в пхп. Самый простой способ привести все что угодно к числовому формату это.
$var = (int)$var;
Спустя 6 минут, 18 секунд (17.03.2011 - 21:58) inpost написал(а):
planetary
Ты понимаешь разницу между "СЕРВЕРНАЯ СТОРОНА" и "КЛИЕНТСКАЯ СТОРОНА", если да, объясни мне в чём её разница, и на какой стороне находится "обработка ПХП кодов" и "браузер пользователя".
Ты понимаешь разницу между "СЕРВЕРНАЯ СТОРОНА" и "КЛИЕНТСКАЯ СТОРОНА", если да, объясни мне в чём её разница, и на какой стороне находится "обработка ПХП кодов" и "браузер пользователя".
Спустя 3 минуты, 33 секунды (17.03.2011 - 22:01) neadekvat написал(а):
Arni, это не будет являтся проверкой. Значение тупо будет приведено в числовой формат, а пользователь так и не узнает, что случилось с введенными данными.
Можно, например, так:
Можно, например, так:
echo preg_match('/^\d+$/', $_POST['int']) ? 'ok' : 'no';
Спустя 26 минут, 31 секунда (17.03.2011 - 22:28) planetary написал(а):
Цитата (inpost @ 17.03.2011 - 18:58) |
planetary Ты понимаешь разницу между "СЕРВЕРНАЯ СТОРОНА" и "КЛИЕНТСКАЯ СТОРОНА", если да, объясни мне в чём её разница, и на какой стороне находится "обработка ПХП кодов" и "браузер пользователя". |
Обработка на сервере...
Спустя 1 минута, 43 секунды (17.03.2011 - 22:30) planetary написал(а):
Цитата (neadekvat @ 17.03.2011 - 19:01) |
Arni, это не будет являтся проверкой. Значение тупо будет приведено в числовой формат, а пользователь так и не узнает, что случилось с введенными данными. Можно, например, так: echo preg_match('/^\d+$/', $_POST['int']) ? 'ok' : 'no'; |
Спасибо, но не понятно, как работает
Спустя 2 минуты, 48 секунд (17.03.2011 - 22:32) planetary написал(а):
Есть может функция, которая проверяет, $a - число или нет
Спустя 2 минуты, 15 секунд (17.03.2011 - 22:35) neadekvat написал(а):
Цитата (planetary @ 17.03.2011 - 22:30) |
Спасибо, но не понятно, как работает |
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (preg_match('/^\d+$/', $_POST['int']))
echo 'ok'
else
echo 'no';
}
?>
<form action="" method="post">
<input type="text" name="int">
</form>
А так?
С регулярными выражениями - уж пардон, тут, например Фридла почитайте.
Цитата (planetary @ 17.03.2011 - 22:32) |
Есть может функция, которая проверяет, $a - число или нет |
Есть, is_int(), но она не будет работать в данном случаи, т.к. _POST содержит либо строку, либо массив. Даже если в поле введено число. Вы, я надеюсь, в курсе, что число может иметь строковой тип?
Спустя 1 минута, 41 секунда (17.03.2011 - 22:36) Trianon написал(а):
надо заметить , что так проверяется лишь целое неотрицательное число.
Спустя 3 минуты, 57 секунд (17.03.2011 - 22:40) neadekvat написал(а):
Цитата (Trianon @ 17.03.2011 - 22:36) |
надо заметить , что так проверяется лишь целое неотрицательное число. |
Да, действительно. Спасибо за замечание.
Когда пишу первую версию регулярки, всегда беру самый простой случай :)
Спустя 18 минут, 38 секунд (17.03.2011 - 22:59) ZSH написал(а):
is_numeric($a)
Спустя 1 день, 14 часов, 37 минут, 44 секунды (19.03.2011 - 13:37) planetary написал(а):
Спасибо большое. Остановился на функции is_numeric($a)
Js применить не вариант, потому что оптытный программист сможет обматуть систему, поменяв код Js, ведь он сохраняется на компьютер.
Js применить не вариант, потому что оптытный программист сможет обматуть систему, поменяв код Js, ведь он сохраняется на компьютер.
Спустя 10 минут, 10 секунд (19.03.2011 - 13:47) neadekvat написал(а):
Цитата (planetary @ 19.03.2011 - 13:37) |
Js применить не вариант, потому что оптытный программист сможет обматуть систему, поменяв код Js, ведь он сохраняется на компьютер. |
js в данном случаи будет использоваться не как решающий обработчик, а как часть интерфейса для более его удобного использования.
Согласитесь, лучше получить предупреждение здесь и сейчас, чем отправить страницу, получить новую и увидеть ошибку только там.
При этом, конечно же, проверки на сервере никто и никуда не убирает - они должны быть обязательно.