그누보드 회원가입 페이지 주민등록 번호 칸 분리 후 에러 > 그누4 질문답변

그누4 질문답변

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

그누보드 회원가입 페이지 주민등록 번호 칸 분리 후 에러 정보

그누보드 회원가입 페이지 주민등록 번호 칸 분리 후 에러

본문

그누보드 회원가입시
 
주민등록번호를 입력 받는 과정에서
 
원래 그누 보드는 주민등록번호 입력 받는 칸이 1칸으로 되어있지만
 
이걸 2칸으로 분리 해서 좀 달라보이게 하고 싶어서 분리 해보았으나
 
문제는
 
첫째, 틀린번호를 넣어도
 
그냥 패스가 되는 문제가 있구요.
 
둘째, 다른 파일도 추가로 수정해야 하는것 같은데 어떻게 수정을 해야 하는지 알고 싶어서 고수 분들께 여쭤볼려고 합니다.
 
제가 수정한 소스는 ../skin/member/basic/register.skin.php
 
파일을
 
아래와 같이 수정하였습니다.
 
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<form name="fregister" method="POST" action="javascript:fregister_submit(document.fregister);" autocomplete="off">
<table width=600 cellspacing=0 cellspacing=0 align=center><tr><td align=center>
    <table width="100%" cellspacing="0" cellpadding="0">
    <tr>
        <td align=center><img src="<?=$member_skin_path?>/img/join_title.gif" width="624" height="72"></td>
    </tr>
    </table>
    <? if ($config[cf_use_jumin]) { // 주민등록번호를 사용한다면 ?>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
            <td height=25></td>
        </tr>
        <tr>
            <td bgcolor="#cccccc">
                <table cellspacing=1 cellpadding=0 width=100% border=0>
                <tr bgcolor="#ffffff">
                    <td width="140" height=30>   <b>이름</b></td>
                    <td width="">   <input name=mb_name itemname="이름" required minlength="2" nospace hangul class=ed></td>
                </tr>
                <tr bgcolor="#ffffff">
                    <td height=30>   <b>주민등록번호</b></td>
                    <td>   <input type="password" name='usr_regnum1' class='ed' style='width:70' maxlength="6" itemname="주민번호 앞자리" required="required" / size="20">
         -
         <input type="password" name='usr_regnum2' class='ed' style='width:70' maxlength="7" itemname="주민번호 뒷자리" required="required" />
                                        <p><font style="font-family:돋움; font-size:9pt; color:#66a2c8">  ※ 숫자 13자리 중간에 - 없이 입력하세요.</font></p>
</td>
                </tr>
                </table></td>
        </tr>
    </table>
   
    <? } ?>
    <br>
    <table width="100%" cellpadding="4" cellspacing="0" bgcolor=#EEEEEE>
        <tr>
            <td height=40>  <b>회원가입약관</b></td>
        </tr>
        <tr>
            <td align="center" valign="top"><textarea style="width: 98%" rows=5 readonly class=ed><?=get_text($config[cf_stipulation])?></textarea></td>
        </tr>
        <tr>
            <td height=40>  <input type=checkbox value=1 name=agree id=agree> <label for=agree>회원가입약관을 읽었으며 내용에 동의합니다.</label></td>
        </tr>
    </table>
    <br>
    <table width="100%" cellpadding="4" cellspacing="0" bgcolor=#EEEEEE>
        <tr>
            <td height=40>  <b>개인정보보호정책</b></td>
        </tr>
        <tr>
            <td align="center" valign="top"><textarea style="width: 98%" rows=5 readonly class=ed><?=get_text($config[cf_privacy])?></textarea></td>
        </tr>
        <tr>
            <td height=40>  <input type=checkbox value=1 name=agree2 id=agree2> <label for=agree2>개인정보보호정책을 읽었으며 내용에 동의합니다.</label></td>
        </tr>
    </table>
</td></tr></table>
<br>
<div align=center>
<input type=image width="66" height="20" src="<?=$member_skin_path?>/img/join_ok_btn.gif" border=0>
</div>
</form>

