[해결] 2필드 주민번호 오류 체크 방법.. 어떻게 하면 될까요? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

[해결] 2필드 주민번호 오류 체크 방법.. 어떻게 하면 될까요? 정보

[해결] 2필드 주민번호 오류 체크 방법.. 어떻게 하면 될까요?

본문

register.skin.php

<input name=mb_jumin itemname="주민등록번호" required jumin minlength="13" maxlength=13 class=ed>
                  아래와 같이 수정
<input class="ed" style="width:56px; height:20px;" name=mb1 id="mb1" itemname="주민등록번호" minlength="6" maxlength=6> -
<input class="ed" style="width:74px; height:20px;" name=mb2 id="mb2" itemname="주민등록번호" minlength="7" maxlength=7 type="password">
<input type=hidden name=mb_jumin id="mb_jumin">

스킨 맨 아래.. 자바스크립트
function fregister_submit(f) {
f.mb_jumin.value = f.mb1.value + f.mb1.value;  /// 이부분만 추가
    if (!f.agree.checked) {

register_form.php

 if ($config[cf_use_jumin]) {
$jumin = $sql_password($mb_jumin); 
                  아래와 같이 수정

if ($config[cf_use_jumin]) {
  $mb_1 = sql_password($mb1);
  $mb_2 = sql_password($mb2);
  $row = sql_fetch(" select mb_name from $g4[member_table] where mb_1 = '$mb_1' and mb_2 = '$mb_2' ");

register_form_update.php
비슷한 코드 있는 곳에  아래 두줄 추가
$mb_1 = trim(strip_tags(mysql_escape_string($_POST[mb_1])));
$mb_2 = trim(strip_tags(mysql_escape_string($_POST[mb_2])));

register_form.skin.php
비슷한 코드 있는 곳에  아래 두줄 추가
<input type=hidden name=mb_1 value="<?=$mb_1?>">
<input type=hidden name=mb_2 value="<?=$mb_1?>">


목적..
주민등록 번호를 2개의 필드에 저장하고, 저장할때 필요한 주민번호 오류 체크가 되도록 할려고 하고 있습니다.

결과..
주민번호가 각각 다른 필드 mb_1, mb_2에 저장됨. 중복유무 체크 가능.

문제점 및 요청사항
저장할때 나와야될 주민번호 형식 오류 체크가 되지 않음..


저 말고도 꼭 주민등록 번호를 두필드로 나눠야될 분이 있어서 코드들 공개와 함께,
능력있으신분의 도움말씀 기다립니다~

http://sir.co.kr/bbs/tb.php/g4_qa/191437/817f30f932773cdd1929543b5f642f5f
그나마 이글과 내용이 비슷하지만, 이글의 방법으로해결되지 못했습니다..

댓글 전체

해결.. register_form.php  파일의 가장 맨 하단에 아래 로 대체..
왜 멍청하게 굳이  그누보드 내장 자바스크립트만을 고집했을까요..;;

이렇게 딱 맞춰져 나온 스크립트들이 많은데 말이죠..
아래 스크립트를 넣고 나서 모든 문제가 해결됐습니다!


<script language="javascript">
function fregister_submit(f) {
f.mb_jumin.value = f.mb1.value + f.mb2.value;
//주민번호 체크
  var tmp = 0
  var yy = f.mb1.value.substring(0,2)
  var mm = f.mb1.value.substring(2,4)
  var dd = f.mb1.value.substring(4,6)
  var fsex = f.mb2.value.substring(0,1)
  if ((f.mb1.value.length != 6 ) || ( mm < 1 || mm > 16 || dd < 1) )
  {
  alert('잘못된 주민등록번호입니다.');
  f.mb1.value=''
  f.mb1.focus();
  return;
  }
  if ((fsex != 1 && fsex !=2 && fsex !=3 && fsex !=4)|| (f.mb2.value.length != 7 ))
  {
  alert ('잘못된 주민등록번호입니다.');
  f.mb2.value=''
  f.mb2.focus();
  return;
  }
  for (var i = 0; i <=5 ; i++)
  tmp = tmp + ((i%8+2) * parseInt(f.mb1.value.substring(i,i+1)))


  for (var i = 6; i <=11 ; i++)
  tmp = tmp + ((i%8+2) * parseInt(f.mb2.value.substring(i-6,i-5)))

  tmp = 11 - (tmp %11)
  tmp = tmp % 10

  if (tmp != f.mb2.value.substring(6,7))
  {
  alert ("잘못된 주민등록번호입니다.");
  f.mb1.value=''
  f.mb2.value=''
    f.mb1.focus();
  return;
  } //주민번호 체크
 
  if (!f.agree.checked) {
    alert("회원가입약관의 내용에 동의해야 회원가입 하실 수 있습니다.");
    f.agree.focus();
    return false;
  }

  if (!f.agree2.checked) {
    alert("개인정보취급방침의 내용에 동의해야 회원가입 하실 수 있습니다.");
    f.agree2.focus();
    return false;
  }
  f.action = "./register_form.php";
 
  return true;
}

if (typeof(document.fregister.mb_name) != "undefined")
  document.fregister.mb_name.focus();
</script>
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT