회원가입시 메일입력 오타방지

회원가입시 메일입력 오타방지

QA

회원가입시 메일입력 오타방지

본문

회원가입시 메일작성할 때 기본 폼은 text로 타이핑해서 입력하게 되어있는데...

 

회원정보를 보면 오타난 분들이 너무 많아서

 

오타방지를 위해 도메인부분을 select으로 선택해서 아이디@메일선택

 

이런 폼으로 바꾸고 싶은데


<!-- 오타방지를 위해 메일 선택하게 바꿈 -->
    <li>
        <label for="reg_mb_email" class="sound_only">E-mail<strong>필수</strong></label>
        <?php if ($config['cf_use_email_certify']) {  ?>
        <span class="frm_info">
            <?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; }  ?>
            <?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; }  ?>
        </span>
        <?php }  ?>
        <input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
                
        <input type="text" name="mb_email1" id="reg_mb_email1" value="<?php echo isset($member['mb_email1'])?$member['mb_email1']:''; ?>" required class="frm_input email required" placeholder="E-mail">
        @
        <input type="text" name="mb_email2" id="reg_mb_email2" value="<?php echo isset($member['mb_email2'])?$member['mb_email2']:''; ?>" readonly class="frm_input email required" placeholder="E-mail 선택">
        <select id="mb_email3" class="frm_input">
            <option value="" selected="selected">E-mail 선택</option>
            <option value="naver.com">naver.com</option>
            <option value="daum.net">daum.net</option>
            <option value="nate.com">nate.com</option>
            <option value="hotmail.com">hotmail.com</option>
            <option value="yahoo.com">yahoo.com</option>
            <option value="empas.com">empas.com</option>
            <option value="korea.com">korea.com</option>
            <option value="dreamwiz.com">dreamwiz.com</option>
            <option value="gmail.com">gmail.com</option>
            <option value="etc">직접 입력</option>
        </select>
    </li>
<!-- // 오타방지를 위해 메일 선택하게 바꿈 -->

 

스크립트 부분도 추가했습니다.

 


// 메일 선택 작업 추가
$('#mb_email3').change(function(){
    var $this = $(this);
    if( $this.val() == 'etc' ) {
        $('#reg_mb_email2').prop('readonly',false).val('직접 입력').focus();
        //console.log('직접 입력');
    }else if( $this.val() != '' ) {
        $('#reg_mb_email2').prop('readonly',true).val($this.val());
        //console.log('메일 선택됨');
    }
});

 

/skin/member/register_form.skin.php 페이지에 이렇게 수정을 했습니다.

 

 

/bbs/register_form_update.php 에서도 $mb_mail 수정


$mb_email       = trim($_POST['mb_email1']).'@'.trim($_POST['mb_email2']);

 

/js/jquery.register_form.js 에 reg_mb_email_check 함수 수정

ajax 로 불러오는 data 부분 수정


data : {
    "reg_mb_email": $("#reg_mb_email1").val() + '@' + $('#reg_mb_email2').val(),
    "reg_mb_id": encodeURIComponent($("#reg_mb_id").val())
}

 

/bbs/ajax.mb_email.php 의 $mb_email 수정


$mb_email = trim($_POST['reg_mb_email1']).'@'.trim($_POST['reg_mb_email2']);

 

이렇게 수정을 했는데 정작 회원 가입하려고 하면

 

이메일 형식이 아니라고 나옵니다...

 

어디를 손봐야 회원가입할때 이메일 아이디는 text로 받고 도메인은 select으로 받게끔 할 수 있을까요??ㅠㅠㅠㅠㅠ

 

 

 

이 질문에 댓글 쓰기 :

답변 1

register_form.skin.php 파일 398줄에 아래의 소스를 찾아서

삭제하거나 주석 처리하면 됩니다.


// E-mail 검사
if ((f.w.value == "") || (f.w.value == "u" && f.mb_email.defaultValue != f.mb_email.value)) {
var msg = reg_mb_email_check();
if (msg) {
alert(msg);
f.reg_mb_email.select();
return false;
}
}

혹시 제가 수정한 것들 다 맞는건가요...?? 말씀해주신 부분을 주석처리하게 되면

마지막에 js파일 수정한 부분과 ajax.mb_email.php 파일 수정한 부분 2군데가 수정할 필요가 없었던거네요 ㅎㅎ

한번 테스트 해보겠습니다~ 답변 감사드려요!

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

회원로그인

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