-
[PHP] 19. Form Required - PHP 강좌, PHP5Web/PHP 2015. 6. 13. 13:49
PHP 5 Forms - Required Fields
1. PHP - Required Fields
이전 장에서의 유효성 규칙 테이블에서 보면, "Name", "E-mail", "Gender" 필드는 필수적입니다. 이러한 필드들은 공백이여서는 안되고 HTML 서식에서 채워져야 합니다.
Field Validation Rules Name Required. + Must only contain letters and whitespace E-mail 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 [ 출처: W3Schools ]
아래 코드에 보면 몇 가지 새로운 변수를 추가하였습니다: $nameErr, $emailErr, $genderErr, $websiteErr.
이러한 에러 변수는 필수적인 필드들을 위한 에러 메세지를 담을 것 입니다.
또한 각 $_POST 변수에 대한 if else 문을 추가하였습니다. 이 체크는 $_POST 변수가 공백인지 검사합니다.
공백이라면, 에러메세지는 각기 다른 에러 변수에 저장될 것이며,
그게 아니라면, test_input() 함수를 통하여 사용자 입력 데이터가 전송되어 질 것 입니다.
12345678910111213141516171819202122232425262728293031323334353637<?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"]);}}?>cs 2. PHP - Display The Error Messages
그러고나서 HTML 서식에, 각 필수적인 필드 뒤에 작은 스크립트들을 추가 할 것입니다.
이 스크립트들은 필요로 한다면 올바른 에러 메시지를 생성해내는 스크립트입니다.
12345678910111213141516171819202122232425<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>cs 완성 예제:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192<!DOCTYPE HTML><html><head><style>.error {color: #FF0000;}</style></head><body><?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"]);}}function test_input($data) {$data = trim($data);$data = stripslashes($data);$data = htmlspecialchars($data);return $data;}?><h2>PHP Form Validation Example</h2><p><span class="error">* required field.</span></p><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>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><?phpecho "<h2>Your Input:</h2>";echo $name;echo "<br>";echo $email;echo "<br>";echo $website;echo "<br>";echo $comment;echo "<br>";echo $gender;?></body></html>cs 'Web > PHP' 카테고리의 다른 글
[PHP] 22. 날짜와 시간(Date and Time) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 21. 다차원 배열(Multidimension Arrays) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 20. Form URL / E-mail - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 18. Form Validation - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 17. Form Handling - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 16. SuperGlobal - PHP 강좌, PHP5 (0) 2015.06.13