Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: проверка введены ли цифры в форму icq
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » проверка введены ли цифры в форму icq

Страниц (1): [1]
 

1. mich1 - 09 Июня, 2009 - 16:09:19 - перейти к сообщению
Нужен скрипт, который проверяет наличие цифр в форме заполнения регистации

если введены только цифры - верно
если введены цифры и буквы - неверно
если пусто - неверно

if (empty($_POST['icq']))
echo "неверно";
2. Vanu4 - 09 Июня, 2009 - 16:24:53 - перейти к сообщению
Как самый простой вариант, можно сделать так:
PHP:
скопировать код в буфер обмена
  1. if((int)$_POST['icq'] == 0) {
  2.         print 'неверно';
  3. }
3. mich1 - 09 Июня, 2009 - 16:38:54 - перейти к сообщению
Vanu4
спасибо
4. Singularis - 09 Июня, 2009 - 17:10:37 - перейти к сообщению
Нет, так не пойдёт.
5. Вездеход - 09 Июня, 2009 - 19:58:27 - перейти к сообщению
Singularis пишет:
Нет, так не пойдёт.

обоснуйте


PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['icq']) and !empty($_POST['icq']) and is_numeric($_POST['icq'])) echo "OK";
  2. else echo "error";


дальше разберетесь?
6. Stierus - 10 Июня, 2009 - 09:41:44 - перейти к сообщению
Цитата:
дальше разберетесь?
Подобные слова могут идти только после кода, сильно лучше оспариваемого Улыбка
PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['icq']) and intval(trim($_POST['icq'])) >1000){
  2. /* some code */
  3. }

А вообще, по хорошему счету, лучше простенькой регуляркой пройтись, заодно на длину проверяя.
7. Вездеход - 10 Июня, 2009 - 09:46:29 - перейти к сообщению
Язычок
8. mich1 - 11 Июня, 2009 - 09:59:32 - перейти к сообщению
Вездеход
твой код тоже заработал, спасибо

Stierus
пока не знаю, что такое trim, так что побоялся использовать Ниндзя


теперь надо проверить, присутствуют ли в форме email символы "." и "@"
9. Stierus - 11 Июня, 2009 - 10:59:54 - перейти к сообщению
Да, легче не использовать, чем потратить 2 минуты на изучение мануала Улыбка ... удаляет пробелы из начала и конца строки эта функция (мало ли человек описался, внешне проблемы в этих местах незаметны)
10. Dekker8 - 23 Июня, 2009 - 19:18:10 - перейти к сообщению
мне кажется лучше использовать Javascript для проверки формы(не надо отправлять форму)
11. Viper - 24 Июня, 2009 - 08:37:56 - перейти к сообщению
Dekker8 пишет:
мне кажется лучше использовать Javascript для проверки формы(не надо отправлять форму)

не нужно забывать что иногда скрипты могут быть отключены. поэтому дополнительно всегда нужно проверять на стороне сервера.
12. Champion - 24 Июня, 2009 - 08:54:55 - перейти к сообщению
Viper пишет:
не нужно забывать что иногда скрипты могут быть отключены.
И отредактированы особыми любителями
13. Ch_chov - 25 Июня, 2009 - 15:48:51 - перейти к сообщению
Цитата:
isset($_POST['icq']) and !empty($_POST['icq'])

Вездеход, а для чего здесь isset() ?


Интересно, разве бывают 4-х значные ICQ UIN?
Для полноты проверки можно ещё и на максимум проверять
PHP:
скопировать код в буфер обмена
  1. intval(trim($_POST['icq'])) > 1000 && intval(trim($_POST['icq']) < 999999999
14. Dekker8 - 28 Июня, 2009 - 16:21:36 - перейти к сообщению
trim() спереди и здажи строки удаляет пробелы
15. Dekker8 - 06 Июля, 2009 - 18:34:56 - перейти к сообщению
is_numeric() вот функция проверяет является ли переменная числом

 

Powered by ExBB FM 1.0 RC1