2010-12-04 4 views
1

양식 마법사를 만들 때 가장 효율적인 방법으로 여러 양식에서 많은 들어오는 데이터의 유효성 검사에 접근하는 방법에 대한 조언이 필요합니다.PHP의 일괄 처리 데이터 유효성 검사

내 원래의 접근 방식은 해당 양식에 특정한 값을 검사하고 필수 필드가 있는지, 올바른 양식의 입력 이름/값이 제공되는지, 전자 메일이 유효한지 확인하는 유효성 검사기 기능을 통해 들어오는 데이터를 실행하는 것이 었습니다 일부 분야에서는 다른 사람들을위한 정수 등이 있지만, 제 코드는 통제를 벗어나기 시작했습니다. 내 응용 프로그램을 통해 들어오는 다양한 사용자 데이터가 있으므로이 유형의 데이터베이스를 사용해야하는지 궁금합니다.

기본적으로 사용자는 3 개의 다른 경로를 선택할 수 있으며 각 경로는 선택한 경로에 따라 최소 3 단계와 최대 6 단계가 있습니다.

나는 그것이 의미가있는 한 어떤 식 으로든 이것을 구조화 할 수 있습니다. 나는 네이티브 PHP 솔루션을 열거 나 데이터베이스에 연결하고 있습니다.

모든 제안 사항에 대해 매우 감사드립니다.

+0

이것은 주관적입니다. 성능이 문제라면 데이터베이스에서 멀리 떨어져 있어야합니다. ** 통제가 안되니? **, 기존 애플리케이션에서 일이 어떻게 이루어지는 지 다시 생각해 봐야한다. – ajreal

+0

나는 그 코멘트에 무슨 뜻인지 정확히 모르겠다. –

답변

1

하는 데 도움이 몰라 얼마나 정확하게 문제의 큰 다양성에서 발생 입력해야하는 데이터 및 처리 할 입력의 각 부분에서 확인할 사항은 무엇입니까?

각 유형의 유효성 검사 (예 : 텍스트, 숫자, 전화, 전자 메일 등)에 대한 유효성 검사기 기능을 설정하고 HTML 내 양식 요소 자체에서 각각을 검사 할 대상을 지정하고 구문 분석하는 방법이 있습니다 제출시. 양식과 함께 제출 된 유일한 다른 것인 value을 제외하고는 name 필드를 <input>으로 사용해야합니다.

필요한 phonenumber 필드가 있다고 가정 해 보겠습니다. 당신은 같은 HTML에서 그것을 밖으로 작성할 수

다음
<input type="text" name="officephone[required_phonenumber]" value=""> 

당신이 $_POST['officephone']['required_phonenumber']에있을 것입니다 어디에 제출 스크립트에서 제대로 분석해야하고, 그 기준으로, 사용자가 그 값에서 실행되도록 유효성 검사기 알 것이다 .

사용자가 자유 형식의 입력 이름을 지정해야하는 경우에 충분할 수있는 조잡한 방법입니다. 양식 마법사는 사용자가 필요로하는 것을 기반으로 이름에 적절한 유효성 검사기 태그를 추가하기 만하면됩니다.

최종 사용자가 POST를 통해 수동으로 제출할 수있는 것과 같이 양식 제출에 대한보다 일반적인 참고 사항에서 유효성 검사기를 변경하여 입력 이름을 다르게 인증하거나 유효성을 검사하지 못하도록 할 수 있음을 알려드립니다 태그.

구체적으로 이름이 지정된 입력 (고유 한 ID가 붙어있을 수 있음) 만 허용되며 이름 지정에 적절한 유효성 검사가 수행됩니다.

<input type="text" name="phone_1" value=""> 

및 양식 프로세서는 "전화"로 시작하는 전화 번호로 확인되어야하고, 그에 따라 사용되는 것을 알 수 있습니다 : 예를 들어, 양식 마법사 같은 입력 이름을 지정할 수 있습니다. 그렇게하면 HTML에서 데이터의 유효성을 검사하는 방법을 보여줄 필요가 없습니다.

+0

답장을 보내 주셔서 감사합니다. 나는이 방법에 익숙하지만, 언급 한 것처럼 그것은 오류 방지가 아니다. 내가 가진 가장 큰 문제는 사용자가 제공하는 데이터의 양입니다. 이름, 이메일, 전화 번호 등으로 들어오는 정보 스트림의 유효성을 검사하는 방법을 알고 있지만 사용자는 ~ 30 가지 옵션을 제출할 수 있습니다. , 그리고 그들은 함께 그룹화하기가 반드시 쉽지는 않습니다 - 일부는 char 제한이 있고, 어떤 것은 필수이고, 어떤 것은 부울 값만 가질 수 있습니다. 더 큰 규모의 비트에서 작동하는 솔루션이 필요합니다. –

+0

되도록 최선으로 그룹화 한 다음 위에서 설명한대로 HTML 요소의 태그 또는 영리한 요소 이름 지정을 통해 각 입력에 적용 할 유효성 검사기를 나타내는 방법을 찾습니다. 어떤 경우 든 양식 프로세서는 데이터 자체를 추측하거나 제공 할 힌트를 사용하여 들어오는 데이터를 알아야합니다. 나는 이것으로 내가 어떻게 도울 수 있는지 모르겠습니다. – Fanis

+0

귀하의 의견에 감사 드리며, 아마 귀하의 조언을 사용하고 html로 배열로 이동합니다. 감사 –

0

답변을 게시합니다. 잘하면 도움이 될 것입니다. 그와

<?php 

if(isset($_POST)) { 
    foreach ($_POST as $key => $val) { 
    if ($val == "") { 
     echo "u no leave null main"; 
    } else if ($key == "name" && $val == "restricted_value") { 
     echo "you are not permited"; 
    } 
    } 
} 
?> 
, 당신은 각각의 값을 확인하고, 쿼리를 실행할 수 있습니다 ... 내가 이해하는 경우가

+0

노력에 감사하지만, 내 시나리오는 제공된 답변보다 훨씬 복잡합니다 –