필수 입력 검증이란 사용자가 반드시 입력해야 하는 필수 input 요소에 데이터가 모두 입력되었는지를 검증하는 것이다.
예시 코드
if($_SERVER["REQUEST_METHOD"] == "POST"){
// 이름에 대한 필수 입력 검증
if (empty($_POST["name"])) {
$nameMsg = "이름을 입력해 주세요!";
} else {
$name = $_POST["name"];
}
// 성별에 대한 필수 입력 검증
1. 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"];
}
empty()
!isset($var) || $var == false
if(empty($_POST["gender"]){
이메일 주소는 '@'문자와 '.'문자를 포함하는 유요한 이메일 주소의 형식이 따로 존재한다. 입력 형식 검증이란 사용자가 입력한 데이터가 이러한 형식에 맞는 유효한 데이터인가를 검증하는 것이다.
예시 코드
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameMsg = "이름을 입력해 주세요!";
} else {
$name = $_POST["name"];
// 이름의 입력 형식 검증
1. if (!preg_match("/^[a-zA-Z가-힣 ]*$/", $name)) {
$nameMsg = "영문자와 한글만 가능합니다!";
}
}
...
if (empty($_POST["email"])) {
$emailMsg = "";
} else {
$email = $_POST["email"];
// 이메일의 입력 형식 검증
2. if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailMsg = "이메일을 정확히 입력해 주세요!";
}
}
if (empty($_POST["website"])) {
$websiteMsg = "";
} else {
$website = $_POST["website"];
// 홈페이지 URL 주소의 입력 형식 검증
3. if (!filter_var($email, FILTER_VALIDATE_URL)) {
$websiteMsg = "홈페이지의 주소를 정확히 입력해 주세요!";
}
}
...
}
if (empty($_POST["name"])) {
$nameMsg = "이름을 입력해 주세요!";
} else {
$name = $_POST["name"];
// 이름의 입력 형식 검증
1. if (!preg_match("/^[a-zA-Z가-힣 ]*$/", $name)) {
$nameMsg = "영문자와 한글만 가능합니다!";
}
}
PHP에서는 이메일과 URL 주소에 대한 입력 형식 검증에 사용할 수 있는 filter_var() 함수를 제공하고 있다.
filter_var() 함수는 해당 변수가 전달받은 검증 필터에 맞는 유효한 값인지를 검사하는 함수이다.
if (empty($_POST["email"])) {
$emailMsg = "";
} else {
$email = $_POST["email"];
// 이메일의 입력 형식 검증
2. if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailMsg = "이메일을 정확히 입력해 주세요!";
}
}
if (empty($_POST["website"])) {
$websiteMsg = "";
} else {
$website = $_POST["website"];
// 홈페이지 URL 주소의 입력 형식 검증
3. if (!filter_var($website, FILTER_VALIDATE_URL)) {
$websiteMsg = "홈페이지의 주소를 정확히 입력해 주세요!";
}
}