핸드폰 중복인증 아이디 중복생성 방지가 안됩니다.

핸드폰 중복인증 아이디 중복생성 방지가 안됩니다.

QA

핸드폰 중복인증 아이디 중복생성 방지가 안됩니다.

본문

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)에서 중복체크해야합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 104 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT