[초보]소스분석을 대충해봣는데.....회원가입 아이디 중보확인관련..
본문
오류가 나는곳의 주소를 알려주시면 더 빠르고 정확하게 답변 받을 수 있습니다.
오류 주소 :
G4에서는 아이디중복확인이 아약스로 구동이 되었었습니다.
그런데 지금 보니
G5에서 이 아약스 아이디 중복확인이 안되는 줄알앗는데.. 자세히 소스를 보니 소스가 있긴 잇는것같은데 ..작동을 안하는것같습니다..
우선 스킨 파일 상당에보면
<script src="<?php echo G5_JS_URL ?>/jquery.register_form.js"></script>
따라가보니..
///jquery.register_form.js////
var reg_mb_id_check = function() {
var result = "";
$.ajax({
type: "POST",
url: g5_bbs_url+"/ajax.mb_id.php",
data: {
"reg_mb_id": encodeURIComponent($("#reg_mb_id").val())
},
cache: false,
async: false,
success: function(data) {
result = data;
}
});
return result;
}
//////bbs/ajax_mb_id.php////////
<?php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/register.lib.php');
$mb_id = escape_trim($_POST['reg_mb_id']);
if ($msg = empty_mb_id($mb_id)) die($msg);
if ($msg = valid_mb_id($mb_id)) die($msg);
if ($msg = count_mb_id($mb_id)) die($msg);
if ($msg = exist_mb_id($mb_id)) die($msg);
if ($msg = reserve_mb_id($mb_id)) die($msg);
?>
//////lib/register.lib.php////////
if (!defined('_GNUBOARD_')) exit;
function empty_mb_id($reg_mb_id)
{
if (trim($reg_mb_id)=='')
return "회원아이디를 입력해 주십시오.";
else
return "";
}
function valid_mb_id($reg_mb_id)
{
if (preg_match("/[^0-9a-z_]+/i", $reg_mb_id))
return "회원아이디는 영문자, 숫자, _ 만 입력하세요.";
else
return "";
}
function count_mb_id($reg_mb_id)
{
if (strlen($reg_mb_id) < 3)
return "회원아이디는 최소 3글자 이상 입력하세요.";
else
return "";
}
function exist_mb_id($reg_mb_id)
{
global $g5;
$reg_mb_id = trim($reg_mb_id);
if ($reg_mb_id == "") return "";
$sql = " select count(*) as cnt from `{$g5['member_table']}` where mb_id = '$reg_mb_id' ";
$row = sql_fetch($sql);
if ($row['cnt'])
return "이미 사용중인 회원아이디 입니다.";
else
return "";
}
이게.....아약스구동파일이아닌가요 ?.......?;;ㅎㅎ;
그냥 초보의 눈으로 봤을때 파일이 있는것같은데..실행이 안되는것같아서 여쭈어봐요!
오류 주소 :
G4에서는 아이디중복확인이 아약스로 구동이 되었었습니다.
그런데 지금 보니
G5에서 이 아약스 아이디 중복확인이 안되는 줄알앗는데.. 자세히 소스를 보니 소스가 있긴 잇는것같은데 ..작동을 안하는것같습니다..
우선 스킨 파일 상당에보면
<script src="<?php echo G5_JS_URL ?>/jquery.register_form.js"></script>
따라가보니..
///jquery.register_form.js////
var reg_mb_id_check = function() {
var result = "";
$.ajax({
type: "POST",
url: g5_bbs_url+"/ajax.mb_id.php",
data: {
"reg_mb_id": encodeURIComponent($("#reg_mb_id").val())
},
cache: false,
async: false,
success: function(data) {
result = data;
}
});
return result;
}
//////bbs/ajax_mb_id.php////////
<?php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/register.lib.php');
$mb_id = escape_trim($_POST['reg_mb_id']);
if ($msg = empty_mb_id($mb_id)) die($msg);
if ($msg = valid_mb_id($mb_id)) die($msg);
if ($msg = count_mb_id($mb_id)) die($msg);
if ($msg = exist_mb_id($mb_id)) die($msg);
if ($msg = reserve_mb_id($mb_id)) die($msg);
?>
//////lib/register.lib.php////////
if (!defined('_GNUBOARD_')) exit;
function empty_mb_id($reg_mb_id)
{
if (trim($reg_mb_id)=='')
return "회원아이디를 입력해 주십시오.";
else
return "";
}
function valid_mb_id($reg_mb_id)
{
if (preg_match("/[^0-9a-z_]+/i", $reg_mb_id))
return "회원아이디는 영문자, 숫자, _ 만 입력하세요.";
else
return "";
}
function count_mb_id($reg_mb_id)
{
if (strlen($reg_mb_id) < 3)
return "회원아이디는 최소 3글자 이상 입력하세요.";
else
return "";
}
function exist_mb_id($reg_mb_id)
{
global $g5;
$reg_mb_id = trim($reg_mb_id);
if ($reg_mb_id == "") return "";
$sql = " select count(*) as cnt from `{$g5['member_table']}` where mb_id = '$reg_mb_id' ";
$row = sql_fetch($sql);
if ($row['cnt'])
return "이미 사용중인 회원아이디 입니다.";
else
return "";
}
이게.....아약스구동파일이아닌가요 ?.......?;;ㅎㅎ;
그냥 초보의 눈으로 봤을때 파일이 있는것같은데..실행이 안되는것같아서 여쭈어봐요!
답변 3
말씀하신 내용은 접근성과 관련하여 자바스크립트 사용이 불가한 환경에서도 사용할 수 있도록 하기위하여 빠져있습니다.
그러나 현재 개발진 내부에서는 ajax를 이용한 체크기능을 추가하는 방향을 고려 중에 있습니다.
그러나 현재 개발진 내부에서는 ajax를 이용한 체크기능을 추가하는 방향을 고려 중에 있습니다.
정 쓰실거면
스크립트 추가하시구요
※ 함수명은 바꾸셔도 상관없습니다.
아이디 input 박스에 onblur="mb_id_check();" 추가해주세요
※ 스크립트 작성시 함수명을 달리 하셨다면 여기도 바꿔주셔야 합니다.
스크립트 추가하시구요
※ 함수명은 바꾸셔도 상관없습니다.
function mb_id_check() {
var msg = reg_mb_id_check();
if (msg) {
$("#msg_mb_id").text(msg);
$("#reg_mb_id").select();
} else
$("#msg_mb_id").text("");
}
아이디 input 박스에 onblur="mb_id_check();" 추가해주세요
※ 스크립트 작성시 함수명을 달리 하셨다면 여기도 바꿔주셔야 합니다.
<td>
<span class="frm_info">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
<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 minlength_3 <?php echo $required ?> <?php echo $readonly ?>"maxlength="20" onblur="mb_id_check();">
<span id="msg_mb_id"></span>
</td>
그누보드를 설치하시고
회원가입 페이지를 수정하지 않으셨다면 정상적으로 아이디 중복 체크가 이루어질텐데
안된다고 하신 사이트 테스트가 가능할까요??
회원가입 페이지를 수정하지 않으셨다면 정상적으로 아이디 중복 체크가 이루어질텐데
안된다고 하신 사이트 테스트가 가능할까요??
답변을 작성하시기 전에 로그인 해주세요.