PHP 형식 검증 - 필수 필드

이 장에서는 필수 입력 필드를 만들고 필요할 때 사용할 오류 메시지를 생성하는 방법을 설명합니다.

PHP - 입력 필드

이전 검증 규칙에서 "이름", "이메일" 및 "성별" 필드가 필수 항목임을 볼 수 있습니다. 이 필드는 비어 있을 수 없으며 HTML 형식에서 입력되어야 합니다.

필드 검증 규칙
이름 필수 항목. 문자와 공백을 포함해야 합니다.
이메일 필수 항목. 유효한 이메일 주소(('@' 및 '.')를 포함)를 포함해야 합니다.
웹사이트 선택 사항. 선택하면, 유효한 URL을 포함해야 합니다.
댓글 선택 사항. 다중 행 입력 필드(텍스트 박스)
성별 필수 항목. 반드시 선택해야 합니다.

이전 장에서 모든 입력 필드는 선택 사항입니다.

아래 코드에서는 새로운 변수를 추가했습니다: $nameErr, $emailErr, $genderErr 및 $websiteErr. 이 오류 변수는 요청된 필드의 오류 메시지를 저장합니다. 또한 각 $_POST 변수에 if else 문을 추가했습니다. 이 문은 $_POST 변수가 비어 있는지 확인합니다(PHP empty() 함수를 통해). 비어 있으면, 오류 메시지는 다른 오류 변수에 저장됩니다. 비어 있지 않으면, test_input() 함수를 통해 사용자 입력 데이터를 전송합니다:

<?php}}
// 변수 정의 및 공백 값으로 설정
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "이름이 필요합니다";
  } else {
    $name = test_input($_POST["name"]);
  }
  if (empty($_POST["email"])) {
    $emailErr = "이메일이 필요합니다";
  } 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 = "성이 필요합니다";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

PHP - 오류 메시지 표시

HTML 양식에서는 각 필드 뒤에 스크립트를 추가합니다. 필요시 적절한 오류 메시지를 생성합니다(사용자가 필수 필드를 입력하지 않고 양식을 제출하려고 시도할 때):

예제

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
이름: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
이메일:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
웹사이트:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
<label>댓글: <textarea name="comment" rows="5" cols="40"></textarea></label>
<br><br>
성별:
<input type="radio" name="gender" value="female">여성
<input type="radio" name="gender" value="male">남성
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="제출"> 
</form>

실행 예제

다음은 입력 데이터의 검증입니다. 즉, 'Name 필드가 문자와 공백만 포함하고 있는지 확인하세요?' 그리고 'E-mail 필드가 유효한 이메일 주소 문법을 포함하고 있는지 확인하세요?' 그리고 Website 필드를 입력하면, '이 필드가 유효한 URL을 포함하고 있는지 확인하세요?'