테스트 사이트 - 개발 중인 베타 버전입니다

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

· 13년 전 · 1347 · 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");

?>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

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

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

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

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

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440