그누보드 중복 회원가입
본문
회원가입할때 아이디는 중복불가능하게하고
전화번호나 다른 정보는 같아도 가입할 수 있도록 하려고 하는데 어떻게 수정하면 가능할까요?
답변 3
lib/register.lib.php 파일에 체크 함수등이 존재하는데 해당 파일을 여시면
exist_mb_email <- 이메일주소 중복확인 함수
exist_mb_hp <- 휴대폰번호 중복확인 함수
exist_mb_nick <- 닉네임 중복확인 함수
이런 함수들이 있습니다.
bbs/register_form_update.php 에서 해당 함수들을 주석처리 해주셔도 되는데
그것보단 register.lib 에서 함수 상단에서 return 시켜주시면 보다 유지보수에 간편하실거에요.
예를들어 이메일체크 함수라면 아래처럼 시작하자마자 리턴넣어주면 됩니다.
단, 회원정보를 찾을때 중복정보로 가입된 회원이 있다면 문제가 생기겠죠.
function exist_mb_email($reg_mb_email, $reg_mb_id)
{
return ""; //이부분
global $g5;
$row = sql_fetch(" select count(*) as cnt from `{$g5['member_table']}` where mb_email = '$reg_mb_email' and mb_id <> '$reg_mb_id' ");
if ($row['cnt'])
return "이미 사용중인 E-mail 주소입니다.";
else
return "";
}
현재 그렇게 되어있지않나요?
페이지에서 중복 체크를 하고싶으면
키이벤트로 ajax로 db에 아이디 있는지 체크해서 가입가능, 불가 체크하시거나
버튼하나 만들으셔서 처리하시면됩니다
관리자에서 수동으로 회원을 추가할떄는
/adm/member_form_update.php 를 여시어 아래부분을 주석처리 합니다.
exist_mb_hp 함수는 이미 register.lib 에서 수정하실거라 생각하고 패스.
그럼 닉네임과 이메일 두개 남았네요.
/adm/member_form_update.php 파일에
회원등록시와 회원수정시 insert 쿼리나 update 쿼리 직전에 존재하는
이미 존재한는 닉네임
이미 존재하는 이메일
부분을 주석처리 해주시면 됩니다.
등록부분과 수정부분 2군대 비슷한 형태로 존재합니다.
if ($w == '')
{
$mb = get_member($mb_id);
if (isset($mb['mb_id']) && $mb['mb_id'])
alert('이미 존재하는 회원아이디입니다.\\nID : '.$mb['mb_id'].'\\n이름 : '.$mb['mb_name'].'\\n닉네임 : '.$mb['mb_nick'].'\\n메일 : '.$mb['mb_email']);
/* 주석처리
// 닉네임중복체크
$sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_nick = '{$mb_nick}' ";
$row = sql_fetch($sql);
if (isset($row['mb_id']) && $row['mb_id'])
alert('이미 존재하는 닉네임입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']);
// 이메일중복체크
$sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_email = '{$mb_email}' ";
$row = sql_fetch($sql);
if (isset($row['mb_id']) && $row['mb_id'])
alert('이미 존재하는 이메일입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']);
*/ 주석처리
sql_query(" insert into {$g5['member_table']} set mb_id = '{$mb_id}', mb_password = '".get_encrypt_string($mb_password)."', mb_datetime = '".G5_TIME_YMDHIS."', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_email_certify = '".G5_TIME_YMDHIS."', {$sql_common} ");
}
else if ($w == 'u')
{
$mb = get_member($mb_id);
if (! (isset($mb['mb_id']) && $mb['mb_id']))
alert('존재하지 않는 회원자료입니다.');
if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level'])
alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.');
if ($is_admin !== 'super' && is_admin($mb['mb_id']) === 'super' ) {
alert('최고관리자의 비밀번호를 수정할수 없습니다.');
}
if ($mb_id === $member['mb_id'] && $_POST['mb_level'] != $mb['mb_level'])
alert($mb['mb_id'].' : 로그인 중인 관리자 레벨은 수정 할 수 없습니다.');
/* 주석처리
// 닉네임중복체크
$sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_nick = '{$mb_nick}' and mb_id <> '$mb_id' ";
$row = sql_fetch($sql);
if (isset($row['mb_id']) && $row['mb_id'])
alert('이미 존재하는 닉네임입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']);
// 이메일중복체크
$sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_email = '{$mb_email}' and mb_id <> '$mb_id' ";
$row = sql_fetch($sql);
if (isset($row['mb_id']) && $row['mb_id'])
alert('이미 존재하는 이메일입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']);
*/ 주석처리
if ($mb_password)
$sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' ";
else
$sql_password = "";
if (isset($passive_certify) && $passive_certify)
$sql_certify = " , mb_email_certify = '".G5_TIME_YMDHIS."' ";
else
$sql_certify = "";
$sql = " update {$g5['member_table']}
set {$sql_common}
{$sql_password}
{$sql_certify}
where mb_id = '{$mb_id}' ";
sql_query($sql);
}
else
alert('제대로 된 값이 넘어오지 않았습니다.');
!-->