<script language="javascript">
function fregister_submit(f) {
    if (!f.agree.checked) {
        alert("회원가입약관의 내용에 동의해야 회원가입 하실 수 있습니다.");
        f.agree.focus();
        return;
    }
    if (!f.agree2.checked) {
        alert("개인정보보호정책의 내용에 동의해야 회원가입 하실 수 있습니다.");
        f.agree2.focus();
        return;
    }
    f.action = "./register_form.php";
    f.submit();
}
if (typeof(document.fregister.mb_name) != "undefined")
    document.fregister.mb_name.focus();
</script>
<script language='Javascript'>
function check_jumin() {
 var f = document.form;
 var chk =0;
 var yy = f.usr_regnum1.value.substring(0,2);
 var mm = f.usr_regnum1.value.substring(2,4);
 var dd = f.usr_regnum1.value.substring(4,6);
 var sex = f.usr_regnum2.value.substring(0,1);
 var gijun_date = 870310; // 이곳에 미성년자 기준 수정하면 됨 821212는 1987년01월01일 기준
 if (f.usr_name.value == "") {
  alert ('이름을 입력하세요.');
  f.usr_name.focus();
  return false;
 }
 
 if (f.usr_regnum2.value.split(" ").join("") == "") {
  alert ('주민등록번호를 입력하십시오.');
  f.usr_regnum1.focus();
  return false;
 }
 if (f.usr_regnum1.value.length!=6) {
  alert ('주민등록번호 앞자리를 입력하십시오');
  f.usr_regnum1.focus();
  return false;
 }
 if (f.usr_regnum2.value.length != 7 ) {
  alert ('주민등록번호 뒷자리를 입력하십시오.');
  f.usr_regnum2.focus();
  return false;
 }
 if (isNaN(f.usr_regnum1.value) || isNaN(f.usr_regnum2.value)) {
  f.usr_regnum1.value = ""
  f.usr_regnum2.value = ""
  alert('주민등록번호는 숫자만 가능합니다.');
  return false;
 }
 if ((f.usr_regnum1.value.length!=6)||(mm <1||mm>12||dd<1)){
  f.usr_regnum1.value = ""
  alert ('주민등록번호 앞자리가 잘못되었습니다.');
  f.usr_regnum1.focus();
  return false;
 }
 if ((sex != 1 && sex !=2 )||(f.usr_regnum2.value.length != 7 )){
  f.usr_regnum2.value = ""
  alert ('주민등록번호 뒷자리가 잘못되었습니다.');
  f.usr_regnum2.focus();
  return false;
 }
 for (var i = 0; i <=5 ; i++){
  chk = chk + ((i%8+2) * parseInt(f.usr_regnum1.value.substring(i,i+1)))
 }
 for (var i = 6; i <=11 ; i++){
  chk = chk + ((i%8+2) * parseInt(f.usr_regnum2.value.substring(i-6,i-5)))
 }
 chk = 11 - (chk %11)
 chk = chk % 10
 if (chk != f.usr_regnum2.value.substring(6,7)){
  f.usr_regnum1.value = ""
  f.usr_regnum2.value = ""
  alert ('맞지 않는 주민등록번호입니다.');
  f.usr_regnum1.focus();
  return false;
 }
 if (f.usr_regnum1.value > gijun_date)  {
  alert ('미성년자는 들어올 수 없습니다.');
  location.href='http://www.naver.com';
  f.usr_regnum1.focus();
  return false;
 }
return true;
}

document.flogin.mb_id.focus();
function flogin_submit(f)
{
    f.action = "/bbs/login_check.php";
    f.submit();
}
</script>
 
잘못된 부분과 다른 파일을 추가로 수정해야 할 부분이 있는 듯 한데요...
 
고수 분들의 고견을 부탁 드립니다.
 
감사합니다.

댓글 전체

필드를 별도로 추가 하시지 말고 mb_jumin을
$jumin = explode("||",$write[mb_jumin]);
으로 치환해서 사용하시면 편하실 겁니다.
jumin[1],jumin[2] 이렇게 적용되겠습니다.
필드를 따로만들고 해당 파일 및 주민등록 번호 체크 로직을 수정 해야하는 부분이

초보인 저에게 몹시 복잡 할 것 같습니다.

말씀해주신 방법을 활용하는 것이 현명할 것 같습니다.

스스로 하나하나 찾아 가야하는데 실력이 그렇지가 않네요...

도움 감사합니다.^^
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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