2012-06-19 3 views
0

양식이 일부 필드 만 필수 항목입니다. 필드가 필수는 아니지만 빈 데이터 유효성 검사를 검사해서는 안됩니다. 필수가 아닌 필드에 데이터가 포함되어 있으면 해당 필드가 표시됩니다 데이터를 확인하고 데이터가 존재할 때만 유효성 검사를 수행해야합니다.PHP- 특정 필드에서 유효성 검사

아래 코드는 모든 필드를 확인합니다. 예 : 코드를 변경하는 방법은 아래 코드에서 필수 사항은 아닙니다.

$validate = array(
    array($x, '/^[a-z\d ]{4,20}$/i', "Please enter valid name."), 
    array($y, '/^[a-z\d ]{4,20}$/i', "Please enter a real category."), 
    array($phone, '/^\(?[0-9]{3}\)?|[0-9]{3}[-. ]? [0-9]{3}[-. ]?[0-9]{4}$/' , "Please enter a valid phone number") 
); 

$error = ''; 
foreach ($validate as $validation) 
{ 
    if (!preg_match($validation[1],$validation[0])) 
    { 
     $error .= $validation[2]; 
    } 
} 

if($error != '') 
{ 
    echo $error; 
    exit; 
} 

이 게시물에 대한 의견 (명확하지 않은 경우).

미리 감사드립니다.

답변

0

최소한 필수 필드가 제출되었는지 확인하려면 issetempty 기능을 사용하여 설정되어 있고 truey 값이 있는지 확인할 수 있습니다. 예를 들어

: 예를 들어 이메일 필드가 반드시 반환 위의 조건을 채워되지 않았을 반면, 사용자 이름 및 암호 필드가 제출 된 경우 확인하고 값을 가질 것이다

if (isset($_POST['username'], $_POST['password']) && 
    ! empty($_POST['username']) && ! empty($_POST['password'])) { 
    // validation here 
} 

참된.

+0

: 위의 코드에서 사용자가 data.can을 입력하면 비 필수 입력란에서 유효성을 검사하고 싶습니다. –

+0

똑같은 로직을 사용할 수 있습니다. 필자가 제공 한 코드 블록에서 $ _POST [ 'phone']가 설정되어 있고 값이 있는지 확인하고 이에 따라 유효성 검사를 처리합니다. –

+0

: 내가 뭘보고 있는지 분명치 않습니다. 양식에 필수 항목이 아닌 필드가 있습니다. 사용자가 데이터를 입력하면 유효성 검사를 수행해야합니다. 분명합니다. –

0

여러분이 전에 필수 필드를 알고 있다면 배열로 그룹화하고 현재 키를 기반으로 테스트 할 것을 제안합니다. 키가 필수는 아니지만 값을 보유하고 있으면 테스트 할 수 있습니다. 그렇지 않으면 정기적 인 점검을 수행하십시오.

$error = ''; 
$mandatoryFields = array('key1', 'key2' 'key3'); 

foreach ($validate as $validation) 
{ 
    if (!in_array($validation[0], $mandatoryFields) && strlen(trim($validation[0])) > 0) 
    { 
     // There is data in a non mandatory field. 
     // Perform your test. 
    } 
    else { 
     // Do your regular test. 
     if (!preg_match($validation[1],$validation[0])) 
     { 
      $error .= $validation[2]; 
     } 
    } 
} 

시도해 볼 수 있습니다.