2012-10-04 3 views
0

양식을 제출 한 후 PHP에서 사용자 이름과 비밀번호의 유효성을 검사하는 매우 간단한 로그인 페이지를 만들었습니다.PHP - else가 지정되지 않은 경우 조건문을 건너 뛰는 경우

검증 나의 첫 번째 단계는 사용자 이름과 암호가 나는 로그인 페이지로 다시 사용자를 보내 비어있는 경우, 비어 있지 않은 것을 확인하는 것입니다 :

$e = $_POST['email']; 
$p = $_POST['password']; 


if($e == '' || $p == '' || is_null($e) || is_null($p)){ 
    header('Location: login.php?e=missing'); 
} 

if 문 밝혀 그 검사 사용자 이름과 암호가 비어있는 경우에만 내가 else 문 추가하면 작동합니다, 내 코드가 작동, 나는 else 및 문제 해결,하지만 왜 추가

$e = $_POST['email']; 
$p = $_POST['password']; 


if($e == '' || $p == '' || is_null($e) || is_null($p)){ 
    header('Location: login.php?e=missing'); 
}else{ 

    //more validation 
} 

정직하기를 ??? 감사합니다. .

+0

는 나는이 두 번째 예는 두 개의 더 검사를 가지고뿐만 아니라, 지적 가치 약간 검증 – Chris

+1

을 추가하는 것을 고려합니다 :은'$ e'와'$의 p'에서'is_null' 기능이 바르. –

답변

4
$e = $_POST['email']; 
$p = $_POST['password']; 


if(trim($e) == '' || trim($p) == ''){ 
    header('Location: login.php?e=missing'); 
    exit(); // add this else it wont leave the page! 
}else{ 

    //more validation 
} 
+1

'empty()'함수를 사용하여 변수가 "empty"인지 테스트 할 수도 있습니다. –

+0

이것은 사실입니다. - 생각하지 않았습니다. == ' – Chris

+0

은 모든 것을 끝내기로되어있는 header()가 아닙니다. – multimediaxp

1
if($e == '' || $p == ''){ 
    header('Location: login.php?e=missing'); 
} 

헤더 행 뒤에 exit()을 추가해야합니다. 그렇지 않으면 처리가 정상적으로 계속되고 나머지 모든 코드가 실행됩니다.

0
$e = $_POST['email']; 
$p = $_POST['password']; 

if(!empty($e) && !empty($p)) 
{ 
    header('Location: login.php?e=missing'); 
    exit(); 
} 
else 
{ 
    //more validation 
} 
0
if($e == '' || $p == ''){ 
     header('Location: login.php?e=missing'); 
    } 

라텐 그 사용은 :) (

if(!isset($e) || !isset($p)){ 
    header('Location: login.php?e=missing'); 
    exit(); 
} 

이 때문에 공백의 발생 또는 당신은 공백을 제거하고 종료를 사용하는 트림() 함수를 사용할 수 있습니다 ; 헤더 다음에 *

1

empty 변수가 설정되어 있는지, 비어 있는지 확인해야합니다.

$e = $_POST['email']; 
$p = $_POST['password']; 

if(empty($e) || empty($p))  { 
    header('Location: login.php?e=missing'); 
    exit; 
} 
else { 
//more validation 
} 
관련 문제