[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка переменных формы
SnowWind
if (!empty($_POST['R']) && is_int($_POST['R']))
{
$R = $_POST['R']; echo "R=".$R."<br>";

*****
всякие расчёты *********

}

elseif ($_POST['R'] == '')
{
$error = "Вы забыли ввести значение";
}
elseif (is_int($_POST['R']))
{
$error = "Вводить можно только цифры";
}

if (isset($error))
{
?>

опять форма


Проблема в том что при отправке значений выходит, да ничего не выходит, просто белый экран :blink:



Спустя 1 час, 38 минут, 53 секунды (25.02.2012 - 08:41) Rand написал(а):
elseif (is_int($_POST['R']))

забыли восклицательный знак перед is_int, но все равно не будет работать, т.к. данные формы передаются, как строки. Используйте is_numeric вместо is_int

Спустя 4 часа, 7 минут, 57 секунд (25.02.2012 - 12:49) SnowWind написал(а):
ага спасибо
но теперь такое дело

if (!empty($_POST['R']) && is_numeric($_POST['R'])) {$R = $_POST['R']; echo "R = ".$R."<br>";} elseif (empty($_POST['R'])) {$error["R"] = "Вы забыли ввести значение";} elseif (!is_numeric($_POST['R'])) {$error["R"] = "Вводить можно только цифры";}


<p>Введите значение R:<input type="text" size="3" maxlength="2" name="R"><?php if (isset($error["R"])) {echo $error["R"];}?></p>


в форме выводит только 1 сообщение "Вводить можно только цифры", но если empty($_POST['R']) то сообщение об этом в форме не выводится

Спустя 4 минуты, 45 секунд (25.02.2012 - 12:54) Jack_White написал(а):
SnowWind
Данные отправленные через GET POST все типа string поэтому is_int false.
Явно приведи к типу например (int)$_POST['R'] и проверяй на корректность

Спустя 3 часа, 56 минут, 27 секунд (25.02.2012 - 16:50) Rand написал(а):
if (empty($_POST['R'])) {
$error["R"] = "Вы забыли ввести значение";
} elseif (!is_numeric($_POST['R'])) {
$error["R"] = "Вводить можно только цифры";
} else {
$R = $_POST['R'];
echo "R = " . $R . "<br>";
//Всякие расчеты
}

Спустя 1 час, 28 минут, 21 секунда (25.02.2012 - 18:19) SnowWind написал(а):
спасибо ребята, а вот про (int) я так и не понял, зачем и где его писать, проверка же есть на числа, в общем всё заработало

Спустя 17 часов, 49 минут, 10 секунд (26.02.2012 - 12:08) Jack_White написал(а):
SnowWind
Я имел ввиду, что у тебя на входе строка и что с помощью (int) можно было преобразовать в число и дальше уже смотреть если число то будет все ок... Сам не знал про is_numeric спасибо Rand благодаря ему нашел в мануале

Замечание: Чтобы проверить, что переменная является числом или числовой строкой (как поле ввода в форме, которое всегда является строкой), Вы должны использовать is_numeric().
Быстрый ответ:

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