주민번호 인증문제ㅜㅜ > 그누3질답

그누3질답

주민번호 인증문제ㅜㅜ 정보

주민번호 인증문제ㅜㅜ

본문

회원가입시 디비에

주민번호가 있는지 검사를 위해 두개의 파일을 연동처리 하는 소스인데요..

확인되었습니다. 회원가입폼 본 화면으로 이동하겠습니다!!라고 경고 뜨더니

확인 누르니깐

입력하신 주민등록번호로 이미 가입정보가 있습니다
아이디,비밀번호 찾기를 통해 조회해 보세요

라고 뜨는데 어떤 주민번호를 넣어도 저렇게 뜹니다.

도데체 뭐가 잘못된 건지 모르겠습니다. ㅠㅠ

초보인지라 너무 어렵네요 인증이 ㅠㅠ

도와주세요.


아래는 두 파일의 내용입니다.

member_check.skin.php

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "STYLE");
$de_member_provision = $default[de_member_provision];
?>
<script language="javascript">

      //폼테크
        function submit_f(form) {
        if(!jumin_num.agree.checked) {alert('회원가입약관에 동의하셔야 가입하실 수 있습니다.');return false;}

      //주민등록번호 앞 자리
        if (jumin_num.jumin1.value == ""){
        alert("주민등록번호 앞 자리는 6자로 입력하십시오.");
        jumin_num.jumin1.focus();

        return false;
        }

      //주민등록번호 뒤 자리
      if (jumin_num.jumin2.value == ""){
        alert("주민등록번호 뒤 자리는 7자로 입력하십시오.");
        jumin_num.jumin2.focus();

        return false;
        }

      //폼체크
        var chk =0;
        var frm = document.jumin_num;
        var sno1 = frm.jumin1.value;
        var sno2 = frm.jumin2.value;
        var serialValue = sno1 + "-" + sno2;

        //주민등록번호의 형태와 7번째 자리(성별) 유효성 검사
        var chkValue        = /^\d{6}-[1234]\d{6}$/;
        if (!chkValue.test(serialValue)) {
                window.alert("주민등록 번호뒤자리 [7자리]를 확인 하세요!!");
        frm.jumin2.focus();
                return false;
        }


        //날짜 유효성 검사
        birthYear        = (serialValue.charAt(7) >= "2") ? "19" : "20";
        birthYear        += serialValue.substr(0, 2);
        birthMonth        = serialValue.substr(2, 2) - 1;
        birthDate        = serialValue.substr(4, 2);
        var birth        = new Date(birthYear, birthMonth, birthDate);
        if ((birth.getYear() % 100 != serialValue.substr(0, 2)) ||
            (birth.getMonth() != birthMonth) ||
            (birth.getDate() != birthDate)) {
            window.alert("주민등록 번호앞자리 [6자리]를 확인 하세요!");
            frm.jumin1.focus();
            return false;
        }

        //코드 유효성 검사
        var buf = new Array(13);
        for (var i = 0; i < 6; i++) {
                buf[i] = parseInt(serialValue.charAt(i));
        }
        for (var i = 6; i < 13; i++) {
                buf[i] = parseInt(serialValue.charAt(i + 1));
        }
        var multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
        for (var i = 0, sum = 0; i < 12; i++) {
                sum += (buf[i] *= multipliers[i]);
        }
        if ((11 - (sum % 11)) % 10 != buf[12]) {
                window.alert("주민등록 번호가 맞지않습니다!다시[확인]하세요!");
                return false;
        }

    else {
          alert("확인되었습니다. 회원가입폼 본 화면으로 이동하겠습니다!!");
                      window.location.href = URL;
    }
        } 
      //주민번호 숫자만가능하게
      function check_key_number(Tfocus, keyCode)
      {
        if ((keyCode > 47) && (keyCode < 58) || keyCode == 13) {
            return keyCode;
        } else {
            alert("[알림] 숫자만 가능합니다.");
            Tfocus.focus();
            return false;
        }
        }
      //주민번호7번째글자동으로이동
      function next_input(Tfocus)
        {
        if(Tfocus.value.length == 6) {
            document.jumin_num.jumin2.focus();
        }
        }

      //한글만입력가능한폼
      function CharChk_H() {

      if ((event.keyCode >= 32) && (event.keyCode <= 126)) {
      alert("한글만 입력이 가능합니다."+"["+event.keyCode+"]");
        event.returnValue=false;
    }
    }

</script>

<style type="text/css">
<!--
.style1 {
    color: #FF0000;
    font-weight: bold;
}
.style2 {color: #FF0000}
-->
</style>

<table width="24%" border="0" cellspacing="5" cellpadding="5" height="100%" align="center">
  <tr>
    <td valign=middle>
      <table width="0%" border="5" cellspacing="5" cellpadding="3" bordercolor="#ACD1D1">
        <tr>
          <td>
            <div align="center"> </div>
            <table width="21%" border="0" cellspacing="0" cellpadding="3" bordercolor="#003366">
              <tr>
                <td>
                  <div align="right"><a href= "http://www.xxx.xxx">홈으로</a> </div>
                </td>
              </tr>
              <tr>
                <td height="23">
                  <table border="3" align="center" cellpadding="0" cellspacing="0" bordercolor="#F2F2F2">
                    <tr>
                      <td width=100% bgcolor=#FFFFFF> <iframe name='jumin_iframe' src='' width=0 height=0 frameborder=0 style='display:none;'></iframe>
                        <form name='jumin_num' action='./?doc=bbs/member_check.php' method='post' target='jumin_iframe'  onSubmit='return submit_f(this)'>
                          <input type=HIDDEN name='action' value='jumin_check'>
                          <input type=HIDDEN name='mb_name' value="<?=$_POST[mb_name]?>">
                          <table width="100%"  border="0" align="center" cellpadding="0" cellspacing="0">
                            <tr>
                              <td align="center"><strong>a 회원가입</strong></td>
                            </tr>
                            <tr>
                              <td>
                                <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
                                  <tr>
                                    <td>
                                      <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
                                        <tr>
                                          <td align="center" colspan="2">
                                            <textarea class='ta' readonly cols="85" rows=15 style="color:white;  background-color:rgb(85,139,199); border-color:silver; border-style:solid;" name="textarea"><?=$de_member_provision?></textarea>
                                          </td>
                                        </tr>
                                        <tr align="center">
                                          <td height="20" width="80%">이용약관 내용에
                                            동의하시면 ‘동의함’을 선택해 주십시오. </td>
                                          <td height="20" width="20%">
                                            <table width="170" border="0" cellspacing="0" cellpadding="0">
                                              <tr>
                                                <td width="10" align="center">
                                                  <input type='checkbox' name='agree' value='1'>
                                                </td>
                                                <td width="50" valign="top" style="padding-top:3px">동의함</td>
                                              </tr>
                                            </table>
                                          </td>
                                        </tr>
                                      </table>
                                    </td>
                                  </tr>
                                  <tr>
                                    <td height="154">
                                      <table width="532" border="0" align="center" cellpadding="0" cellspacing="0">
                                        <tr>
                                          <td width="532" height="44"><font color="#666666" size="2" face="돋움">*
                                            반드시 본인의 이름(실명)과 주민등록번호를 입력해 주세요. </font></td>
                                        </tr>
                                        <tr>
                                          <td>
                                            <table width="100%" border="3" align="center" cellpadding="0" cellspacing="0" bordercolor="#F2F2F2">
                                              <tr>
                                                <td width="100%">
                                                  <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                                    <tr>
                                                      <td width="20%" align="right"><b>이름</b></td>
                                                      <td width="60%" align="center">
                                                        <input type='text' class="is" name='mb_name' itemname='실명' maxlength=13 minlength=3 size=34 style='border:1 solid dfdfdf; ime-mode:active;' onKeyPress="javascript:CharChk_H()" tabindex="1">
                                                      </td>
                                                      <td rowspan="2">
                                                        <table border="0" cellpadding="0" cellspacing="0">
                                                          <tr>
                                                            <td>
                                                              <input type=image src='./bbs/skin/member/basic/join_ok_btn.gif' border=0 align=absmiddle tabindex="4" width="66" height="20" name="image">
                                                              <input type=image src='./bbs/skin/member/basic/join_cancel_btn.gif' onClick="javascript:reset();" border=0 align=absmiddle tabindex="5" width="66" height="20" name="image">
                                                            </td>
                                                          </tr>
                                                        </table>
                                                      </td>
                                                    </tr>
                                                    <tr>
                                                      <td align="right"><b>주민번호</b></td>
                                                      <td align="center">
                                                        <input type="password" size=15 style='border:1 solid dfdfdf; ime-mode:active;'  class="is" name="jumin1" maxlength='6' onKeyPress="event.returnValue=check_key_number(this, event.keyCode);" onKeyUp="next_input(this)" tabindex="2">
                                                        -
                                                        <input type="password" size=15 style='border:1 solid dfdfdf; ime-mode:active;'  class="is" name="jumin2" maxlength='7' onKeyPress="event.returnValue=check_key_number(this, event.keyCode);" onKeyUp="next_input(this)" tabindex="3">
                                                      </td>
                                                    </tr>
                                                  </table>
                                                </td>
                                              </tr>
                                            </table>
                                          </td>
                                        </tr>
                                      </table>
                                    </td>
                                  </tr>
                                  <tr>
                                    <td align="center" valign="middle">
                                      <table width="532" border="0" align="center" cellpadding="0" cellspacing="0">
                                        <tr>
                                          <td width="532" height="97">
                                            <table width="532" border="0" align="center" cellpadding="0" cellspacing="0">
                                              <tr>
                                                <td width="100%">
                                                  <p><span class="style1"><font size="2" face="돋움">잠깐!
                                                    본인의 실명과 주민등록번호를 입력했나요?</font></span><br>
                                                    <font color="#666666">타인의
                                                    주민등록번호를 도용하여 가입할 경우, 다른 이용자
                                                    분들이 어려움을 겪을 뿐 아니라도용이 밝혀지면
                                                    모든 가입정보(아이디,포인트등)가 삭제처리됩니다.
                                                    주민등록번호는 개인의 중요한 정보이니, 반드시
                                                    본인의 주민등록번호로 가입해 주시기 바랍니다.</font>
                                                </td>
                                              </tr>
                                              <tr>
                                                <td width="100%"> <font color="teal" size="2" face="돋움">MD5(암호)화
                                                  처리되어 최고관리자도 직접적으로 볼 수 없으므로 안심하셔도
                                                  됩니다.</font> </td>
                                              </tr>
                                            </table>
                                          </td>
                                        </tr>
                                        <tr>
                                          <td>
                                            <p class="style2"><font size="2" face="돋움">타인의
                                              주민등록번호를 사용하거나 허위의 주민등록번호를 사용할 경우
                                              주민등록법에 따라<br>
                                              </font><font size="2" face="돋움">3년이하의
                                              징역 또는 1천만원 이하의 벌금에 처해질 수 있습니다</font></p>
                                          </td>
                                        </tr>
                                      </table>
                                    </td>
                                  </tr>
                                </table>
                              </td>
                            </tr>
                          </table>
                        </form>
                      </td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
            <div align="center"></div>
          </td>
        </tr>
      </table>
      <div align="center"><br>
        Copyright ⓒ xxx.xxx. All rights reserved.
        <script language='Javascript'>
    document.onload = document.mblogin.mb_id.focus();
</script>
      </div>
    </td>
  </tr>
</table>


member_check.php

<?
$SESSION_CACHE_LIMITER = "nocache";
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("_DOCTYPE_", "STYLE");

$html_title = "회원가입";

$de_member_provision = $default[de_member_provision]; // 회원가입약관
if ($sql_query && $query != "./?doc=bbs/member_check.php") getLocationHerf("./","회원님께서는 이미 가입하신 상태입니다.",$history);
if ($action == "jumin_check")
{
$join_member = "SELECT count(*) FROM gb_member WHERE mb_jumin = PASSWORD('$mb_jumin') ";
$Jumin_Data = sql_fetch($join_member);

    if ($Jumin_Data[0]) {
        ECHO "<script language=javascript>";
        ECHO "alert('\\n입력하신 주민등록번호로 이미 가입정보가 있습니다.        \\n\\n아이디,비밀번호 찾기를 통해 조회해 보세요.\\n');";
        ECHO "window.open('./?doc=bbs/idpassforget.php&id=$join[mb_id]', 'passsearch','width=450,height=300,statusbar=no,scrollbars=no,toolbar=no');";
        ECHO "</script>";
        exit;
    }
    else {
        ECHO "<FORM NAME='agree_go' ACTION='./?doc=bbs/mbform.php' METHOD=POST TARGET='_parent'>";
        ECHO "<INPUT TYPE=HIDDEN NAME='query' VALUE='./?doc=bbs/mbform.php'>";
        ECHO "<INPUT TYPE=HIDDEN NAME='mb_name' required realname VALUE='$mb_name'>";
        ECHO "<INPUT TYPE=HIDDEN NAME='mb_jumin' required jumin VALUE='$mb_jumin'>";
        ECHO "</FORM>";
        ECHO "<script language=javascript>window.load = document.agree_go.submit();</script>";
        exit;
    }
}

$sql_query = (!$query)    ? "./?doc=bbs/member_check.php" : $query;

if ($sql_query == "./?doc=bbs/member_check.php") {
    $sql_query    = ($g_Regis_Prt_0) ? $sql_query : "./?doc=bbs/mbform.php";
}

header_cache();


include "$member_skin/member_check.skin.php";
?>
  • 복사

댓글 전체

DB테이블을 한번 살펴보시는것도 좋을거 같습니다. 테이블에서 오류가 몇번 났던적이 있는거 같습니다. DB를 옮길때 그러한 현상을 본거 같거든요...한번 살펴보는것도 좋을듯 하네요..
member_check.php 상단에

$mb_jumin = $jumin1.$jumin2;

를 넣어야 할 것 같습니다.

문제는

$join_member = "SELECT count(*) FROM gb_member WHERE mb_jumin = PASSWORD('$mb_jumin') ";

이부분에 $mb_jumin 값이 없어서 그런것 같습니다..
그렇다면 가입폼을 저장하는 과정에서 주민등록번호에 오류가 있다고 봅니다.

디비 확인이 가능하면 gb_member 테이블에 mb_jumin 값이 저장이 되어 있나 보세요.

아마 이 값이 비어 있을 것 같습니다.
오래된 글이지만 검색하시는 다른 분들을 위해 댓글 답니다.
혹시
var serialValue = sno1 + "-" + sno2;

"-" 때문에 문제가 생기지 않을까 합니다.
serialValue 에 "-" 이 들어가면서 자리수도 14자리가 되고...
© SIRSOFT
현재 페이지 제일 처음으로