Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 460
#1

Почему не работает is_int? - PHP

29.06.2018, 22:20. Просмотров 109. Ответов 4
Метки нет (Все метки)

Всем привет! Надо фильтровать данные с формы на отрицательные, положительные и дробные, целые. Использую функцию is_int, но он не работает(всегда возвращает false).
is_int($_POST['...']) + 0 так работает, но не проверяется отрицательные, положительные числа. Для них использую обычное условие если < 0, но если писать -0, то все проходит, а мне надо, чтобы это вызвало ошибку. Как быть?

Т.е. мне надо только положительные, целые числа.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2018, 22:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Почему не работает is_int? (PHP):

почему не работает?
&lt;?php $mysqli = new mysqli(&quot;localhost&quot;, &quot;root&quot;, &quot;&quot;, &quot;mybase&quot;);...

Почему не работает селектор?
Здравствуйте! Не подскажете, почему не выводятся значения в селекторе? Есть...

Почему не работает условие?
Всем привет! Есть код, который я сам написал. Я в php новичок, поэтому не...

Почему адаптивность работает неправильно?
В браузере масштабирую - сайт правильно реагирует на смену ширины, короче, в...

Почему у меня не работает PHP?
У меня Linux. Уcтановил: PHP5 Apache2 libapache2-mod-auth-mysql...

Почему не работает парсинг сайта
Вот мое задание Возьмите любой Интернет-магазин, например, с ноутбуками....

4
Jewbacabra
Эксперт PHP
3096 / 2683 / 1228
Регистрация: 24.04.2014
Сообщений: 8,211
30.06.2018, 00:26 #2
Лучший ответ Сообщение было отмечено Para bellum как решение

Решение

Цитата Сообщение от Риназ Посмотреть сообщение
is_int($_POST['...'])
В $_POST может быть либо строка, либо массив. is_int возвратит true, только если передать число

Добавлено через 57 секунд
PS. даже в документации об этом напмсано. Крайне рекомендуется туда заглядывать перед тем как создавать тему
Чтобы проверить, что переменная является числом или строкой, содержащей число (как поле ввода в форме, которое всегда является строкой), используйте is_numeric().
https://secure.php.net/manual/ru/function.is-int.php
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 460
30.06.2018, 11:22  [ТС] #3
Jewbacabra, так я и так передаю целое число, не работает.
0
Jewbacabra
Эксперт PHP
3096 / 2683 / 1228
Регистрация: 24.04.2014
Сообщений: 8,211
30.06.2018, 11:23 #4
Цитата Сообщение от Риназ Посмотреть сообщение
так я и так передаю целое число, не работает.
Цитата Сообщение от Jewbacabra Посмотреть сообщение
В $_POST может быть либо строка, либо массив
...
0
Риназ
12 / 2 / 2
Регистрация: 16.06.2017
Сообщений: 460
30.06.2018, 20:06  [ТС] #5
А как тогда сделать фильтр, чтобы можно было вводить только целые, положительные числа. is_numeric фильтрует только цифры не цифры.

Добавлено через 2 часа 42 минуты
Уже сам нашел ответ. Кому интересно: использовал функцию ctype_digit
0
30.06.2018, 20:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2018, 20:06
Привет! Вот еще темы с решениями:

Почему код работает не корректно?
При нажатии на ссылку, должна исчезать строка. Но этого не происходит. Эта...

ЧТО НЕ ТАК? Почему не работает условие?
Всем привет. Уже почти часа ломаю голову. Вот код: &lt;? $links =...

Почему функция PHP mail() не работает с переменными
Почему функция PHP mail() не работает с переменными Например: Пробовал...

Почему через форму идет отправка с почта с доменом. com. С другими не работает
&lt;?php /* Осуществляем проверку вводимых данных и их защиту от враждебных ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru