그누5 회원가입 핸드폰번호중복체크 기능을 어떻게 하면 될려는지요?

그누5 회원가입 핸드폰번호중복체크 기능을 어떻게 하면 될려는지요?

QA

그누5 회원가입 핸드폰번호중복체크 기능을 어떻게 하면 될려는지요?

본문

1999811033_1548209160.5215.png

 

스킨 register_form.skin.php

----------------------------------------------------------------------

 

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

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
$a_auth = time();
?>

<!-- 회원정보 입력/수정 시작 { -->

<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="">
<input type="hidden" name="hp_auth" value="">
<input type="hidden" name="a_auth" value="<?=$a_auth?>">
<input type="hidden" name="sendYN" 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 }  ?>
 <div id="register_form"  class="form_01">
    <div>
        <h2>사이트 이용정보 입력</h2>
        <ul>
            <li>
                <label for="reg_mb_id" class="sound_only">아이디<strong>필수</strong></label>
                <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="3" maxlength="20" placeholder="아이디">
                <span id="msg_mb_id"></span>
                <span class="frm_info">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
            </li>
            <li>
                <label for="reg_mb_password" class="sound_only">비밀번호<strong class="sound_only">필수</strong></label>
                <input type="password" name="mb_password" id="reg_mb_password" <?php echo $required ?> class="frm_input full_input <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호">
            </li>
            <li>

                <label for="reg_mb_password_re" class="sound_only">비밀번호 확인<strong>필수</strong></label>
                <input type="password" name="mb_password_re" id="reg_mb_password_re" <?php echo $required ?> class="frm_input full_input   <?php echo $required ?>" minlength="3" maxlength="20" placeholder="비밀번호 확인">
            </li>
        </ul>
    </div>

    <div class="tbl_frm01 tbl_wrap">
        <h2>개인정보 입력</h2>

        <ul>

            <?php if ($req_nick) {  ?>
            <li>
                <label for="reg_mb_nick" class="sound_only">닉네임<strong>필수</strong></label>

                    <input type="hidden" name="mb_nick_default" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>">
                    <input type="text" name="mb_nick" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>" id="reg_mb_nick" required class="frm_input required nospace  full_input" size="10" maxlength="20" placeholder="닉네임">
                    <span id="msg_mb_nick"></span>
                    <span class="frm_info">
                        공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)<br>
                        <?php if($config['cf_nick_modify']){ ?>
                        닉네임을 바꾸시면 앞으로 <?php echo (int)$config['cf_nick_modify'] ?>일 이내에는 변경 할 수 없습니다.
                        <?php }?>
                    </span>

            </li>
            <?php }  ?>

            <?php if ($config['cf_use_homepage']) {  ?>
            <li>
                <label for="reg_mb_homepage" class="sound_only">홈페이지<?php if ($config['cf_req_homepage']){ ?><strong>필수</strong><?php } ?></label>
                <input type="text" name="mb_homepage" value="<?php echo get_text($member['mb_homepage']) ?>" id="reg_mb_homepage" <?php echo $config['cf_req_homepage']?"required":""; ?> class="frm_input full_input <?php echo $config['cf_req_homepage']?"required":""; ?>" size="70" maxlength="255" placeholder="홈페이지">
            </li>
            <?php }  ?>

            <?php if ($config['cf_use_tel']) {  ?>
            <li>
                <label for="reg_mb_tel" class="sound_only">전화번호<?php if ($config['cf_req_tel']) { ?><strong>필수</strong><?php } ?></label>
                <input type="text" name="mb_tel" value="<?php echo get_text($member['mb_tel']) ?>" id="reg_mb_tel" <?php echo $config['cf_req_tel']?"required":""; ?> class="frm_input full_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20" placeholder="전화번호">
            </li>
            <?php }  ?>

            <?php if ($config['cf_use_hp'] || $config['cf_cert_hp']) {  ?>
            <li>
                <label for="reg_mb_hp" class="sound_only">휴대폰번호<?php if ($config['cf_req_hp']) { ?><strong>필수</strong><?php } ?></label>

                <input type="text" name="mb_hp" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo ($config['cf_req_hp'])?"required":""; ?> class="frm_input right_input full_input <?php echo ($config['cf_req_hp'])?"required":""; ?>" maxlength="20"  placeholder="휴대폰번호">
            </li>
            <li>
                <?php
                if($config['cf_auth_hp']) {
                  ?>

                 <input type="text" name="auth_num" id="auth_num"  class="frm_input"  style="width:67%;float:left"> 
                 <button type="button" id="win_hp_auth" style="width:30%;float:right" class="btn_frmline" onclick="getCode(this)">인증번호받기</button>
         <?php
                }
                ?>
                
                <?php if ($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
                <input type="hidden" name="old_mb_hp" value="<?php echo get_text($member['mb_hp']) ?>">
                <?php } ?>
            </li>
            <?php }  ?>


            <?php if ($config['cf_use_addr']) { ?>
            <li>
                <?php if ($config['cf_req_addr']) { ?><strong class="sound_only">필수</strong><?php }  ?>
                <label for="reg_mb_zip" class="sound_only">우편번호<?php echo $config['cf_req_addr']?'<strong class="sound_only"> 필수</strong>':''; ?></label>
                <input type="text" name="mb_zip" value="<?php echo $member['mb_zip1'].$member['mb_zip2']; ?>" id="reg_mb_zip" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="8" maxlength="6"  placeholder="우편번호">
                <button type="button" class="btn_frmline" onclick="win_zip('fregisterform', 'mb_zip', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button><br>
                <input type="text" name="mb_addr1" value="<?php echo get_text($member['mb_addr1']) ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address full_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="50"  placeholder="기본주소">
                <label for="reg_mb_addr1" class="sound_only">기본주소<?php echo $config['cf_req_addr']?'<strong> 필수</strong>':''; ?></label><br>
                <input type="text" name="mb_addr2" value="<?php echo get_text($member['mb_addr2']) ?>" id="reg_mb_addr2" class="frm_input frm_address full_input" size="50"  placeholder="상세주소">
                <label for="reg_mb_addr2" class="sound_only">상세주소</label>
                <br>
                <input type="text" name="mb_addr3" value="<?php echo get_text($member['mb_addr3']) ?>" id="reg_mb_addr3" class="frm_input frm_address full_input" size="50" readonly="readonly"  placeholder="참고항목">
                <label for="reg_mb_addr3" class="sound_only">참고항목</label>
                <input type="hidden" name="mb_addr_jibeon" value="<?php echo get_text($member['mb_addr_jibeon']); ?>">

            </li>
            <?php }  ?>
        </ul>
    </div>

    <div class="tbl_frm01 tbl_wrap">
        <ul>
            <?php if ($config['cf_use_signature']) {  ?>
            <li>
                <label for="reg_mb_signature" class="sound_only">서명<?php if ($config['cf_req_signature']){ ?><strong>필수</strong><?php } ?></label>
                <textarea name="mb_signature" id="reg_mb_signature" <?php echo $config['cf_req_signature']?"required":""; ?> class="<?php echo $config['cf_req_signature']?"required":""; ?>"   placeholder="서명"><?php echo $member['mb_signature'] ?></textarea>
            </li>
            <?php }  ?>

            <?php if ($config['cf_use_profile']) {  ?>
            <li>
                <label for="reg_mb_profile" class="sound_only">자기소개</label>
                <textarea name="mb_profile" id="reg_mb_profile" <?php echo $config['cf_req_profile']?"required":""; ?> class="<?php echo $config['cf_req_profile']?"required":""; ?>" placeholder="자기소개"><?php echo $member['mb_profile'] ?></textarea>
            </li>
            <?php }  ?>

            <?php if ($config['cf_use_member_icon'] && $member['mb_level'] >= $config['cf_icon_level']) {  ?>
            <li>
                <label for="reg_mb_icon" class="frm_label">회원아이콘</label>
                <input type="file" name="mb_icon" id="reg_mb_icon" >

                <span class="frm_info">
                    이미지 크기는 가로 <?php echo $config['cf_member_icon_width'] ?>픽셀, 세로 <?php echo $config['cf_member_icon_height'] ?>픽셀 이하로 해주세요.<br>
                    gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_member_icon_size']) ?>바이트 이하만 등록됩니다.
                </span>

                <?php if ($w == 'u' && file_exists($mb_icon_path)) {  ?>
                <img src="<?php echo $mb_icon_url ?>" alt="회원아이콘">
                <input type="checkbox" name="del_mb_icon" value="1" id="del_mb_icon">
                <label for="del_mb_icon">삭제</label>
                <?php }  ?>

            </li>
            <?php }  ?>

            <?php if ($member['mb_level'] >= $config['cf_icon_level'] && $config['cf_member_img_size'] && $config['cf_member_img_width'] && $config['cf_member_img_height']) {  ?>
            <li class="reg_mb_img_file">
                <label for="reg_mb_img" class="frm_label">회원이미지</label>
                <input type="file" name="mb_img" id="reg_mb_img" >

                <span class="frm_info">
                    이미지 크기는 가로 <?php echo $config['cf_member_img_width'] ?>픽셀, 세로 <?php echo $config['cf_member_img_height'] ?>픽셀 이하로 해주세요.<br>
                    gif, jpg, png파일만 가능하며 용량 <?php echo number_format($config['cf_member_img_size']) ?>바이트 이하만 등록됩니다.
                </span>

                <?php if ($w == 'u' && file_exists($mb_img_path)) {  ?>
                <img src="<?php echo $mb_img_url ?>" alt="회원이미지">
                <input type="checkbox" name="del_mb_img" value="1" id="del_mb_img">
                <label for="del_mb_img">삭제</label>
                <?php }  ?>

            </li>
            <?php } ?>

            <?php if ($config['cf_use_hp']) {  ?>

            <?php }  ?>

            <?php if (isset($member['mb_open_date']) && $member['mb_open_date'] <= date("Y-m-d", G5_SERVER_TIME - ($config['cf_open_modify'] * 86400)) || empty($member['mb_open_date'])) { // 정보공개 수정일이 지났다면 수정가능  ?>

            <?php } else {  ?>
            <li>
                정보공개
                <input type="hidden" name="mb_open" value="<?php echo $member['mb_open'] ?>">
                <span class="frm_info">
                    정보공개는 수정후 <?php echo (int)$config['cf_open_modify'] ?>일 이내, <?php echo date("Y년 m월 j일", isset($member['mb_open_date']) ? strtotime("{$member['mb_open_date']} 00:00:00")+$config['cf_open_modify']*86400:G5_SERVER_TIME+$config['cf_open_modify']*86400); ?> 까지는 변경이 안됩니다.<br>
                    이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다.
                </span>

            </li>
            <?php }  ?>

            <?php
            //회원정보 수정인 경우 소셜 계정 출력
            if( $w == 'u' && function_exists('social_member_provider_manage') ){
                social_member_provider_manage();
            }
            ?>

            <?php if ($w == "" && $config['cf_use_recommend']) {  ?>
            <li>
                <label for="reg_mb_recommend" class="sound_only">추천인아이디</label>
                <input type="text" name="mb_recommend" id="reg_mb_recommend" class="frm_input" placeholder="추천인아이디">
            </li>
            <?php }  ?>

            <li class="is_captcha_use">
                자동등록방지
                <?php echo captcha_html(); ?>
            </li>
        </ul>
    </div>

