가입되지도 않은 주민번호가 중복으로 뜹니다. > 그누4 질문답변

그누4 질문답변

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

가입되지도 않은 주민번호가 중복으로 뜹니다. 정보

가입되지도 않은 주민번호가 중복으로 뜹니다.

본문

수정은 주석 풀어놓은 거 밖에 없거든요ㅠㅠ
그런데 어떤 주민번호를 넣어도 중복이라고 떠서요. 답변 좀 부탁드릴게요.




skin/member/basic/register.skin

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>

<form name="fregister" method="POST" onsubmit="return fregister_submit(this);" 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>&nbsp;&nbsp;&nbsp;<b>이름</b></td>
                    <td width="">&nbsp;&nbsp;&nbsp;<input name=mb_name itemname="이름" required minlength="2" nospace hangul class=ed></td>
                </tr>
                <tr bgcolor="#ffffff">
                    <td height=30>&nbsp;&nbsp;&nbsp;<b>주민등록번호</b></td>
                    <td>&nbsp;&nbsp;&nbsp;<input name=mb_jumin itemname="주민등록번호" required jumin minlength="13" maxlength=13 class=ed><font style="font-family:돋움; font-size:9pt; color:#66a2c8">&nbsp;&nbsp;※ 숫자 13자리 중간에 - 없이 입력하세요.</font></td>
                </tr>
                </table></td>
        </tr>
    </table>
    <? } ?>

    <br>
    <table width="100%" cellpadding="4" cellspacing="0" bgcolor=#EEEEEE>
        <tr>
            <td height=40>&nbsp; <b>회원가입약관</b></td>
        </tr>
        <tr>
            <td align="center" valign="top"><textarea style="width: 98%" rows=10 readonly class=ed><?=get_text($config[cf_stipulation])?></textarea></td>
        </tr>
        <tr>
            <td height=40>
                &nbsp; <input type=radio value=1 name=agree id=agree11>&nbsp;<label for=agree11>동의합니다.</label>
                &nbsp; <input type=radio value=0 name=agree id=agree10>&nbsp;<label for=agree10>동의하지 않습니다.</label>
            </td>
        </tr>
    </table>

    <br>
    <table width="100%" cellpadding="4" cellspacing="0" bgcolor=#EEEEEE>
        <tr>
            <td height=40>&nbsp; <b>개인정보취급방침</b></td>
        </tr>
        <tr>
            <td align="center" valign="top"><textarea style="width: 98%" rows=10 readonly class=ed><?=get_text($config[cf_privacy])?></textarea></td>
        </tr>
        <tr>
            <td height=40>
                &nbsp; <input type=radio value=1 name=agree2 id=agree21>&nbsp;<label for=agree21>동의합니다.</label>
                &nbsp; <input type=radio value=0 name=agree2 id=agree20>&nbsp;<label for=agree20>동의하지 않습니다.</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 type="text/javascript">
function fregister_submit(f)
{
    var agree1 = document.getElementsByName("agree");
    if (!agree1[0].checked) {
        alert("회원가입약관의 내용에 동의하셔야 회원가입 하실 수 있습니다.");
        agree1[0].focus();
        return false;
    }

    var agree2 = document.getElementsByName("agree2");
    if (!agree2[0].checked) {
        alert("개인정보취급방침의 내용에 동의하셔야 회원가입 하실 수 있습니다.");
        agree2[0].focus();
        return false;
    }

    f.action = "./register_form.php";
    return true;
}

if (typeof(document.fregister.mb_name) != "undefined")
    document.fregister.mb_name.focus();
</script>




bbs/register_form.php


<?
include_once("./_common.php");

// 불법접근을 막도록 토큰생성
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);

if ($w == "") {
    // 회원 로그인을 한 경우 회원가입 할 수 없다
    // 경고창이 뜨는것을 막기위해 아래의 코드로 대체
    // alert("이미 로그인중이므로 회원 가입 하실 수 없습니다.", "./");
    if ($member[mb_id])
        goto_url($g4[path]);

    // 리퍼러 체크
    referer_check();

    if (!$_POST[agree])
        alert("회원가입약관의 내용에 동의하셔야 회원가입 하실 수 있습니다.", "./register.php");

    if (!$_POST[agree2])
        alert("개인정보취급방침의 내용에 동의하셔야 회원가입 하실 수 있습니다.", "./register.php");

    // 주민등록번호를 사용한다면 중복검사를 합니다.
    /*
    if ($config[cf_use_jumin]) {
        $jumin = sql_password($mb_jumin);
        $row = sql_fetch(" select mb_name from $g4[member_table] where mb_jumin = '$jumin' ");
        if ($row[mb_name]) {
            if ($row[mb_name] == $mb_name)
                alert("이미 가입되어 있습니다.");
            else
                alert("다른 이름으로 같은 주민등록번호가 이미 가입되어 있습니다.\\n\\n관리자에게 문의해 주십시오.");
        }

        // 주민등록번호의 7번째 한자리 숫자
        $y = substr($mb_jumin, 6, 1);

        // 성별은 F, M 으로 나눈다.
        // 주민등록번호의 7번째 자리가 홀수이면 남자(Male), 짝수이면 여자(Female)
        $sex = $y % 2 == 0 ? "F" : "M";

        // 생일은 8자리로 만든다 (나중에 검색을 편하게 하기 위함)
        // 주민등록번호 앞자리를 그냥 생일로 사용함 ㅠㅠ
        // 주민등록번호 7번째 자리를 따져서...
        $birth = substr($mb_jumin, 0, 6);
        if ($y == 9 || $y == 0) // 1800년대생 (계시려나?)
            $birth = "18" . $birth;
        else if ($y == 1 || $y == 2) // 1900년대생
            $birth = "19" . $birth;
        else if ($y == 3 || $y == 4) // 2000년대생
            $birth = "20" . $birth;
        else // 오류
            $birth = "xx" . $birth;
    }
    */

    $member[mb_birth] = $birth;
    $member[mb_sex] = $sex;
    $member[mb_name] = $mb_name;

    $g4[title] = "회원 가입";
}
else if ($w == "u")
{
    if ($is_admin)
        alert("관리자의 회원정보는 관리자 화면에서 수정해 주십시오.", $g4[path]);

    if (!$member[mb_id])
        alert("로그인 후 이용하여 주십시오.", $g4[path]);

    if ($member[mb_id] != $mb_id)
        alert("로그인된 회원과 넘어온 정보가 서로 다릅니다.");

    /*
    if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]))
        alert("패스워드가 틀립니다.");

    // 수정 후 다시 이 폼으로 돌아오기 위해 임시로 저장해 놓음
    set_session("ss_tmp_password", $_POST[mb_password]);
    */

    if ($_POST['mb_password']) {
        // 수정된 정보를 업데이트후 되돌아 온것이라면 패스워드가 암호화 된채로 넘어온것임
        if ($_POST['is_update'])
            $tmp_password = $_POST['mb_password'];
        else
            $tmp_password = sql_password($_POST['mb_password']);

        if ($member['mb_password'] != $tmp_password)
            alert("패스워드가 틀립니다.");
    }

    $g4[title] = "회원 정보 수정";

    $member[mb_email]      = get_text($member[mb_email]);
    $member[mb_homepage]    = get_text($member[mb_homepage]);
    $member[mb_password_q]  = get_text($member[mb_password_q]);
    $member[mb_password_a]  = get_text($member[mb_password_a]);
    $member[mb_birth]      = get_text($member[mb_birth]);
    $member[mb_tel]        = get_text($member[mb_tel]);
    $member[mb_hp]          = get_text($member[mb_hp]);
    $member[mb_addr1]      = get_text($member[mb_addr1]);
    $member[mb_addr2]      = get_text($member[mb_addr2]);
    $member[mb_signature]  = get_text($member[mb_signature]);
    $member[mb_recommend]  = get_text($member[mb_recommend]);
    $member[mb_profile]    = get_text($member[mb_profile]);
    $member[mb_1]          = get_text($member[mb_1]);
    $member[mb_2]          = get_text($member[mb_2]);
    $member[mb_3]          = get_text($member[mb_3]);
    $member[mb_4]          = get_text($member[mb_4]);
    $member[mb_5]          = get_text($member[mb_5]);
    $member[mb_6]          = get_text($member[mb_6]);
    $member[mb_7]          = get_text($member[mb_7]);
    $member[mb_8]          = get_text($member[mb_8]);
    $member[mb_9]          = get_text($member[mb_9]);
    $member[mb_10]          = get_text($member[mb_10]);
} else
    alert("w 값이 제대로 넘어오지 않았습니다.");

// 회원아이콘 경로
$mb_icon = "$g4[path]/data/member/".substr($member[mb_id],0,2)."/$member[mb_id].gif";
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";

include_once("$g4[path]/_head.php");
include_once("./norobot.inc.php"); // 자동등록방지
include_once("$member_skin_path/register_form.skin.php");
include_once("$g4[path]/_tail.php");

?>
  • 복사

댓글 전체

echo 문으로
select mb_name from $g4[member_table] where mb_jumin = '$jumin'
해당 부분을 찍어보시고 디비에 저장된값이 있는지 확인해보셔야 할꺼 같습니다.
질문의 요지는 이해 합니다.
print_r($jumin) die; 를 하던지

var_dump($jumin) die; 를 하던지 하면 됩니다

But. 법이 바뀌어 주민등록 번호를 수집하면 안됩니다.

폐기 해야 합니다.
그런데 어떤 주민번호를 넣어도<--- 이 말은 주민번호가 넘어가지 않아서 생기는 것 같네요
등록된 회원이 주민번호가 없는 것이 있고..
그러면 비어있는 주민번호가 서로 같은 주민번호가 되는 것이죠
© SIRSOFT
현재 페이지 제일 처음으로