[해결] 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
그나마 이글과 내용이 비슷하지만, 이글의 방법으로해결되지 못했습니다..
<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>
왜 멍청하게 굳이 그누보드 내장 자바스크립트만을 고집했을까요..;;
이렇게 딱 맞춰져 나온 스크립트들이 많은데 말이죠..
아래 스크립트를 넣고 나서 모든 문제가 해결됐습니다!
<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>