</div>
<div class="btn_confirm">
    <a href="<?php echo G5_URL ?>" class="btn_cancel">취소</a>
    <input type="submit" value="<?php echo $w==''?'회원가입':'정보수정'; ?>" id="btn_submit" class="btn_submit" accesskey="s">
</div>
</form>

    <script>
 /*인증번호가져오기/
        function getCode(obj) {
            if (checkPhone()) {//번호인증
            var f1 = document.fregisterform;
            $.post("/bbs/ajax_send.php", $("#fregisterform").serialize(),function(data){
                if (data=="F"){
                    alert("단시간에 너무 많은 요청을 하셨습니다.\n\n잠시후 이용 부탁드립니다.");
                }else{
                    //alert("요청하신 휴대폰으로 '인증번호'가 발송되었습니다.");
                    f1.sendYN.value = "Y";
                    f1.auth_num.focus();
                }
            });    
                settime(obj); //타이밍
            }
            else {
                $("input[name='mb_hp']").focus();
                return;
            }
        }
        //휴대폰번호인증
        function checkPhone() {
            var phone = $("input[name='mb_hp']").val();
            var pattern = /^1[0-9]{10}$/;
            if (phone.length == 0) {
                alert('휴대폰번호를 입력해주세요.');
               // $.toptip("휴대폰번호를 입력해주세요", 'error');
                return false;
            }
            if (!pattern.test(phone)) {
                alert('휴대폰번호를 정확하게 입력해주세요.');
                //$.toptip("휴대폰격식오류", 'error');
                return false;
            }
            return true;
        }
        var countdown = 60;
        function settime(obj) {
            if (countdown == 0) {
                $(obj).removeAttr("disabled");
                $(obj).text("인증번호받기");
                countdown = 60;
                return;
            } else {
                $(obj).attr("disabled", true);
                $(obj).text(countdown +'s'+'후 재발송');
                countdown--;
            }
            setTimeout(function () {
                settime(obj)
            }, 1000)
        }


function authCheck(){
    var f1 = document.sForm;
    if (f1.sendYN.value=="Y"){
        if (f1.auth_num.value==""){
            alert("'인증번호'를 입력해주세요.");
            f1.auth_num.focus();
        }else{
            $.post("/bbs/ajax_check.php", $("#sForm").serialize(),function(data){
                if (data=="Y"){
                    opener.document.fregisterform.hp_auth.value = "Y";
                    self.close();
                }else{
                    alert("입력하신 '인증번호'가 일치하지 않습니다.");
                }
            });    
        }
    }else{
        alert("'인증번호 발송' 버튼을 클릭해주세요.");
    }
}


    $(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 == "") {
            var msg = reg_mb_hp_check();
            if (msg) {
                alert(msg);
                f.mb_hp.select();
                return false;
            }
        }
        if (f.w.value == "") {
        
            if (f.mb_password.value.length < 3) {
                alert("비밀번호를 3글자 이상 입력하십시오.");
                f.mb_password.focus();
                return false;
            }
        }

        if (f.mb_password.value != f.mb_password_re.value) {
            alert("비밀번호가 같지 않습니다.");
            f.mb_password_re.focus();
            return false;
        }

        if (f.mb_password.value.length > 0) {
            if (f.mb_password_re.value.length < 3) {
                alert("비밀번호를 3글자 이상 입력하십시오.");
                f.mb_password_re.focus();
                return false;
            }
        }


        <?php if($w == '' && $config['cf_cert_use'] && $config['cf_cert_req']) { ?>
        // 본인확인 체크
        if(f.cert_no.value=="") {
            alert("회원가입을 위해서는 본인확인을 해주셔야 합니다.");
            return false;
        }
        <?php } ?>


        // 닉네임 검사
        if ((f.w.value == "") || (f.w.value == "u" && f.mb_nick.defaultValue != f.mb_nick.value)) {
            var msg = reg_mb_nick_check();
            if (msg) {
                alert(msg);
                f.reg_mb_nick.select();
                return false;
            }
        }


        <?php if($w == '' && $config['cf_auth_hp']) { ?>
        // 본인확인 체크
         var nquanju = false;//
            var f1 = document.fregisterform;
            if (f1.sendYN.value=="Y"){
                if (f1.auth_num.value==""){
                    alert("'인증번호'를 입력해주세요.");
                    f1.auth_num.focus();
                    return false;
                }else{
                    $.ajaxSettings.async = false;
                    $.post("/bbs/ajax_check.php", $("#fregisterform").serialize(),function(data){
                        if (data=="Y"){
                             document.fregisterform.hp_auth.value = "Y";
                             nquanju = true;
                            
                        }else{
                             alert("입력하신 '인증번호'가 일치하지 않습니다.");
                             nquanju = false;
                        }
                    });    
                   $.ajaxSettings.async = true;

                }
            }else{
                alert("휴대폰인증을 해주세요..");
                return false;
            }
        <?php } ?>

    //
        if(nquanju) {
             return true;
        }else{
            return false;
        };

        <?php echo chk_captcha_js();  ?>

        document.getElementById("btn_submit").disabled = "disabled";

        return true;
    }
    </script>

<!-- } 회원정보 입력/수정 끝 -->

 

 

--------------------------------------------------------------

아이디중복체크에서처럼 핸드폰번호도 중복체크를 할수 없는지요?

고수님들 잘 부탁드립니다.

ㅠㅠ밤잠을 샛는데 해결이 안되서요.

이 질문에 댓글 쓰기 :

답변 2

작동여부는 확인안해봤으나 이미 만들어진 기능으로 알고있어요.

 

/bbs/ajax.mb_hp.php 파일에서 

 


//if ($msg = exist_mb_hp($mb_hp, $mb_id)) die($msg);

 

이 부분 주석해제 하면 중복검사 될껍니다.

register_form.skin.php 하단의 스크립트에 아래 코드가 있는데요.이게 환경설정에서 회원가입->휴대폰번호입력 필수입력과 보이기 or 본인인증 사용시 휴대폰번호를 체크합니다. 간단하게 환경설정에서 휴대폰번호입력과 필수입력에 체크하고 저장하시면 register_form_update.php로 넘어가기전에 ajax로 체크해서 알럿이 뜰거구요.

<?php if (($config['cf_use_hp'] || $config['cf_cert_hp']) && $config['cf_req_hp']) {  ?>
// 휴대폰번호 체크
var msg = reg_mb_hp_check();
if (msg) {
    alert(msg);
    f.reg_mb_hp.select();
    return false;
}
<?php } ?>
답변을 작성하시기 전에 로그인 해주세요.
전체 123,506 | RSS
QA 내용 검색

회원로그인

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