2012-09-24 7 views
-2

if 문으로 사용하려고 시도했지만 작동하지 않습니다. 그것은 부정확 한 통과와 잘못된 것을 말한다. 뭐가 잘못 되었 니?PHP If 문이 작동하지 않습니다.

$status = $_POST['status']; 
$server = $_POST['server']; 
$room = $_POST['room']; 
$password = $_POST['password']; 
$submit = $_POST['submit']; 
if ($submit) { 
    if ($server && $status && $room && $password) { 
    if ($password == "o") { 
     echo "Done"; 
    } else { 
     echo "all fields"; 
    } 
    } else { 
    } 
    echo "incorrect pass"; 
} else { 
    echo "submit"; 
} 
+0

$ _POST [ 'submit']의 가치는 무엇입니까 ?? – Duniyadnd

+0

논리가 잘못되었습니다 – Petah

+2

해당 필드 중 하나가 숫자이고 '0'을 값으로받는다면 논리가 잘못됩니다. 그러면 부울 false로 변환되어 '유효성 검사'에 실패합니다. –

답변

3

당신이하려는 것을보기가 조금 어렵습니다.

} else { 

} 
echo "incorrect pass"; 

하나 내부의 괄호되어야한다. 적절한 코드 형식 및 들여 쓰기의 중요성을 강조해야합니다.

나는 그것은 또한과 같이, 다른 다른 블록으로 전환해야한다고 생각 :

if ($server && $status && $room && $password) { 
    if ($password == "o") { 
     echo "Done"; 
    } else { 
     echo "incorrect pass"; 
    } 
} else { 
    echo "all fields"; 
} 

또 다른 것은, 난 항상 $_POST 값이있는 경우 설정, 사실 확인 isset()를 사용합니다.

+0

Lol? 아니요, 이제는 DoneIncorrect 패스 –

+1

lol? 너도 변한거야? 완료 및 부정확 한 통과를 말하는 것일 수는 없습니다. – sachleen

+0

해결되었습니다. 고마워요! 1111! 1 –

1

이 코드는 유효하지 않습니다. }{입니다. 브레이스 불일치를 설명하는 코드에 대한 몇 가지 조건이 가정

, 당신의

echo "incorrect pass"; 

는 '($ 제출)하는 경우 {condition, and therefor will run *regardless* of the value of $의 submit`의 닫는 중괄호 후 발생합니다.

관련 문제