핸드폰 중복인증 아이디 중복생성 방지가 안됩니다.
본문
register_form.skin.php
입니다. 아래 소스 적용중인데 핸드폰 인증을 해도 동일한 핸드폰으로 아이디를 또 생성할수가 있습니다.
핸드폰 인증 중복 적용이 안된거 같은데 어느 부분이 잘못된건지 알수 있을까요?
--------------------------
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
?>
<!-- 회원정보 입력/수정 시작 { -->
<?php
$CP_CD = $_REQUEST["CP_CD"]; // 회원사코드
$TX_SEQ_NO = $_REQUEST["TX_SEQ_NO"]; // 거래번호
$RSLT_CD = $_REQUEST["RSLT_CD"]; // 결과코드
$RSLT_MSG = $_REQUEST["RSLT_MSG"]; // 결과메세지
$RSLT_NAME = $_REQUEST["RSLT_NAME"]; // 성명
$RSLT_BIRTHDAY = $_REQUEST["RSLT_BIRTHDAY"]; // 생년월일
$RSLT_SEX_CD = $_REQUEST["RSLT_SEX_CD"]; // 성별
$RSLT_NTV_FRNR_CD = $_REQUEST["RSLT_NTV_FRNR_CD"];// 내외국인구분
$DI = $_REQUEST["DI"]; // DI
$CI = $_REQUEST["CI"]; // CI
$CI_UPDATE = $_REQUEST["CI_UPDATE"]; // CI 업데이트
$TEL_COM_CD = $_REQUEST["TEL_COM_CD"]; // 통신사코드
$TEL_NO = $_REQUEST["TEL_NO"]; // 휴대폰번호
$RETURN_MSG = $_REQUEST["RETURN_MSG"]; // 리턴메시지
?>
<?php
// 만19세 미만 회원가입 불가 [S]
$birth_day_data1 = substr_replace($RSLT_BIRTHDAY,'-',4,0);
$birth_day_data2 = substr_replace($birth_day_data1,'-',7,0);
$birth_time = strtotime($birth_day_data2);
$now = date('Ymd');
$birthday = date('Ymd' , $birth_time);
$age = floor(($now - $birthday) / 10000);
if ($age < 19) {
?>
<script>
alert('만 19세 미만은 가입하실 수 없습니다.');
document.location.href='/bbs/login';
</script>
<?php } ?>
<div class="register">
<script src="<?php echo G5_JS_URL ?>/jquery.register_form.js"></script>
<?php if($config['cf_cert_use'] && ($config['cf_cert_ipin'] || $config['cf_cert_hp'])) { ?>
<script src="<?php echo G5_JS_URL ?>/certify.js?v=<?php echo G5_JS_VER; ?>"></script>
<?php } ?>
<form id="fregisterform" name="fregisterform" action="<?php echo $register_action_url ?>" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="url" value="<?php echo $urlencode ?>">
<input type="hidden" name="agree" value="<?php echo $agree ?>">
<input type="hidden" name="agree2" value="<?php echo $agree2 ?>">
<input type="hidden" name="cert_type" value="<?php echo $member['mb_certify']; ?>">
<input type="hidden" name="cert_no" value="">
<?php if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php echo $member['mb_sex'] ?>"><?php } ?>
<?php if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
<input type="hidden" name="mb_nick_default" value="<?php echo get_text($member['mb_nick']) ?>">
<input type="hidden" name="mb_nick" value="<?php echo get_text($member['mb_nick']) ?>">
<?php } ?>
<input type="hidden" name="mb_name" value="-">
<input type="hidden" name="mb_nick" value="-">
<input type="hidden" name="mb_email" value="-">
<section id="sub">
<article class="visual">
<ul>
<h1> <li style="font-size:14px;"> 0000</li>
<li style="font-size:14px;">0000</li></h1>
</ul>
<img src="<?php echo srcImage(G5_THEME_URL.'/img/sub/group_listing_contact_page_banner_02.webp')?>" class="pc" alt="00000">
<img src="<?php echo srcImage(G5_THEME_URL.'/img/sub/group_listing_contact_page_banner_portrait_02.webp')?>" class="mobile" alt="0000">
</article>
<article class="reserve_box">
<div class="div">
<br>
<p>000</p>
<h1>000</h1>
<span>000<br>* 만18세 이하는 회원가입이 제한됩니다.</span>
</div>
<div class="join">
<strong>* 필수항목</strong>
<p class="tit">로그인 정보</p>
<div class="form">
<ul>
<li>
<p><span>*</span>전화번호</p>
<div class="phone">
<input type="text" name="mb_id" value="<?php echo $member['mb_id'] ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input full_input <?php echo $required ?> <?php echo $readonly ?>" minlength="11" maxlength="11" placeholder="입력예시 : *** 개인정보보호를 위한 휴대폰번호 노출방지 ***">
<div class="chk">
<input type="checkbox" name="mb_7" id="sns" value="Y">
<label for="sns">
<div class="box">
<div></div>
</div>
SMS수신 동의 - 수신동의를 하셔야 예약 상세 상황을 문자로 받아보실 수 있습니다.
</label>
</div>
</div>
</li>
<li>
<p><span>*</span>비밀번호</p>
<div class="password">
<b>비밀번호는 공백 없이 최소 8자리 이상이어야 합니다.</b>
<input type="password" name="mb_password" id="reg_mb_password" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="8" maxlength="20" placeholder="최소 8자">
</div>
</li>
</ul>
</div>
<p class="tit">고객 개인 정보</p>
<div class="form">
<ul>
<li class="num2">
<p><span>*</span>이름</p>
<div class="name">
<input type="text" name="mb_1" placeholder="이름" value="" required>
</div>
</li>
<li class="num2">
<p><span>*</span>성</p>
<div class="first_name">
<input type="text" name="mb_2" placeholder="성" value="" required>
</div>
</li>
<li class="clear">
<p><span>*</span>성별</p>
<div class="gender">
<select name="mb_3">
<option value="">선택하십시오.</option>
<option value="남">남</option>
<option value="여">여</option>
</select>
</div>
</li>
<li>
<p><span>*</span>생년월일</p>
<div class="birth">
<input type="text" name="mb_4" placeholder="입력예시 : 891201" minlength="6" maxlength="6" value="" required>
</div>
</li>
<li>
<p><span>*</span>이메일</p>
<div class="email">
<input type="text" name="mb_5" value="" required maxlength="30">
<span>@</span>
<input type="text" name="mb_6" value="" required maxlength="30">
</div>
</li>
</ul>
</div>
<div class="check">
<ul>
<li>
<input type="checkbox" name="privacy" id="privacy" required>
<label for="privacy">
<div class="box">
<div></div>
</div>
* 000 <span>이용약관 및 개인 정보 보호 방침을 읽었으며 동의합니다.</span>
</label>
</li>
<li>
<input type="checkbox" name="mb_8" id="marketing" value="Y">
<label for="marketing">
<div class="box">
<div></div>
</div>
0000 대한 마케팅 정보 수신에 동의합니다.
</label>
</li>
</ul>
</div>
<div class="btn">
<a href="<?php echo G5_URL ?>">취소</a>
<button type="submit" onclick="btnCheck();" id="btn_submit" class="btn_submit" accesskey="s">신규가입 하기</button>
</div>
</div>
</article>
</section>
</form>
</div>
<script>
$(function() {
$("#reg_zip_find").css("display", "inline-block");
<?php if($config['cf_cert_use'] && $config['cf_cert_ipin']) { ?>
// 아이핀인증
$("#win_ipin_cert").click(function() {
if(!cert_confirm())
return false;
var url = "<?php echo G5_OKNAME_URL; ?>/ipin1.php";
certify_win_open('kcb-ipin', url);
return;
});
<?php } ?>
<?php if($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
// 휴대폰인증
$("#win_hp_cert").click(function() {
if(!cert_confirm())
return false;
<?php
switch($config['cf_cert_hp']) {
case 'kcb':
$cert_url = G5_OKNAME_URL.'/hpcert1.php';
$cert_type = 'kcb-hp';
break;
case 'kcp':
$cert_url = G5_KCPCERT_URL.'/kcpcert_form.php';
$cert_type = 'kcp-hp';
break;
case 'lg':
$cert_url = G5_LGXPAY_URL.'/AuthOnlyReq.php';
$cert_type = 'lg-hp';
break;
default:
echo 'alert("기본환경설정에서 휴대폰 본인확인 설정을 해주십시오");';
echo 'return false;';
break;
}
?>
certify_win_open("<?php echo $cert_type; ?>", "<?php echo $cert_url; ?>");
return;
});
<?php } ?>
});
// submit 최종 폼체크
function fregisterform_submit(f)
{
// 회원아이디 검사
if (f.w.value == "") {
var msg = reg_mb_id_check();
if (msg) {
alert(msg);
f.mb_id.select();
return false;
}
}
if (f.w.value == "") {
if (f.mb_password.value.length < 8) {
alert("비밀번호를 3글자 이상 입력하십시오.");
f.mb_password.focus();
return false;
}
}
if (f.mb_password.value.length > 0) {
if (f.mb_password_re.value.length < 8) {
alert("비밀번호를 3글자 이상 입력하십시오.");
f.mb_password_re.focus();
return false;
}
}
document.getElementById("btn_submit").disabled = "disabled";
return true;
}
jQuery(function($){
//tooltip
$(document).on("click", ".tooltip_icon", function(e){
$(this).next(".tooltip").fadeIn(400).css("display","inline-block");
}).on("mouseout", ".tooltip_icon", function(e){
$(this).next(".tooltip").fadeOut();
});
});
function btnCheck() {
if ($('input[name=mb_id]').val().trim() == '') {
alert('전화번호를 입력해 주세요');
$('input[name=mb_id]').focus();
var offset = $("input[name=mb_id]").offset();
$("html, body").animate({scrollTop: offset.top},10);
return false;
}
if ($('input[name=mb_password]').val().trim() == '') {
alert('비밀번호를 입력해 주세요');
$('input[name=mb_password]').focus();
var offset = $("input[name=mb_password]").offset();
$("html, body").animate({scrollTop: offset.top},10);
return false;
}
if ($('input[name=mb_1]').val().trim() == '') {
alert('이름을 입력해 주세요');
$('input[name=mb_1]').focus();
var offset = $("input[name=mb_1]").offset();
$("html, body").animate({scrollTop: offset.top},10);
return false;
}
if ($('input[name=mb_2]').val().trim() == '') {
alert('성을 입력해 주세요');
$('input[name=mb_2]').focus();
var offset = $("input[name=mb_2]").offset();
$("html, body").animate({scrollTop: offset.top},10);
return false;
}
var gender = document.fregisterform.mb_3.value;
if (gender == "") {
$('input[name=mb_3]').focus();
alert('성별을 선택해 주세요');
var offset = $("input[name=mb_3]").offset();
$("html, body").animate({scrollTop: offset.top},10);
return false;
}
if ($('input[name=mb_4]').val().trim() == '') {
alert('생년월일을 입력해 주세요');
$('input[name=mb_4]').focus();
var offset = $("input[name=mb_4]").offset();
$("html, body").animate({scrollTop: offset.top},10);
return false;
}
if ($('input[name=mb_5]').val().trim() == '') {
alert('이메일을 입력해 주세요');
$('input[name=mb_5]').focus();
var offset = $("input[name=mb_5]").offset();
$("html, body").animate({scrollTop: offset.top},10);
return false;
}
if ($('input[name=mb_6]').val().trim() == '') {
alert('이메일을 입력해 주세요');
$('input[name=mb_6]').focus();
var offset = $("input[name=mb_6]").offset();
$("html, body").animate({scrollTop: offset.top},10);
return false;
}
if ($("input[name='privacy']:checked").length < 1) {
alert('개인정보 처리방침에 동의해주세요');
return;
}
document.getElementById('fregisterform').submit();
}
</script>
<!-- } 회원정보 입력/수정 끝 -->
답변 2
대충이런식으로 해보시죠
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
?>
<!-- 회원정보 입력/수정 시작 { -->
<?php
$CP_CD = $_REQUEST["CP_CD"]; // 회원사코드
$TX_SEQ_NO = $_REQUEST["TX_SEQ_NO"]; // 거래번호
$RSLT_CD = $_REQUEST["RSLT_CD"]; // 결과코드
$RSLT_MSG = $_REQUEST["RSLT_MSG"]; // 결과메세지
$RSLT_NAME = $_REQUEST["RSLT_NAME"]; // 성명
$RSLT_BIRTHDAY = $_REQUEST["RSLT_BIRTHDAY"]; // 생년월일
$RSLT_SEX_CD = $_REQUEST["RSLT_SEX_CD"]; // 성별
$RSLT_NTV_FRNR_CD = $_REQUEST["RSLT_NTV_FRNR_CD"];// 내외국인구분
$DI = $_REQUEST["DI"]; // DI
$CI = $_REQUEST["CI"]; // CI
$CI_UPDATE = $_REQUEST["CI_UPDATE"]; // CI 업데이트
$TEL_COM_CD = $_REQUEST["TEL_COM_CD"]; // 통신사코드
$TEL_NO = $_REQUEST["TEL_NO"]; // 휴대폰번호
$RETURN_MSG = $_REQUEST["RETURN_MSG"]; // 리턴메시지
$sql = " select count(*) as cnt from {$g5['member_table']} where mb_hp = '{$TEL_NO}' ";
$row = sql_fetch($sql);
if ($row['cnt']) { // 이미 가입된 휴대폰번호가 있다면,
?>
<script>
alert('이미 가입된 휴대폰번호가 있습니다.');
document.location.href='/bbs/login';
</script>
<?php
}
?>
<?php
// 만19세 미만 회원가입 불가 [S]
$birth_day_data1 = substr_replace($RSLT_BIRTHDAY,'-',4,0);
$birth_day_data2 = substr_replace($birth_day_data1,'-',7,0);
$birth_time = strtotime($birth_day_data2);
$now = date('Ymd');
$birthday = date('Ymd' , $birth_time);
$age = floor(($now - $birthday) / 10000);
if ($age < 19) {
?>
<script>
alert('만 19세 미만은 가입하실 수 없습니다.');
document.location.href='/bbs/login';
</script>
<?php } ?>
여기에는 중복 체크 하는 부분이 없습니다.
본인인증 체크부분(kcp의 경우 /plugin/kcpcert/kcpcert_result.php) 이나
회원정보 저장부분 (/member/register_form_update.php)에서 중복체크해야합니다.