2012-07-19 2 views
0

모든 필드가 채워지지 않은 경우 오류가 표시되도록 조건을 설정하려고합니다. 필자가 작성한 코드는 항상 사실로 출력됩니다.빈 입력에 대한 조건을 설정하십시오.

내가 뭘 잘못하고 있니? 필드 중 하나가 비어있는 경우

if (empty($oldpassword)||empty($newpassword)||empty($repatnewpassword)) 

답변

2

당신은 의미, 그 중 하나를 확인하는, 그것은 true을 발생합니다. 로 변경, 그래서 당신은 모든 필드가 비어 true에만 경우 얻을 :

if (empty($oldpassword) && empty($newpassword) && empty($repatnewpassword)) 

모든 필드가 작성되어 있는지 확인해야하는 경우가 하나가 마녀를 알 필요가 작성되지, 조금 더 코드를 수행 $를 OLDpassword이 비어있는 경우 $ NEWPASSWORD가 아닌 동안

# check first if old password is filled 
if ($oldpassword) { 

    # now, if that works, check if new passwords are filled (and match too) 
    if ($newpassword && ($newpassword == $repatnewpassword)) { 

     // do whatever password checks here, now you know that oldpassword is 
     // filled and newpassord is filled and matches repatnewpassword 

    } else { 
     // new password is not filled or passwords don't match 
    } 

} else { 
    // old password is not filled out 
} 
+0

그 상자가 비어 있다면 그것은 사실입니다.하지만 모든 입력이 채워지는 순간 그 순간은 여전히 ​​사실입니다. –

+0

새 코드로 답변을 업데이트했습니다. – Peon

0

당신의 코드는 true를 돌려줍니다. 모두 ||를 & &으로 변경하십시오.

관련 문제