[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка переменной на число регуляркой
zuher
Что то делаю не так, подскажите пожалуйста.
Приходится проверять много переменных из POST на числовое значение.
Раньше писал под каждую переменную свою регулярку - задолбало меня это дело упихал проверку в функцию, и проверка перестала срабатывать на нулевые значения, т.е. $var ==0 он воспринимает как exit()


function Chislo($var, $name)
{
if (!preg_match("|^[\d]+$|", $var)) {echo $var."<br>".$name."<br>
<p>Хреновый запрос - должно быть число</p>
<p>Попробуйте <a href='/login'>авторизоваться на сайте</a> или зарегистрироваться (если Вы ещё этого не сделали) и будет Вам счастье :)</p>
<p>Перейти на <a href='/'>главную страницу</a> сайта</p>"
;exit();}
}


Chislo($user_id,"user_id");
Chislo($tema1,"tema1");
Chislo($tema2,"tema2");
Chislo($tema3,"tema3");


Ввёл переменную $name в функцию для проверки временно

Если приходит значение больше 0 то функция отрабатывает правильно, если =0 то почему то идёт exit()

Сказывается недосып :) Поможите люди добрые :)



Спустя 11 минут, 8 секунд (12.05.2012 - 22:50) johniek_comp написал(а):
нафига? is_int() is_numeric() все...больше помню smile.gif

Спустя 11 минут, 45 секунд (12.05.2012 - 23:02) zuher написал(а):
Цитата (johniek_comp @ 12.05.2012 - 18:50)
нафига? is_int() is_numeric() все...больше помню smile.gif

для is_numeric() - 1e4 - тоже является числом smile.gif
хотя в моём случае при попытке отправки таких данных мускул выкинет ошибку, не хотелось бы, но однохренственно скрипт остановится ))))

Спасибо за совет, пока сделаю так, но кто то может ткнёт носом именно в мой случай?

Спустя 2 минуты, 47 секунд (12.05.2012 - 23:05) johniek_comp написал(а):
Да и переписал бы я так
function Chislo($var, $name)
{
if($var == 0)
return true;

if (!preg_match("|^[\d]+$|", $var))
{
echo $var."<br>".$name."<br>
<p>Хреновый запрос - должно быть число</p>
<p>Попробуйте <a href='/login'>авторизоваться на сайте</a> или зарегистрироваться (если Вы ещё этого не сделали) и будет Вам счастье :) </p>
<p>Перейти на <a href='/'>главную страницу</a> сайта</p>"
;exit();
return false;
} else {
return true;
}
}


if(Chislo($user_id,"user_id")
echo 'успешно';
else
echo 'бида...';

Спустя 4 минуты, 51 секунда (12.05.2012 - 23:10) zuher написал(а):
Огроменное спасибище.... Надо мне наверное больше спать smile.gif упёрся рогом а элементарного не вижу

Спустя 1 час, 32 минуты, 4 секунды (13.05.2012 - 00:42) sergeiss написал(а):
Цитата (zuher @ 12.05.2012 - 23:02)
для is_numeric() - 1e4 - тоже является числом

А такие числа, как 1е4 у тебя могут появиться? Если да, то я бы озаботился тем, чтобы их принимать и преобразовывать к нормальному виду. Тем более, что сделать это не сложно.
Быстрый ответ:

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