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 :: Версия для печати :: Проблема с валидацыей
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Проблема с валидацыей

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

1. eko24 - 11 Июля, 2011 - 14:10:04 - перейти к сообщению
Короче вот код:
PHP:
скопировать код в буфер обмена
  1. if ($name < 3 or $name > 19)
  2. {
  3. echo "<span style='color:red'>write correct name bastard</span>";
  4. }

если я введу имя диапазоном от 4 и до 19, он все равно выведет write correct name bastard.)
Почему ?
2. morosit - 11 Июля, 2011 - 14:15:09 - перейти к сообщению
eko24 пишет:
$name < 3
вы сравниваете строку с числом?
3. LIME - 11 Июля, 2011 - 14:22:19 - перейти к сообщению
ну да
к примеру "5">"19" даст тру
по первому символу сравнивается
можно так сделать
(int)$name
4. OrmaJever - 11 Июля, 2011 - 15:02:50 - перейти к сообщению
eko24 пишет:
Почему ?

Могу предположить что в $name находится имя пользователя (к пример "OrmaJever") И когда вы пытаетесь сравнить эту строку с числом то php пытается перевести эту строку в число, делает он это так http://php.su/learnphp/datatypes/?mn#strtoint
но посколько в строке нету числового символа то переводить там нечего и $name == 0
для проверки длины нужен strlen() или mb_strlen()
5. LIME - 11 Июля, 2011 - 15:56:22 - перейти к сообщению
OrmaJever 100%
eko24 пишет:
если я введу имя диапазоном от 4 и до 19,

вы случайно не имелли ввиду длиной от 4 до 19?
6. eko24 - 11 Июля, 2011 - 16:52:47 - перейти к сообщению
да ввел, блин....
что то я ступил, хотя про существование этой функции знал, и раньше её использовал, и вот забыл.

 

Powered by ExBB FM 1.0 RC1