여분필드 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>
이런 메세지창이 뜨네요...
고수님들 해결방법 좀 가르쳐주시면 고맙겠습니다.
여분필드 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>
이런 메세지창이 뜨네요...
고수님들 해결방법 좀 가르쳐주시면 고맙겠습니다.