Проверка типа вводимых данных
По книге дошел до такой темы: Расположение HTML-текста и PHP-программы на одной странице. Там следующий код:
<?php
$num_to_guess=42;
$message=" ";
if (! isset($guess))
{
$message="Добро пожаловать в машину угадывающую число!";
}
elseif ($guess > $num_to_guess)
{
$message="$guess слишком большое число! Попробуйте число меньше";
}
elseif ($guess < $num_to_guess)
{
$message="$guess слишком маленькое число! Попробуйте число больше";
}
else // должно быть эквивалентно
{
$message="Well done!";
}
?>
<html>
<head>
<title>HTML-форма</title>
</head>
<body>
<h1>
<?php print $message ?>
</h1>
<form action="<?php print $PHP_SELF?>" method="POST">
Введите ваш запрос сюда: <input type="text" name="guess">
</form>
</body>
</html>
В нем все понятно, все работает, но мне интересно, как сделать так чтобы программа принимала только данные типа integer, а при введении иных данных на браузер выводилось сообщение с указанием на ошибочные данные? Может быть необходимо применить функцию gettype()?
Спасибо!
http://ru2.php.net/manual/ru/function.is-numeric.php
Читай + читай комменты к этим функциям. Ну и там ссылки на др.функции для проверки переменных
Читай + читай комменты к этим функциям. Ну и там ссылки на др.функции для проверки переменных
Цитата:
В нем все понятно, все работает, но мне интересно, как сделать так чтобы программа принимала только данные типа integer
когда PHP передают параметры, она всегда их определяет как string-переменные. Так что в идеале - проверяй is_numeric(); или регулярными выражениями проверяй состоит ли строка только из чисел.. Если так, то $var=(int)$var;
Спасибо
Цитата: Lavrik
чтобы программа принимала только данные типа integer
Регулярки это наше фсё!
Код:
/^[\d]{1,n}$/
где n - это число которое означает максимальное количество присланых цифр.