2012-06-19 3 views
1

사용자가 양식을 제출하면 비어있는 유효성 검사 및 데이터 유효성 검사를 확인합니다.PHP 비우기 및 데이터 유효성 검사

예 : 데이터에서 첫 번째 입력란은 이름이며 사용자가 알파 문자 이외의 다른 문자를 입력했는지 확인합니다. 입력 한 후 오류 메시지가 표시됩니다. 이름에는 최소 4자를 포함해야합니다. 및 최대 20 자

이 코드를 사용하고 있지만 제대로 작동하지 않습니다. 정규식을 확인하는 방법입니다.

$validate = array("Category"=>"$productCategory", "Name" => "$productName"); 

$error = ''; 

foreach ($validate as $key => $field) { 

    if (preg_match('/^[a-z\d ]{4,20}$/i', $$field)) { 
     echo $error .= $field; 
    } 
} 

미리 감사드립니다.

+0

는 입력, 출력, 예상 출력을 제공하시기 바랍니다. – Adi

+0

이름에 악센트 부호가있는 문자 또는 다른 유니 코드 문자가 허용됩니까? – Geert

+0

더하기'$ field' 대신'$$ field'가 있습니다 – Adi

답변

3

당신은 preg_match를에 오타가, 당신은 일치, 정규식 괜찮 대신 $field$$field (2 배 $)를 입력 :

- a character between a - z (case insensitive) 
or 
- a digit between 0 - 9 
or 
- a "space" character. 

업데이트 코드가 @Andrius Naruševičius 코멘트에 대답

$validate = array("Category" => $productCategory, "Name" => $productName); 
$error = ''; 
foreach ($validate as $key => $field) 
{ 
    if (preg_match('/^[a-z\d ]{4,20}$/i',$field)) 
    { 
     $error.= $field; 
    } 
} 

if($error) 
{ 
    echo $error; 
    exit; 
} 
+0

: 유효한 이름은 공백 a-z, A-z & 0-9를 가질 수 있습니다. –

+0

: 오류 메시지를 추가 할 위치. 예, 10 개의 정규 표현식과 10 개의 문자가 있습니다.이 논리에서 어떻게 사용합니까? 양식을 제출할 때 5 개의 오류를 모두 사용자에게 보여 주어야합니다. –

+0

@ user1415759 \ w를 제거하고 정규 표현식에 a-z를 추가했습니다. \ w는 밑줄 문자와 밑줄 문자를 허용합니다. 둘째, 5 개의 오류를 모두 인쇄하고 코드를 종료하면 오류가 발생한 후 실행을 계속할 필요가 없습니다. –

2

당신은 의미합니까 :

$validate = array("Category"=>$productCategory, "Name" => $productName); 

foreach ($validate as $key => $field) { 

    if (preg_match('/^[\w\d]{4,20}$/i',$field)) { 
     echo $error .= $field; 
    } 
} 
+0

+1 당신이 더 잘 그것을 말했다 : D 조 –