동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.
이 장에서는 입력 필드를 필수로 만들고 필요한 경우 오류 메시지를 보여주는 과정을 보여줍니다.
PHP - 필수 입력 필드
이전 장에서 유효성 검사 규칙 표에서 "아이디", "닉네임", "이름" 등은 필수입력 필드라는 것을 알 수 있습니다.
이런 필드는 비워둘 수 없으며 HTML 양식으로 반드시 작성해야 합니다.
필드 | 유효성 검사 규칙 |
아이디 | 필수. 영문자, 숫자, _만 입력 가능. 최소 3자이상 |
비밀번호 | 필수. |
비밀번호 확인 | 필수. |
이름 | 필수. |
닉네임 | 필수. 공백없이 한글,영문,숫자만 입력 가능 |
필수. | |
전화번호 | 선택사항. |
휴대폰번호 | 선택사항. |
자동등록방지 | 필수. |
이전 장에서 모든 입력 필드는 선택사항이었습니다. (코드 예에서는..)
다음 코드에서는 몇 가지 새로운 변수를 추가했습니다. ($mb_idErr, $mb_nicnameErr, $mb_nameErr,...)
이 오류 변수는 필수 필드에 대한 오류 메시지를 보유합니다. 또한 $_POST변수마다 if... else문을 추가했습니다.
$_POST변수가 비어 있는지 확인합니다. (PHP empty()함수 사용) 비어 있으면 오류 메시지가 다른 오류 변수에 저장되고 비어 있지 않으면 test_input()함수를 통해 사용자 입력 데이터를 보냅니다.
<?php
// define variables and set to empty values
$mb_idErr = $mb_passwordErr = $mb_nameErr = $mb_nicnameErr = $mb_telErr = "";
$mb_id = $mb_password = $mb_name = $mb_nicname = $mb_tel = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["mb_id"])) {
$mb_idErr = "mb_id is required";
} else {
$mb_id = test_input($_POST["mb_id"]);
}
if (empty($_POST["mb_password"])) {
$mb_passwordErr = "mb_password is required";
} else {
$mb_password = test_input($_POST["mb_password"]);
}
if (empty($_POST["mb_name"])) {
$mb_nameErr = "mb_name is required";
} else {
$mb_name = test_input($_POST["mb_name"]);
}
if (empty($_POST["mb_nicname"])) {
$mb_nicnameErr = "mb_nicname is required";
} else {
$mb_nicname = test_input($_POST["mb_nicname"]);
}
if (empty($_POST["mb_tel"])) {
$mb_telErr = "mb_tel is required";
} else {
$mb_tel = test_input($_POST["mb_tel"]);
}
}
?>
PHP - 에러 메시지 출력
그런 다음 HTML양식에서 필요한 각 필드 다음에 작은 스크립트를 추가하여 필요한 경우 올바른 오류 메시지를 생성합니다. (즉, 사용자가 필수 필드를 채우지 않고 양식을 제출하려고 시도하는 경우)
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
mb_id:
<input type="text" name="mb_id">
<span class="error">* <?php echo $mb_idErr;?></span>
<br><br>
mb_password:
<input type="text" name="mb_password">
<span class="error">* <?php echo $mb_passwordErr;?></span>
<br><br>
mb_name:
<input type="text" name="mb_name">
<span class="error"><?php echo $mb_nameErr;?></span>
<br><br>
mb_nicname:
<input type="text" name="mb_nicname">
<span class="error">* <?php echo $mb_nicnameErr;?></span>
<br><br>
mb_tel:
<input type="text" name="mb_tel">
<span class="error">* <?php echo $mb_telErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
** HTML5 required
<input type="text" name="name" required>
그누보드/영카트
** HTML 단계에서 필수입력 처리되고 있습니다.
/theme/basic/skin/board/basic/write.skin.php
/theme/basic/skin/board/gallery/write.skin.php
/theme/basic/skin/member/basic/register_form.skin.php
등록된 댓글이 없습니다.