[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как проверить что в форму php введено число не мен
amsokol
Как проверить что в форму php введено число не менее цифры 10



Спустя 23 минуты, 17 секунд (27.08.2009 - 16:08) waldicom написал(а):
На стороне клиента или сервера?
Если на сервере, то можно использовать функции ctype_digit и математический оператор > (больше).
Если на клиенте, то сердствами javascript (но потом на сервере все равно проеврятб надо).

Спустя 1 час, 15 минут, 46 секунд (27.08.2009 - 17:24) Michael написал(а):
PHP
$ch=(isset($_POST['chislo']))?$_POST['chislo']:0;
$ch+=0; // Если там строка то станет числом.
if ($ch>10) {
    //....
}

Спустя 32 минуты, 20 секунд (27.08.2009 - 17:56) waldicom написал(а):
Цитата (Michael @ 27.08.2009 - 16:24)
PHP
$ch=(isset($_POST['chislo']))?isset($_POST['chislo']:0;
$ch+=0; // Если там строка то станет числом.
if ($ch>10) {
    //....
}

Это пипец...

Спустя 1 час, 18 минут, 7 секунд (27.08.2009 - 19:14) Michael написал(а):
Цитата
Это пипец...

Ну захватил при Ctrl+C лишнее, прям пипец smile.gif да и вопрос не для экспертов.

Спустя 23 минуты, 42 секунды (27.08.2009 - 19:38) waldicom написал(а):
Так это... Тут просто логики вообще никакой, причем тут Ctrl+C?
ЧТо быдет, если передать строку "string"? Как она станет числом после
PHP
$ch+=0// Если там строка то станет числом.


Спустя 20 минут, 25 секунд (27.08.2009 - 19:59) glock18 написал(а):
Цитата
ЧТо быдет, если передать строку "string"? Как она станет числом после


Может и станет даже. Только к чему такое делать? В пхп нет вариантов нормального приведения типа?

Спустя 54 минуты, 54 секунды (27.08.2009 - 20:53) waldicom написал(а):
Цитата (glock18 @ 27.08.2009 - 18:59)
Цитата
ЧТо быдет, если передать строку "string"? Как она станет числом после


Может и станет даже. Только к чему такое делать? В пхп нет вариантов нормального приведения типа?

Гм... Ты пробовал? Зачем поощерять эммм... индусский код, который к тому же еще и не работает

Спустя 28 минут, 35 секунд (27.08.2009 - 21:22) glock18 написал(а):
Цитата
Гм... Ты пробовал?

Не пробовал, да и не поощряю. Естественно надо использовать все для того, для чего оно есть.
Но мне всегда интересно посмотреть до чего додумается программист, не обладая информацией о нормальном решении задачи smile.gif

Недавно кстати видел приведение к булеан:
PHP
$value = !!$value;


Это так... Делать естественно не надо. Но копилка артефактов пополняется smile.gif

Спустя 19 минут, 39 секунд (27.08.2009 - 21:42) Soldier Ghost написал(а):
PHP
if(intval($_POST['chislo']) > 10)
{
echo 
"Больше десяти";
exit();
}

Не проверял ph34r.gif

Спустя 2 часа, 8 минут, 54 секунды (27.08.2009 - 23:51) Tigrus написал(а):
А может так?

PHP
if(ereg("^[1-9]{1}[0-9]+$"$_POST['chislo']))
{
 echo 
'Больше десяти!';
}
else 
{
die();
}

Спустя 7 часов, 49 минут, 53 секунды (28.08.2009 - 07:40) Michael написал(а):
Цитата (waldicom @ 27.08.2009 - 16:38)
Так это... Тут просто логики вообще никакой, причем тут Ctrl+C?
ЧТо быдет, если передать строку "string"? Как она станет числом после
PHP
$ch+=0; // Если там строка то станет числом.

В отличие от JavaScript в PHP оператор+ рассматривает свои операнды только как числа и автоматически приводит тип.
Коротенькая запись $ch+=0; - сложил с нулем, чтоб не напрягать PHP проверками типа ('xxx'>10), ('12.5yy'>10) и т.д.
В моей книжке вообще пример 2+2*"Привет"+true. Равно, чему?
И не надо заботиться intval() или floatval().
Встречал такое не раз, не пойму откуда эмоции такие.

Цитата
причем тут Ctrl+C?

Я думал тебя убила моя основная копи-ошибка в первом сообщении - а ты ее и не заметил smile.gif придрался к нулю.

Спустя 1 час, 50 минут, 2 секунды (28.08.2009 - 09:30) waldicom написал(а):
Цитата (Michael @ 28.08.2009 - 06:40)
В отличие от JavaScript в PHP оператор+ рассматривает свои операнды только как числа и автоматически приводит тип.

Повторюсь: Что будет, если передать строку "vasja"? Каким она станет числом после этого?

Спустя 54 секунды (28.08.2009 - 09:31) Michael написал(а):
Она станет НУЛЕМ!!!

Спустя 27 минут, 9 секунд (28.08.2009 - 09:59) glock18 написал(а):
Остыньте, ребята.

waldicom, это штука действительно должна работать.
Michael, в этом ничего хорошего. То, что php делает неявное и неочевидное приведение типа не есть повод для его использования, особенно когда есть нормальные для этого способы.

Любая строка будет приведена к числу по ее первым символам - если они циферки, то будет соотвествующее число, иначе - 0.

Michael и другим любителям играть подобным образом с неявным приведением типов:
Такое приведение типов не вечно. Уже в 6 пхп вносят серьезное изменение - стандартные функции при ошибке будут возвращать null, а не false как раньше. Естественно, ошибки имеются ввиду: поиск (array_search) несуществующего ключа и т.п.

То есть сейчас при переходе на пхп 6, придется все соответсвующие равенства === false заменять на === null.

Подобные фокусы с приведением могут еще добавить геморроя и не имеют никаких плюсов, зато имеют минусы.
Понимать поведение пхп полезно, но пользоваться им надо осторожно.

Спустя 22 минуты, 3 секунды (28.08.2009 - 10:21) waldicom написал(а):
Цитата (Michael @ 28.08.2009 - 08:31)
Она станет НУЛЕМ!!!

Не надо кричать, можно порвать голосовые связки...
Если Вы пишите свои скрипты так, что когда скрипту передадут строку "apple", то скрипт отвечает: Ваше число "apple" меньше нуля, то разбегитесь и кааааааак вдарьтесь об стенку...

Цитата
waldicom, это штука действительно должна работать.

Хм, ну да ладно... Не ожидал... Не в том смысле, что я сомневаюсь, что такая конструкция будет работать, а в том, что ты поддерживаешь такой индусский кодинг.

Спустя 11 минут, 32 секунды (28.08.2009 - 10:32) glock18 написал(а):
Цитата
ты поддерживаешь такой индусский кодинг

Не поддерживаю. По-моему, я это понятно сказал.

Спустя 10 минут, 4 секунды (28.08.2009 - 10:42) waldicom написал(а):
Цитата (glock18 @ 28.08.2009 - 09:32)
Цитата
ты поддерживаешь такой индусский кодинг

Не поддерживаю. По-моему, я это понятно сказал.

У учителей есть хороший... эммм.. завет, чтоли...
Нельзя писать на доске неправильные вещи, даже если к этому последует объяснение, что это не правильно. Потому что то, что стоит на доске, ученик воспринимает как правильные вещи.
Ты же пишешь, что да, так работает, молодец, знаешь пхп...

Спустя 8 минут, 9 секунд (28.08.2009 - 10:50) glock18 написал(а):
Ок, может и так. Я действительно хотел, чтобы увидели это:

Цитата
Michael, в этом ничего хорошего. То, что php делает неявное и неочевидное приведение типа не есть повод для его использования, особенно когда есть нормальные для этого способы.


Цитата
Подобные фокусы с приведением могут еще добавить геморроя и не имеют никаких плюсов, зато имеют минусы.
Понимать поведение пхп полезно, но пользоваться им надо осторожно.

Спустя 1 год, 5 месяцев, 24 дня, 3 часа, 29 минут, 51 секунда (24.02.2011 - 15:20) Guest написал(а):
is_numeric()

Спустя 4 минуты, 50 секунд (24.02.2011 - 15:25) Snus написал(а):
if((int)$chislo > 10) die('Больше десяти :)');
Быстрый ответ:

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