-
[PHP] 20. Form URL / E-mail - PHP 강좌, PHP5Web/PHP 2015. 6. 13. 13:50PHP 5 Forms - Validate E-mail and URL
이번 장은 이름, 이메일, URL을 어떻게 검사하는지 보도록 하겠습니다.
1. PHP - Validate Name
아래 코드는 이름 필드가 소문자나 공백만을 포함하는지 검사하는 간단한 방법을 보여줍니다.
1234567<?php$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA-Z ]*$/",$name)) {$nameErr = "Only letters and white space allowed";}?>cs * preg_match() 함수는 패턴을 위용하여 문자을 검색합니다. 패턴이 존재하면 true, 아니면 false를 반환합니다.
2. PHP - Validate E-mail
완전한 형태의 email 주소인지 체크하는 쉽고 안전한 방법은 PHP filter_var() 함수를 이용하는 것 입니다.
1234567<?php$email = test_input($_POST["email"]);if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {$emailErr = "Invalid email format";}?>cs 3. PHP - Validate URL
아래 코드는 URL 주소 문법이 유효한지 검사하는 방법을 보여줍니다.
12345678<?php$website = test_input($_POST["website"]);if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {$websiteErr = "Invalid URL";}?>cs 4. PHP - Validate Name, E-mail, and URL
종합하여 스크립트를 보면 아래와 같습니다:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103<!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"]);// check if name only contains letters and whitespaceif (!preg_match("/^[a-zA-Z ]*$/",$name)) {$nameErr = "Only letters and white space allowed";}}if (empty($_POST["email"])) {$emailErr = "Email is required";} else {$email = test_input($_POST["email"]);// check if e-mail address is well-formedif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {$emailErr = "Invalid email format";}}if (empty($_POST["website"])) {$website = "";} else {$website = test_input($_POST["website"]);// check if URL address syntax is valid (this regular expression also allows dashes in the URL)if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {$websiteErr = "Invalid URL";}}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] 23. 파일 인클루드(Include Files) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 22. 날짜와 시간(Date and Time) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 21. 다차원 배열(Multidimension Arrays) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 19. Form Required - 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