2011-02-15 4 views
3

사용자가 이름, 전자 메일 및 메시지를 입력하는 작은 양식을 만들고 싶습니다. 양식은 다음을 수행하는 PHP 파일로 아약스와 함께 제출 : 3 변수가 존재 게시하지 NULL 2 살균 및 악성 코드 및 일부 기준의 3 개 변수를 확인하는 경우PHP 내장 필터

1 체크, 이름이 있어야하며 이메일은 ..이어야합니다. 3 - php의 메일()로 데이터를 보냅니다. 나는 PHP 설명서를 살펴했다 내가 아무것도 이해하지 : 나는

NB 제 PHP 필터와 두 번째 단계를 달성 할 수있는 방법

.

감사합니다.

+0

이 방법을 제출 한 이메일이 유효 구문이있을 수 있음을 명심하지만 정확하거나에 속하지 사용자. 특히 직접 메일을'mail() '하지 마십시오. 스팸 블랙리스트에 쉽게 접근 할 수 있습니다. – aaz

답변

3

1. 사용 isset() 또는 array_key_exists()처럼 하나 개의 필드에 다중 필터 또는 다중 플래그를 추가 할 수 있습니다.

if (isset($_POST['a_field'])) 

// or 

if (array_key_exists('a_field', $_POST))

filter_has_var를 사용할 수도 있지만 알고 있어야하는 "잡았다"가 있습니다. 대신 PHP의 슈퍼 전역에서 작동하지 않고 대신 PHP로 전송되는 데이터를 사용합니다. 스크립트에서 수동으로 무언가를 선언하면 (예 : $_POST['test'], filter_has_var은 이 아니며입니다.

어떻게 filter_has_var를 사용하는 :

if (filter_has_var(INPUT_POST, 'test')) 



2. 데이터를 살균하거나 확인 하시겠습니까? (두 가지 다른 것). 그 이름과 이메일 어설

값을 가지고, 이메일은 유효한 이메일입니다 :

if (!empty($_POST['name'])) 

if (!empty($_POST['email']) && filter_input(INPUST_POST, 'email', FILTER_VALIDATE_EMAIL)) 
+0

으로 변경하면 내부적으로'isset' 확인을 수행 할 때'! empty' 만 사용할 수 있습니다. – RobertPitt

+0

array_key_exists 메소드를 제공해 주셔서 감사합니다. - 나는 다른 프로젝트를 위해 그것을 필요로합니다 :-) –

1

당신은 이메일을이 작업을 수행 할 수 있습니다 필터가 실패 할 경우

filter_var('[email protected]', FILTER_VALIDATE_EMAIL)

는 FALSE 필터링 된 데이터를 돌려줍니다.

배열을 사용하여 값의 유효성을 검사 할 수 있습니다.

 
$args = array(
    'name' => array('filter' => FILTER_VALIDATE_BOOLEAN, 
          'flags'  => FILTER_NULL_ON_FAILURE), 
    'email' => array('filter' => FILTER_VALIDATE_BOOLEAN, 
          'flags'  => FILTER_NULL_ON_FAILURE), 
    'message' => array('filter' => FILTER_VALIDATE_BOOLEAN, 
          'flags'  => FILTER_NULL_ON_FAILURE));

$myinputs = filter_input_array(INPUT_GET, $args);

당신은 값이 존재하는지 $ _POST에

email => array("filter" => array(FILTER_VALIDATE_EMAIL ,FILTER_VALIDATE_BOOLE)

+0

각 파일에 대해 옵션을 더 추가하거나 이메일 필터를 FILTER_VALIDATE_EMAIL – AmirModiri