여분필드 mb_1 을 회원아이디체크처럼 사용하고 싶은데 잘 안됩니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

여분필드 mb_1 을 회원아이디체크처럼 사용하고 싶은데 잘 안됩니다. 정보

여분필드 mb_1 을 회원아이디체크처럼 사용하고 싶은데 잘 안됩니다.

본문

안녕하세요...

여분필드 mb_1을 ajax로 회원아이디 체크처럼 사용하고 싶은데 잘 안되네요.

일단 제가 추가한 소스는

1.register_form.skin.php

<input type=hidden name=mb_1_enabled    value="" id="mb_1_enabled">

        <TR bgcolor="#363636">
            <TD width="160" class=m_title>게임아이디</TD>
            <TD class=m_padding>
                <input class=m_text maxlength=20 size=20 id='reg_mb_1' name="mb_1" value="<?=$member[mb_1]?>" <? if ($w=='u') { echo "readonly style='background-color:#282828;'"; } ?>
                    <? if ($w=='') { echo "onblur='reg_mb_1_check();'"; } ?>>
                <span id='msg_mb_1'></span>
                <table height=25 cellspacing=0 cellpadding=0 border=0>
                <tr><td><font color="#b5ff02">※ 영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</font></td></tr>
                </table>
            </TD>
        </TR>

    if (f.w.value == "") {

        reg_mb_1_check();

        if (document.getElementById('mb_1_enabled').value!='000') {
            alert('게임아이디를 입력하지 않았거나 입력에 오류가 있습니다.');
            document.getElementById('reg_mb_1').select();
            return false;
        }
    }

2.ajax_register_form.jquery.js

var reg_mb_1_check = function() {
    $.ajax({
        type: 'POST',
        url: member_skin_path+'/ajax_mb_1_check.php',
        data: {
            'reg_mb_1': encodeURIComponent($('#reg_mb_1').val())
        },
        cache: false,
        async: false,
        success: function(result) {
            var msg = $('#msg_mb_1');
            switch(result) {
                case '110' : msg.html('영문자, 숫자, _ 만 입력하세요.').css('color', 'red'); break;
                case '120' : msg.html('최소 3자이상 입력하세요.').css('color', 'red'); break;
                case '130' : msg.html('이미 사용중인 아이디 입니다.').css('color', 'red'); break;
                case '140' : msg.html('예약어로 사용할 수 없는 아이디 입니다.').css('color', 'red'); break;
                case '000' : msg.html('사용하셔도 좋은 아이디 입니다.').css('color', 'blue'); break;
                default : alert( '잘못된 접근입니다.\n\n' + result ); break;
            }
            $('#mb_1_enabled').val(result);
        }
    });
}

3.ajax_mb_1_check.php

include_once("_common.php");

// echo "한글"로 출력하지 않는 이유는 Ajax 는 euc_kr 에서 한글을 제대로 인식하지 못하기 때문
// 여기에서 영문으로 echo 하여 Request 된 값을 Javascript 에서 한글로 메세지를 출력함

if (preg_match("/[^0-9a-z_]+/i", $reg_mb_1)) {
    echo "110"; // 유효하지 않은 회원아이디
} else if (strlen($reg_mb_1) < 3) {
    echo "120"; // 3보다 작은 회원아이디
} else {
    $row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_1 = '$reg_mb_1' ");
    if ($row[cnt]) {
        echo "130"; // 이미 존재하는 회원아이디
    } else {
        if (preg_match("/[\,]?{$reg_mb_1}/i", $config[cf_prohibit_1]))
            echo "140"; // 예약어로 금지된 회원아이디
        else
            echo "000"; // 정상
    }
}

-----------------------------------------------------------------이상입니다.

헌데 실행하면

잘못된 접근입니다.

<script language='JavaScript'> location.replace('../../../'); </script>

이런 메세지창이 뜨네요...

고수님들 해결방법 좀 가르쳐주시면 고맙겠습니다.

댓글 전체

전체 14 |RSS
그누4 질문답변 내용 검색

회원로그인

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