2010-03-22 3 views
2

Ok Я проверяю, что строка не менее 4 символов длиной и 25 или менее символов короткиеPHP STRLEN вопрос

Я пытался использовать STRLEN как этот

$userNameSignupLength = strlen($userNameSignup); 

else if($userNameSignupLength<4 && $userNameSignupLength>25) { 

      $userNameSignupError = "Must be between 4 to 25 characters long"; 

     } 

, но он не работает. .. что я сделал не так?

+0

То же, что и @Kevin. И вам нужно '> = 25' не'> 25'. – p4bl0

+0

Возможно, вы захотите посмотреть http://www.php.net/manual/en/function.mb-strlen.php, strlen неправильно отображает многобайтовые символы, такие как UTF-8. – dbemerlin

+0

@ p4blo, нет - 25 в порядке, поэтому он хочет проверить '> 25' за те, которые слишком длинны. – nickf

ответ

8

Использование strlen верное для проверки длины строки (в байтах). Но число не может быть как меньше, чем 4 , так и более 25 в то же время. Используйте || вместо:

if ($userNameSignupLength < 4 || $userNameSignupLength > 25) 

Теперь условие выполняется, если число либо меньше 4 или больше 25.

+0

большое спасибо lol Я делаю, что все время испортил мои анды и орды><однажды я получу его lol ^. ^ – MrEnder

2

Изменение & & к ||

else if ($userNameSignupLength<4 || $userNameSignupLength>25) 
2

Я думаю, что вы хотите или есть:

else if($userNameSignupLength < 4 || $userNameSignupLength > 25) { 

Как Гамбо сказал, длина не может быть, возможно, менее чем в 4 и больше 25. && означает and.

2

и избавиться от «else» перед ключевым словом «if»!

-1

С кодом, очевидно, что вы пытаетесь проверить текстовое поле. Вы не делили html этого кода. В любом случае, из моего опыта я скажу, что вы не должны использовать & &. Вы должны использовать ||. Также вы не должны напрямую использовать else if. Вы должны использовать, если для этого кода.

Смежные вопросы