Проблема при проверке переменной

kevmen

Новичок
Проблема при проверке переменной

Приветствую всех!С Новым годом!
Перейду к проблеме
вот код
PHP:
<?  
if(empty($_POST['num']))  
{  	
       echo "<form action='index.php' method='post'><input name='num' type='text'><input name='GO' value='GO' type='submit'></form>";  	
}  
else 
 {
if  ($_POST['num']==int) 
{  	
echo "Имя не может быть цифрой";  	
}   	
else
 {  		
echo "Hello,".$_POST['num'];  		
}  		
}  
?>
Может ошибка при проверке?Прошу помощи
 

HraKK

Мудак
Команда форума
Да мне тоже больше нравиться Nikon D700 чем Canon 5D, хотя 5В Mark II круче думаю.
 

kevmen

Новичок
findnext ,я обучаюсь
Суть программы вот в чем:
пользователь открывает станицу,если в первый раз отображается форма для ввода имени
Далее он нажимает GO,данные методом POST передаются той же странице,но уже с существующей переменно $num,которая должна отобразиться,в этом плане все нормально работает,после я хочу добавить проверку,на введенные данные пользователя!если это цифры выводиться соответсвующее предупреждение,если же строка,то приветствие
 

nerezus

Вселенский отказник
kevmen
я советую выучить тебе основы PHP.

http://www.php.net/manual/ru/langref.php

Сначала прочитай, а потом уж задавай вопросы.
 

kevmen

Новичок
nerezus ,я прочитал!и по мере прочтения возникают вопросы,вот я их и задаю!вроде для этого и есть форум,я поминаю,может вопрос глупый,но решить проблему не могу!
 

nerezus

Вселенский отказник
> вроде для этого и есть форум
Ты не угадал.

http://phpclub.ru/faq/WhyForum

Отлаживай скрипт: смотри строку с ошибкой и думай.
 

kevmen

Новичок
nerezus,спасибо,все,понял ошибку,извиняюсь,благодарю:)
 

Фанат

oncle terrible
Команда форума
nerezus, вообще-то, по ссылке, как раз, написано, что данный случай прекрасно подходит под тематику форума.
Как раз, человек учится САМ, а не просит делать за него, и спрашивает помощи в этом.

я так понимаю, проблема была в int?
 

nerezus

Вселенский отказник
*****
ну просто не все было испробавано. в т.ч. и то, что было написано пхп.

Хотя согласен, что я тоже был не прав )
 

pilot911

Новичок
Автор оригинала: kevmen
попробовал так:
if(is_int($_POST['num']))
я делаю проще

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

http://ru2.php.net/manual/ru/function.is-int.php
 

DiMA

php.spb.ru
Команда форума
> kevmen
> попробовал так:
> if(is_int($_POST['num']))

> pilot911
> я делаю проще

ребята, у вас все в порядке? :) Пременные из ПОСТ/ГЕТ запроса ВСЕГДА имеют тип string (или массив строк). Даже если там число. Поэтому is_int($_POST['num']) всегда false.

> после я хочу добавить проверку,на введенные данные пользователя!если это цифры выводиться соответсвующее предупреждение,если же строка,то приветствие

$_POST['num']=trim($_POST['num']);
if (preg_match("!^\d*$!", $_POST['num'])) exit("Строка состоит целиком из цифр или она пустая.")

Но данное условие не помешает юзеру ввести имя, например "10.0", "+10", "O" (буква О).
 

Beavis

Banned
Автор оригинала: DiMA
$_POST['num']=trim($_POST['num']);
if (preg_match("!^\d*$!", $_POST['num'])) exit("Строка состоит целиком из цифр или она пустая.")
зачем регулярка, если есть [m]ctype_digit[/m]?
 
Сверху