웹마스터 팁

────────────────────────────────────────────────────────────────
 원  리 :
*주민등록번호 예: 640713-1018433

우선 주민등록번호 마지막자리수만 제외하고,
각각의 자리수마다 다음과 같은 수를 곱하여 전체를 더한다.

6 4 0 7 1 3 1 0 1 8 4 3 체크숫자3
x x x x x x x x x x x x
2 3 4 5 6 7 8 9 2 3 4 5 곱할수없음
-----------------------
+ + + + + + + + + + + +

즉, (6*2)+(4*3)+(0*4)+(7*5)+(1*6)+(3*7)+(1*8)+(0*9)+(1*2)
+(8*3)+(4*4)+(3*5) = 151

그러면 151 이란 수가 나온다. 이 151을 매직키인 11로 나누어 나머지만 취한다.
151 / 11 = 몫: 13 <-- 버림
나머지: 8
마지막 단계로 매직키인 11에서 나머지 8을 빼면 3이란 수가 나오는데,
이숫자가 주민등록번호 마지막 자리의 숫자(체크숫자)와 일치하면 정상적인 주민번호이다.
체크숫자와 11-나머지 = 3이므로 올바른주민번호 !
────────────────────────────────────────────────────────────────

소스정리 : (number.html은 소스해석을 할필요가 없는것같아서 생략)
<?
if((strlen($num)==6) && (strlen($ber)==7)) // number.html에서 첫번째폼,두번쨰폼에 숫자 6,7개가 들어가있나를 strlen함수로 검사
{
        $total = 0; // 변수초기화
        $id = $num . $ber; // 두개로 나눠져잇는 값을 하나로 합쳐 id변수에 저장
        
        for($i=0; $i<13; $i++)
        {
                $id[$i] = intval($id[$i]); //정수화함
        }
        
        $total = $id[0]*2 + $id[1]*3 + $id[2]*4 + $id[3]*5 + $id[4]*6 + $id[5]*7 + $id[6]*8 +
                 $id[7]*9 + $id[8]*2 + $id[9]*3 + $id[10]*4 + $id[11]*5; //주민등록번호 식에 맞게 계산
        
        $total = $total%11; //계산
        $total2 = 11-$total; // 계산 (위에 원리참조)
        
        if($total2>9) $total2 = $total2 % 10; //체크숫자는 무조건 1의자리니 10이상의 나머지가나온다면 1의자리로 변환함
        
        $total = $id[12]; // 체크숫자를 total함수에 저장
        
        if($total == $total2) // 체크숫자와 나머지가 값이 같은가확인
        {
                echo "
                        <script>
                        alert ('올바른 주민등록번호 입니다.');
                        history.back();
                        </script>                        //같다면 스크립트출력
                     ";
        }
        else
        {
                echo "
                        <script>
                        alert ('올바른 주민등록번호가 아닙니다.다시입력해 주십시오');
                        history.go(-1);
                        </script>
                     "; // 같지않다면 스크립트출력
        }
}
        else
{
        echo("
                <script>
                alert ('주민등록번호의 형식 혹은 길이 입력이 올바르지 않습니다.');
                history.back();
                </script>
             "); //소스 맨위 if식에서 6,7자리 결과값이 틀리면 출력
}
?>

● 적으면서 :

소스출저 : php고수로가는길 (서적)
원리출저 : php스쿨 게시판중 발췌

php용 소스입니다.
javascript로 하는 방법도 있지만 클라이언트측 프로그램을 사용할 경우 변조에대한 보장은 책임을 질수 없습니다.
주민등록번호같은 중요한자료를 처리할 때는 php도 곁들이는게 좋으
제목 글쓴이 날짜
신천오피 ⦑오피쓰.COM⦒ 신천오피 신천OP 신천건마 신천오피 koykoyah 2025.02.21
산본오피 산본출장안마 ⦑출장마사지안내.COM⦒ 산본OP 산본오피 산본오피 koykoyah 2025.02.21
신천오피 ⦑오피쓰.COM⦒ 신천OP 신천오피 신천출장샵 신천오피 koykoyah 2025.02.20
연신내오피 ⦑출장안마사이트.COM⦒ 연신내오피 연신내OP 연신내건마 연신내오피 koykoyah 2025.02.20
일산오피 일산출장안마 ⦑오피사이트.NET⦒ 일산OP 일산오피 일산오피 koykoyah 2025.02.20
구미오피 구미오피 ⦑출장마사지안내.COM⦒ 구미OP 구미스파 구미오피 koykoyah 2025.02.20
신촌오피 ⦑오피쓰주소.COM⦒ 신촌마사지 신촌오피 신촌오피 신촌OP koykoyah 2025.02.20
가락오피 가락오피 ⦑오피쓰.COM⦒ 가락OP 가락스파 가락오피 koykoyah 2025.02.20
인천오피 인천출장안마 ⦑오피쓰주소.COM⦒ 인천OP 인천오피 인천오피 koykoyah 2025.02.20
답십리오피 답십리출장안마 ⦑오피쓰주소.COM⦒ 답십리OP 답십리오피 답십리오피 koykoyah 2025.02.20
가락오피 가락오피 ⦑오피.CLUB⦒ 가락OP 가락스파 가락오피 koykoyah 2025.02.20
서면오피 ⦑출장마사지안내.COM⦒ 서면오피 서면출장마사지 서면오피 서면OP koykoyah 2025.02.20
신천오피 ⦑출장마사지안내.COM⦒ 신천오피 신천출장마사지 신천오피 신천OP koykoyah 2025.02.20
선릉오피 선릉오피 ⦑오피사이트.NET⦒ 선릉OP 선릉스파 선릉오피 koykoyah 2025.02.20
대전오피 대전출장안마 ⦑오피쓰주소.COM⦒ 대전OP 대전오피 대전오피 koykoyah 2025.02.20
광주오피 ⦑오피쓰주소.COM⦒ 광주오피 광주출장마사지 광주오피 광주OP koykoyah 2025.02.20
의정부오피 ⦑오피.CLUB⦒ 의정부마사지 의정부오피 의정부오피 의정부OP koykoyah 2025.02.20
역삼오피 역삼오피 ⦑오피쓰주소.COM⦒ 역삼OP 역삼스파 역삼오피 koykoyah 2025.02.20
평촌오피 ⦑출장마사지안내.COM⦒ 평촌마사지 평촌오피 평촌오피 평촌OP koykoyah 2025.02.20
해운대오피 해운대OP ⦑오피사이트.NET⦒ 해운대휴게텔 해운대오피 해운대오피 koykoyah 2025.02.20