• 코드:
​x
 
1
<!DOCTYPE html>
2
<html lang="ko">
3
​
4
<head>
5
    <meta charset="UTF-8">
6
    <title>PHP Form Validation</title>
7
    <style>
8
        .alert {color: red}
9
    </style>
10
</head>
11
​
12
<body>
13
​
14
<?php 
15
    $nameMsg = $emailMsg = $genderMsg = $websiteMsg = $favtopicMsg = $commentMsg = "";
16
    $name = $email = $gender = $website = $favtopic = $comment = "";
17
    
18
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
19
        
20
        if (empty($_POST["name"])) {
21
            $nameMsg = "이름을 입력해 주세요!";
22
        } else {
23
            $name = $_POST["name"];
24
            // 이름의 입력 형식 검증
25
            if (!preg_match("/^[a-zA-Z가-힣 ]*$/", $name)) {
26
                $nameMsg = "영문자와 한글만 가능합니다!";
27
            }
28
        }
29
​
30
        if (empty($_POST["gender"])) {
31
            $genderMsg = "성별을 선택해 주세요!";
32
        } else {
33
            $gender = $_POST["gender"];
34
        }
35
        
36
        if (empty($_POST["email"])) {
37
            $emailMsg = "";
38
        } else {
39
            $email = $_POST["email"];
40
            // 이메일의 입력 형식 검증
41
            if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
42
                $emailMsg = "이메일을 정확히 입력해 주세요!";
43
            }
44
        }
45
​
46
        if (empty($_POST["website"])) {
47
            $websiteMsg = "";
48
        } else {
49
            $website = $_POST["website"];
50
            // 홈페이지 URL 주소의 입력 형식 검증
51
            if (!filter_var($website, FILTER_VALIDATE_URL)) {
52
                $websiteMsg = "홈페이지의 주소를 정확히 입력해 주세요!";
53
            }
54
        }
55
        
56
        if (empty($_POST["favtopic"])) {
57
            $favtopicMsg = "하나 이상 골라주세요!";
58
        } else {
59
            $favtopic = $_POST["favtopic"];
60
        }
61
        
62
        $comment = $_POST["comment"];
63
    }
64
?>
65
​
66
<h2>회원 가입 양식</h2>
67
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
68
    <p class="alert">* : 필수 입력 사항</p>
69
    이름 : <input type="text" name="name"><span class="alert"> * <?php echo $nameMsg ?></span>
70
    <br><br>
71
    성별 : 
72
    <input type="radio" name="gender" value="female">여자
73
    <input type="radio" name="gender" value="male">남자
74
    <span class="alert"> * <?php echo $genderMsg ?></span>
75
    <br><br>
76
    이메일 : <input type="text" name="email"><span class="alert"><?php echo $emailMsg ?></span>
77
    <br><br>
78
    홈페이지 : <input type="text" name="website"><span class="alert"><?php echo $websiteMsg ?></span>
79
    <br><br>
80
    관심 있는 분야 :
81
    <input type="checkbox" name="favtopic[]" value="movie"> 영화
82
    <input type="checkbox" name="favtopic[]" value="music"> 음악
83
    <input type="checkbox" name="favtopic[]" value="game"> 게임
84
    <input type="checkbox" name="favtopic[]" value="coding"> 코딩
85
    <span class="alert"> * <?php echo $favtopicMsg ?></span>
86
    <br><br>
87
    기타 : <textarea name="comment"></textarea>
88
    <br><br>
89
    <input type="submit" value="전송">
90
​
91
<?php 
92
    echo "<h2>입력된 회원 정보</h2>";
93
    echo "이름 : ".$name."<br>";
94
    echo "성별 : ".$gender."<br>";
95
    echo "이메일 : ".$email."<br>";
96
    echo "홈페이지 : ".$website."<br>";
97
    echo "관심 있는 분야 : ";
98
    if (!empty($favtopic)) {
99
        foreach ($favtopic as $value) {
100
            echo $value." ";
101
        }
102
    }
103
    echo "<br>기타 : ".$comment;
104
?>
105
​
106
</form>
107
​
108
</body>
109
​
110
</html>