PHP Forms - 필수 Fields
이 장에서는 필수 입력 필드 만들기와 필요시 오류 메시지를 만드는 방법을 보여줍니다.
PHP - Required Fields
이전 페이지의 유효성 검사 규칙 표에서, "Name", "E-mail", 과 "Gender" 필드들이 필요함을 보았다. 이러한 필드들은 비위둘 수 없으며 HTML 폼에서 반드시 작성되어야 합니다.
Field | Validation Rules |
---|---|
Name | Required. + Must only contain letters and whitespace |
Required. + Must contain a valid email address (with @ and .) | |
Website | Optional. If present, it must contain a valid URL |
Comment | Optional. Multi-line input field (textarea) |
Gender | Required. Must select one |
이전 장에서 모든 input 필드는 선택적이었다.
다음 코드에서는 새로운 변수들 $nameErr, $emailErr, $genderErr,과 $websiteErr 를 추가한다. 이 에러 변수들은 필수 필드들에 대한 에러 메시지를 갖게 된다. 우리는 또한 각 $_POST 변수에 대하여 if else 문을 추가한다. 이는 $_POST 변수가 비어있는지를 확인한다 (PHP empty() 함수로). 만약 비어 있다면, 에러 메시지가 해당 에러 변수에 저장되며, 비어 있지 않다면, 사용자 입력 데이터를 test_input() 함수로 보낸다.:
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["name"]))
{$nameErr = "Name is required";}
else
{$name = test_input($_POST["name"]);}
if (empty($_POST["email"]))
{$emailErr = "Email is required";}
else
{$email = test_input($_POST["email"]);}
if (empty($_POST["website"]))
{$website = "";}
else
{$website = test_input($_POST["website"]);}
if (empty($_POST["comment"]))
{$comment = "";}
else
{$comment = test_input($_POST["comment"]);}
if (empty($_POST["gender"]))
{$genderErr = "Gender is required";}
else
{$gender = test_input($_POST["gender"]);}
}
?>
PHP - Display The Error Messages
그러면 HTML form 에, 우리는 각 필수 필드 다음에 필요시 (즉, 사용자가 필수 필드를 작성하지 않고 제출하려하면) 적절한 에러 메시지를 생성하는 작은 스크립트를 추가 한다. :
Example
<form method="post"
action="<?php echo
htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo
$nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo
$emailErr;?></span>
<br><br>
Website:
<input type="text" name="website">
<span class="error"><?php echo
$websiteErr;?></span>
<br><br>
<label>Comment: <textarea name="comment" rows="5"
cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<span class="error">* <?php echo
$genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
Run example »
다음 단계는 입력 데이터의 유효성 검사이다. 즉, " Name 필드는 문자와 공백만 포함하는가?", 과 "E-mail 필드는 유효한 e-mail 주소 구문을 갖는가?", 그리고 작성이 완성되면, "Website 필드는 유효한 URL을 담고 있는가?".