on
Form 입력 형식 검증
Form 입력 형식 검증
■입력 형식 검증
이메일 주소는 '@'와 '.'문자를 포함하는 유효한 이메일 주소의 형식이 따로 존재한다.
입력 형식 검증이란 사용자가 입력한 데이터가 이러한 형식에 맞는 유효한 데이터인지 검증하는 것이다.
ex) 이름, 이메일, 홈페이지에 대해 입력 형식 검증을 추가한 예제
if ($_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($website, FILTER_VALIDATE_URL)) { $websiteMsg = "홈페이지의 주소를 정확히 입력해 주세요!"; } } ... }
■이름 입력 형식 검증
이름과 같은 입력 형식 검증은 정규 표현식을 사용하여 검증할 수 있다.
if (empty($_POST["name"])) { $nameMsg = "이름을 입력해 주세요!"; } else { $name = $_POST["name"]; // 이름의 입력 형식 검증 if (!preg_match("/^[a-zA-Z가-힣 ]*$/", $name)) { $nameMsg = "영문자와 한글만 가능합니다!"; } }
정규 표현식 "/^[a-zA-Z가-힣]*$/"는 영문 대소문자, 한글 그리고 띄어쓰기만으로 이루어진 문자열을 뜻한다.
■이메일과 URL 주소 입력 형식 검증
이메일과 URL 주소에 대한 입력 형식 검증에 filter_var()를 사용할 수 있다.
filter_var() : 해당 변수가 전달받은 검증 필터에 맞는 유효한 값인지 검사
검증 필터 설명 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 해당 변수를 펄 호환 정규 표현식으로 검사 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 = "홈페이지의 주소를 정확히 입력해 주세요!"; } }
from http://woong971.tistory.com/79 by ccl(A) rewrite - 2021-11-04 13:00:56