2012-02-22 9 views
0

두 가지를 구분하고 싶습니다.양식 요소가 PHP로 전송되었지만 비어 있는지 확인하십시오.

$_POST["something"]이 전송 된 경우 비어 있습니다.

또는 $_POST["something"]이 전송되지 않은 경우

.

방법이 있습니까? 같은 필드가있는 경우 true를 돌려줍니다 $ _POST [ "뭔가"] == ""경우 나머지

+0

어떻게 할 :이 유효한 값을 허용해야하는 경우, 여기에 기능입니다 배열에 특정 키가 있거나 없는지 확인하십시오. – markus

+2

필드가 비어 있으면 POST – Luke

답변

4

을 할 것입니다

+0

'=== '''을 사용하지 말고'strlen()'을 사용하는 것이 좋습니다. – Dutchie432

+0

@ Dutchie432 : 왜? –

+2

이 특정 시나리오에서는 사실상 차이가 없을 수 있지만 정확히 길이에 따라 길이가 아닌 내용을 기준으로 길이가 0 인 문자열을 확인하는 것이 좋습니다. – Dutchie432

-1

IF (은 $ _POST [ "뭔가"])는

당신은 수도 empty()을 사용하고 싶은 유혹을받을 수도 있지만 가능한 값에 0이 포함되어 있으면 얼굴이 날아갑니다. 베스트 같은 것을 사용 : 모든 데이터가 _GET 나오는대로

if (isset($_POST['something'])) { 
    // the form field was sent ... 
    if ($_POST['something'] === '') { 
     // the form field was sent, but is empty 
    } 
} 

이 작동을/_POST/_REQUEST 자동 전역에 관계없이 숫자의 여부의 문자열입니다.

+0

신뢰할 수 없음 : '' '== 0' evalutes to TRUE에 표시되지 않습니다. 0은 유효한 값일 수 있으며 설정되지 않은 경우 $ _POST [ 'something']를 사용하면 맹목적으로 경고를 발행합니다. –

2

당신은 issetempty 대한 isset()

if (isset($_POST["something"])){ 
    echo "The Post Variable 'something' was posted"; 
    if (strlen($_POST["something"])==0) 
     echo "The Post Variable is blank"; 
    else 
     echo "The Post Variable Contains ".$_POST['something']; 
} 
2

모양을 사용할 수 있습니다.

http://php.net/manual/fr/function.isset.php

http://php.net/manual/fr/function.empty.php

편집 : 아래의 의견에 해당. 비어있는 문자열은 숫자 값, 부동 값 또는 문자열의 0이 아닌 빈 문자열에 사용해야합니다. 내가 POST를 보낸 있는지 확인하는 PHP 함수는 isset()를 사용

function is_blank($value) { 
    return empty($value) && !is_numeric($value); 
} 
+1

링크에 따라 게시물 변수가 "0"또는 다른 여러 값으로 설정된 경우'empty()'가 작동하지 않습니다. – Dutchie432

+0

가능한 데이터에 '0'이 포함되어 있으면 비어 있습니다. '0 == '''는 TRUE이고,'$ x = 0; empty ($ x); –

관련 문제