회원가입
본문
가입 후 탈퇴 시 동일한 아이디로 가입 불가능(이미 사용중인 회원아이디 입니다.)팝업창이 나타남 - 몇일동안 보관 후 삭제되는지 알려주거나 가입가능하게 변경할라면 어떻게 할까여... 해결방안점요..
답변 4
원래 회원 삭제를 하면 보관함에 들어갑니다.
즉시삭제는 bbs/member_leave.php 파일에보시면
// 회원탈퇴일을 저장
$date = date("Ymd");
$sql = " update {$g5['member_table']} set mb_leave_date = '{$date}' where mb_id = '{$member['mb_id']}' ";
sql_query($sql);
이부분을 수정해서 바로 삭제하도록 쿼리문을 바꾸시면되구요
관리자가 회원관리에서 회원을 삭제하였을때에 바로삭제를 하게하려면
lib/common.lib.php파일에서
function member_delete함수를 아래처럼 바꾸시면 되겠습니다.
// 회원 삭제
function member_delete($mb_id)
{
global $config;
global $g5;
$sql = " select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from {$g5['member_table']} where mb_id= '".$mb_id."' ";
$mb = sql_fetch($sql);
// 이미 삭제된 회원은 제외
if(preg_match('#^[0-9]{8}.*삭제함#', $mb['mb_memo']))
return;
if ($mb['mb_recommend']) {
$row = sql_fetch(" select count(*) as cnt from {$g5['member_table']} where mb_id = '".addslashes($mb['mb_recommend'])."' ");
if ($row['cnt'])
insert_point($mb['mb_recommend'], $config['cf_recommend_point'] * (-1), $mb_id.'님의 회원자료 삭제로 인한 추천인 포인트 반환', "@member", $mb['mb_recommend'], $mb_id.' 추천인 삭제');
}
// 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025
//$sql = " update {$g5['member_table']} set mb_password = '', mb_level = 1, mb_email = '', mb_homepage = '', mb_tel = '', mb_hp = '', mb_zip1 = '', mb_zip2 = '', mb_addr1 = '', mb_addr2 = '', mb_birth = '', mb_sex = '', mb_signature = '', mb_memo = '".date('Ymd', G5_SERVER_TIME)." 삭제함\n{$mb['mb_memo']}' where mb_id = '{$mb_id}' ";
$sql = " delete from {$g5['member_table']} where mb_id = '{$mb_id}' ";
sql_query($sql);
// 포인트 테이블에서 삭제
sql_query(" delete from {$g5['point_table']} where mb_id = '$mb_id' ");
// 그룹접근가능 삭제
sql_query(" delete from {$g5['group_member_table']} where mb_id = '$mb_id' ");
// 쪽지 삭제
sql_query(" delete from {$g5['memo_table']} where me_recv_mb_id = '$mb_id' or me_send_mb_id = '$mb_id' ");
// 스크랩 삭제
sql_query(" delete from {$g5['scrap_table']} where mb_id = '$mb_id' ");
// 관리권한 삭제
sql_query(" delete from {$g5['auth_table']} where mb_id = '$mb_id' ");
// 그룹관리자인 경우 그룹관리자를 공백으로
sql_query(" update {$g5['group_table']} set gr_admin = '' where gr_admin = '$mb_id' ");
// 게시판관리자인 경우 게시판관리자를 공백으로
sql_query(" update {$g5['board_table']} set bo_admin = '' where bo_admin = '$mb_id' ");
// 아이콘 삭제
@unlink(G5_DATA_PATH.'/member/'.substr($mb_id,0,2).'/'.$mb_id.'.gif');
}
전체적으로 다 바꾸실 필요는 없구요
common.lib.php 파일에서 member_delete()함수를
// 이미 삭제된 회원은 제외
if(preg_match('#^[0-9]{8}.*삭제함#', $mb['mb_memo']))
return;
이부분을 수정하시면 됩니다
// 이미 삭제된 회원은 제외
if(preg_match('#^[0-9]{8}.*삭제함#', $mb['mb_memo'])) {
sql_query(" delete from ".$g5[member_table]." where mb_id = '".$mb_id."' ");
return;
}
이렇게 수정해주면 됩니다
!-->!-->보통은 회원탈퇴하면 아이디가 비회원으로만 처리되고 삭제 되지 않을겁니다
그래서 그사람 아이디를 다시 사용할 수가 없지요
이부분은 /lib/common.lib.php 에서 member_delete()함수 내에서 update문에서 변경합니다
이 아이디를 다시 사용하려면 탈퇴자들만 모아 놓는 테이블을 만들어 놓는다던지 해서 지우는게 어떨지요
관리자 > 환경설정 > 기본환경설정 > 회원가입설정 > 회원탈퇴후 삭제일 에서
30일 후 자동 삭제 로 되어 있으니 일수를 변경해서 사용하세요.