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 주소인지를 검증
사진: Unsplash의Aida Geraeva
'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 |