2010-03-22 5 views
2

좋아 나는 문자열이PHP 나 strlen 질문

$userNameSignupLength = strlen($userNameSignup); 

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

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

     } 

처럼 나 strlen 사용하려면 최소 4 자 내가 노력

25 이하 자 짧은하지만 그것이 작동하지 않는 것을 확인하고있다. .. 내가 뭘 잘못 했니?

+0

@Kevin과 동일합니다. 그리고 당신이 원하는 것은'> = 25'가 아니라 '> 25'입니다. – p4bl0

+0

http://www.php.net/manual/en/function.mb-strlen.php를 보길 원할 것입니다. strlen은 UTF-8과 같은 멀티 바이트 문자를 잘못 계산합니다. – dbemerlin

+0

@ p4blo, no - 25는 괜찮습니다. 너무 길면'> 25'를 확인하고 싶습니다. – nickf

답변

8

strlen을 사용하면 문자열의 길이 (바이트)를 검사하는 것이 정확합니다. 그러나 숫자는 4 이 동시에 25보다 클 수 없습니다. 대신 ||를 사용하여 숫자가 하나보다 작은 4 또는 이상 25

+0

대단히 감사합니다. 나는 그 모든 시간을 엉망으로 만든다. <언젠가 나는 그것을 얻을 것이다.^^ – MrEnder

2

변경 & & 것은 ||하는 경우

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

이제 조건이 충족되어

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

난 당신이 거기에 OR을 원하는 생각 : 검보 말했듯이

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

는, 길이는 아마도 모두 4 이하 및 이상 25 &&and 의미가 될 수 없습니다.

2

'if'키워드 앞의 'else'를 제거하십시오!

-1

코드를 사용하면 텍스트 필드의 유효성을 검사하는 것이 분명합니다. 이 코드의 html을 공유하지 않았습니다. 어쨌든, 내 전문 지식에서 나는 당신이 & &을 사용하지 말아야한다고 말할 것입니다. ||를 사용해야합니다. 또한 else를 직접 사용해서는 안됩니다. 이 코드에 if를 사용해야합니다.