본문 바로가기
PHP

Form 입력 검증 처리 [PHP개발]

by cellin 2023. 11. 1.

HTML form 요소가 전송한 데이터를 처리하기 위해서는 PHP와 같은 서버 사이드 스크립트 언어를 사용

 

 

 

Form 입력

 

 

 

EXAMPLE

 

1) form 요소를 통해 사용자로부터 이름과 이메일을 입력

<html>
<body>
    <form action="request.php" method="post">
        이름 : <input type="text" name="name"><br>
        이메일 : <input type="text" name="email"><br>
        <input type="submit">
    </form>
</body>
</html>
 
 

2)  form 요소에서 전송한 데이터를 처리하는 PHP 스크립트

예제
$name = $_POST["name"];
$email = $_POST["email"];


echo $name."님의 이메일 주소는 ".$email."입니다.";
 

 

 

 

 

 

 

Form 검증(validation)

 

 

 

 

 

EXAMPLE

 

form 요소를 이용한 간단한 회원 가입 양식 예제

 

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

    이름 : <input type="text" name="name">

    성별 :

    <input type="radio" name="gender" value="male">남자

    <input type="radio" name="gender" value="female">여자

    이메일 : <input type="text" name="email">

    홈페이지 : <input type="text" name="website">

    취미 :

    <input type="checkbox" name="favtopic[]" value="game"> 그림그리기

    <input type="checkbox" name="favtopic[]" value="coding"> 코딩

    기타 : <textarea name="comment"></textarea>

    <input type="submit" value="전송">

</form>
 

<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>

인덱스로 "PHP_SELF"를 사용하면, 현재 실행 중인 PHP 스크립트의 파일 이름을 반환

 

 

 

 

 

필수 입력 검증

 

필수 입력 검증이란 사용자가 반드시 입력해야 하는 필수 input 요소에 데이터가 모두 입력되었는지를 검증하는 것

 

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

    // 이름에 대한 필수 입력 검증

    if (empty($_POST["name"])) {
        $nameMsg = "이름을 입력해 주세요!";
    } else {
        $name = $_POST["name"];
    }

    // 성별에 대한 필수 입력 검증

  if (!isset($_POST["gender"]) || $_POST["gender"]==false) {
        $genderMsg = "성별을 선택해 주세요!";
    } else {
        $gender = $_POST["gender"];
    }

 

    $email = $_POST["email"];
    $website = $_POST["website"];

 

    // 관심 있는 분야에 대한 필수 입력 검증

    if (empty($_POST["favtopic"])) {
        $favtopicMsg = "하나 이상 골라주세요!";
    } else {
        $favtopic = $_POST["favtopic"];
    }

 
    $comment = $_POST["comment"];

}
 

 

 

입력 형식 검증

입력 형식 검증이란 사용자가 입력한 데이터가 형식에 맞는 유효한 데이터인지 검증하는 것

 

EXAMPLE

f ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["name"])) {
        $nameMsg = "이름을 입력해 주세요!";
    } else {
        $name = $_POST["name"];
        // 이름의 입력 형식 검증
     if (!preg_match("/^[a-zA-Z가-힣 ]*$/", $name)) {
            $nameMsg = "영문자와 한글만 가능합니다!";
        }
    }

...

      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($email, FILTER_VALIDATE_URL)) {
            $websiteMsg = "홈페이지의 주소를 정확히 입력해 주세요!";

        }

    }

...

}
 

 

 

 

 

🔑 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 주소인지를 검증

 

 

 

 

 

 

 

 

 

사진: UnsplashAida Geraeva

 

 

 

728x90
반응형

'PHP' 카테고리의 다른 글

MySQL 연결[PHP개발]  (0) 2023.11.01
PHP 변수 관련내장 함수[PHP개발]  (0) 2023.11.01
PHP 배열의 기초[PHP개발]  (1) 2023.11.01
PHP 조건문, 반복문 등 기타제어문[PHP개발]  (0) 2023.11.01
PHP 변수선언[PHP개발]  (0) 2023.10.31