본문 바로가기
개발 기초/PHP

PHP - Form 검증

by 륀두 2020. 4. 30.
반응형

1. 전송 검증

HTML form 요소는 텍스트 입력, 체크박스, 라디오 버튼 등 다양한 input 요소를 포함할 수 있습니다.

이러한 input 요소별로 사용자가 입력한 데이터가 적합한 데이터인지를 검사하는 검증 규칙을 설정할 수 있습니다.ㅇ

 

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $name = $_POST["name"];

    $gender = $_POST["gender"];

    $email = $_POST["email"];

    $website = $_POST["website"];

    $favtopic = $_POST["favtopic"];

    $comment = $_POST["comment"];

}

위의 예제에서 사용된 $_SERVER["REQUEST_METHOD"]는 페이지에 접근하기 위해 사용된 HTTP 요청 방식을 반환합니다.

따라서 위의 예제는 POST 방식의 HTTP 요청에서만 동작할 것입니다.

 

2. 입력 형식 검증

이메일 주소는 '@'문자와 '.'문자를 포함하는 유효한 이메일 주소의 형식이 따로 존재합니다.

입력 형식 검증이란 사용자가 입력한 데이터가 이러한 형식에 맞는 유효한 데이터인가를 검증하는 것입니다.

정규표현식을 사용하여 검증하는 방법도 있지만 이메일이나 url같은 특정 형식은 filter_var()함수로 검증할 수 있습니다.

PHP에서 사용할 수 있는 검증 필터는 다음과 같습니다.

검증 필터 설명
FILTER_VALIDATE_BOOLEAN 해당 변수가 "1", "true", "on", "yes"인 경우에만 true를 반환하고, 나머지는 전부 false를 반환함.
FILTER_VALIDATE_EMAIL 해당 변수가 유효한 이메일 주소인지를 검증함.
FILTER_VALIDATE_FLOAT 해당 변수가 float 타입인지를 검증함.
FILTER_VALIDATE_INT 해당 변수가 int 타입인지를 검증함.
FILTER_VALIDATE_IP 해당 변수가 유효한 IP 주소인지를 검증함.
FILTER_VALIDATE_MAC 해당 변수가 유효한 MAC 주소인지를 검증함.
FILTER_VALIDATE_REGEXP 해당 변수를 펄 호환 정규 표현식(Perl-Compatible Regular Expression, PCRE)으로 검증함.
FILTER_VALIDATE_URL 해당 변수가 유효한 URL 주소인지를 검증함.
if (empty($_POST["email"])) {

        $emailMsg = "";

    } else {

        $email = $_POST["email"];

        // 이메일의 입력 형식 검증

      if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

            $emailMsg = "이메일을 정확히 입력해 주세요!";

        }

    }

    if (empty($_POST["website"])) {

        $websiteMsg = "";

    } else {

        $website = $_POST["website"];

        // 홈페이지 URL 주소의 입력 형식 검증

      if (!filter_var($website, FILTER_VALIDATE_URL)) {

            $websiteMsg = "홈페이지의 주소를 정확히 입력해 주세요!";

        }

    }
반응형

'개발 기초 > PHP' 카테고리의 다른 글

PHP - 파일 쓰기  (0) 2020.04.30
PHP - 파일 읽기  (0) 2020.04.30
PHP - Form 전송  (0) 2020.04.30
PHP - 오버로딩  (0) 2020.04.30
PHP - 인터페이스  (0) 2020.04.28