유효성 검사 > 기술자료 | 해피정닷컴

유효성 검사 > 기술자료

본문 바로가기

사이트 내 전체검색

유효성 검사 > 기술자료

PHP 유효성 검사

페이지 정보


본문

<?php
/*
// 1-1. 이름 체크 ( euc-kr )
// 1-2. 이름 체크 ( UTF-8 )
// 2. 주민등록번호 유효성 검사: 올바른 경우 true, 틀린 경우 false 반환
// 3-1. 숫자만 입력받기 , preg_match 활용
// 3-2. 숫자만 입력받기 , is_int 활용
*/


*
// 1-1. 이름 체크 ( euc-kr )
*/
if ( !preg_match("/^([가-힣a-zA-Z]+[0-9]*){3,15}$/", $_POST["name"]) ) {
}

/*
// 1-2. 이름 체크 ( UTF-8 )
*/
if ( !preg_match("/^([가-힣a-zA-Z]+[0-9]*){3,15}$/u", $_POST["name"]) ) {
}

/*
// 2. 주민등록번호 유효성 검사: 올바른 경우 true, 틀린 경우 false 반환 
*/
function juminCheck($jumin1, $jumin2) { 
  $jumin = $jumin1 . $jumin2; 
  // 형태 검사: 총 13자리의 숫자, 7번째는 1..4의 값을 가짐 
  if (!ereg('^[[:digit:]]{6}[1-4][[:digit:]]{6}$', $jumin)) 
    return false; 
  // 날짜 유효성 검사 
  $birthYear = ('2' >= $jumin[6]) ? '19' : '20'; 
  $birthYear += substr($jumin, 0, 2); 
  $birthMonth = substr($jumin, 2, 2); 
  $birthDate = substr($jumin, 4, 2); 
  if (!checkdate($birthMonth, $birthDate, $birthYear)) 
    return false; 
  // Checksum 코드의 유효성 검사 
  for ($i = 0; $i < 13; $i++) $buf[$i] = (int) $resno[$i]; 
  $multipliers = array(2,3,4,5,6,7,8,9,2,3,4,5); 
  for ($i = $sum = 0; $i < 12; $i++) $sum += ($buf[$i] *= $multipliers[$i]); 
  if ((11 - ($sum % 11)) % 10 != $buf[12]) 
    return false; 
  // 모든 검사를 통과하면 유효한 주민등록번호임 
  return true; 
}

/*
// 3-1. 숫자만 입력받기 , preg_match 활용
*/
if ( preg_match("/^([0-9]*){3,15}$/", $_POST[aaa]) ) {
  echo "this is a integer 정수입니다.";
} else {
  echo "this is a string 문자입니다";
}

/*
// 3-2. 숫자만 입력받기 , is_int 활용  , PHP 버그로 오작동
// 테스트 :  PHP 4.4.7  ,  PHP 5.2.9
*/
// 상황1 : 오작동
if (is_int($_POST[aaa]))
  echo "is_int 1 = 정수 this is a integer <br>";
else
  echo "is_int 1 = 문자 this is a string <br>";
// 상황2 : 오작동
$aaa = $_POST[aaa];
if (is_int($aaa))
  echo "is_int 2 = 정수 this is a integer <br>";
else
  echo "is_int 2 = 문자 this is a string <br>";
// 상황3 : 정상
if (is_int(111))
  echo "is_int 3 = 정수 this is a integer <br>";
else
  echo "is_int 3 = 문자 this is a string <br>";


// 3-3. intval 활용하기
// Input 값의 미입력 및 E-mail 입력 누락 체크 & 글자수 제한 작업후 저장 활용을 위해 만들었습니다.
if($_POST["tel1"] == intval($_POST["tel1"])) {
   echo "$_POST["tel1"] is an integer";
}

if(intval($_POST["tel1"]) == 0) {
   echo "$_POST["tel1"] is an integer";
}

if(intval($_POST["tel1"]) > 0 && intval($_POST["tel2"]) > 0 && intval($_POST["tel3"]) > 0) {
   // 디비 저장~~
} else {
   // alert 띄우면 스패머가 또다른 대응을 하니까 속임수
}

$tel_check = explode("-",$tel);
if(intval($tel_check[0]) > 0 && intval($tel_check[1]) > 0 && intval($tel_check[2]) > 0) {
   // 디비 저장~~
} else {
   // alert 띄우면 스패머가 또다른 대응을 하니까 속임수
}
?>


참고자료
http://www.liveware.kr/index.asp?cate=003003&type=view&num=190 
http://us3.php.net/manual/en/function.is-int.php 
http://gnucomun.net/bbs/board.php?bo_table=freetalk&wr_id=26 

댓글목록

등록된 댓글이 없습니다.


Total 196건 7 페이지
  • RSS
기술자료 목록
76
PHP   16307  2010-08-21 09:37 ~ 2014-10-06 00:00  
75
PHP   22150  2010-07-21 21:47 ~ 2024-03-22 08:47  
74
PHP   22226  2010-07-10 15:48 ~ 2021-01-03 22:59  
73
PHP   27755  2010-04-13 23:06  
72
PHP   26153  2010-03-24 18:51 ~ 2022-09-27 10:16  
71
PHP   19217  2010-03-21 12:30 ~ 2020-11-15 19:34  
70
PHP   19510  2010-03-18 22:00 ~ 2016-03-17 00:00  
69
PHP   20941  2010-03-16 22:11 ~ 2020-02-08 11:51  
68
PHP   26122  2010-03-08 19:42 ~ 2010-03-08 00:00  
67
PHP   38193  2009-10-23 02:37 ~ 2015-05-26 00:00  
66
PHP   23505  2009-10-21 19:46 ~ 2009-10-21 00:00  
65
PHP   15881  2009-10-14 11:12  
열람
PHP   17606  2009-10-10 10:00 ~ 2017-05-19 00:00  
63
PHP   23614  2009-09-09 22:42  
62
PHP   15209  2009-08-25 20:51  
61
PHP   15540  2009-08-25 20:50  
60
PHP   25280  2009-08-25 20:46 ~ 2020-04-08 11:35  
59
PHP   45966  2009-08-21 01:29 ~ 2017-08-03 00:00  
58
PHP   12974  2009-08-06 22:35  
57
PHP   16276  2009-07-22 18:49  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2025 해피정닷컴. All Rights Reserved.