2026, 새로운 도약을 시작합니다.

회원탈퇴시 update 아니고 delete로 처리하는 방법

회원을 가끔 전체를 날려야하는경우가 생겨서 찾다가 알게되서 공유드립니다.

/bbs/member_leave.php 파일 

기존소스

[code]

// 회원탈퇴일을 저장
$date = date("Ymd");
$sql = " update {$g5['member_table']} set mb_leave_date = '{$date}', mb_memo = '".date('Ymd', G5_SERVER_TIME)." 탈퇴함\n".sql_real_escape_string($member['mb_memo'])."', mb_certify = '', mb_adult = 0, mb_dupinfo = '' where mb_id = '{$member['mb_id']}' ";
sql_query($sql);

[/code]

[code]

$sql="delete from g5_member where mb_id='".$member['mb_id']."'";
sql_query($sql);

[/code]

-- 추가내용-  관리자의 회원리스트에 선택삭제부분에 해당유사한 부분이있어서 추가합니다.

  member_delete($mb['mb_id']);

/lib/common.lib.php  3603라인에

[code]

// 회원 삭제
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_addr3 = '', mb_point = 0, mb_profile = '', mb_birth = '', mb_sex = '', mb_signature = '', mb_memo = '" . date('Ymd', G5_SERVER_TIME) . " 삭제함\n" . sql_real_escape_string($mb['mb_memo']) . "', mb_certify = '', mb_adult = 0, mb_dupinfo = '' where mb_id = '{$mb_id}' ";

//이부분을 수정하면될것 같습니다.

$sql="delete from g5_member where mb_id='".$member['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' ");

    //소셜로그인에서 삭제 또는 해제
    if (function_exists('social_member_link_delete')) {
        social_member_link_delete($mb_id);
    }

    // 아이콘 삭제
    @unlink(G5_DATA_PATH . '/member/' . substr($mb_id, 0, 2) . '/' . $mb_id . '.gif');

    // 프로필 이미지 삭제
    @unlink(G5_DATA_PATH . '/member_image/' . substr($mb_id, 0, 2) . '/' . $mb_id . '.gif');

    run_event('member_delete_after', $mb_id);
}

[/code]

|

댓글 7개

이거 단순 삭제도 신중해야 해요 

왜냐면 저 탈퇴 사용자가 글쓴거 / 포인트 내역 / 로그인 내역 / 쪽지 내역 / 스크랩 내역 / 이런건 고스란히 그대로 남아있기 때문에 흔히 디비 찌꺼기로 남아있어서 처리를 해야 되는 요소까지 고려 하셔야 합니다.

문제는 게시물등 그대로 남아있으니

같은 아이디로 재가입하면 기존 데이터의 접근이 가능하니

그것을도 다 지우는게 문제죠^^;;

좋은의견이시네요. 운영정책에 따라 해당 회원이 작성하신 게시물이나 포인트등 관련 자료에 대한 부분에 대한 확인까지 필요해보입니다. 

@지구버스 지우는건 귀찮다?라면, 아예 아이디를 임의아이디로 변경해버리는 것도 좋은 방법일 것 같습니다

예를 들어 abcd 라는 아이디가 있다면 leave_abcd 로 강제 변경 그럼...어차피 로그인 못하니...? 뭐 물론 위에 언급한 문제도 있겟지만요 ㅎㅎ

참고로 공공기간에서 탈퇴하면 DB에 존재합니다.

관리자페이지 회원목록에서 볼수 없습니다.

중복가입 방지를 하기 위해서 제한합니다.

관리자에 회원리스트 관리에 회원삭제에 유사한게잇어서 추가하엿습니다.

$sql="delete from g5_member where mb_id='".$member['mb_id']."'";

이거를 가장 마지막에 실행해야겠죠.
그렇지 않으면 아이디가 이미 삭제되서 포인트 등 삭제할 근거가 사라집니다.

g5_member 는 {$g5['member_table']} 로 변경해야겠네요

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,592
2741 어제 조회 76
2740 3일 전 조회 82
2739 1주 전 조회 194
2738 1주 전 조회 200
2737 1주 전 조회 168
2736 1주 전 조회 268
2735 2주 전 조회 273
2734 3주 전 조회 254
2733 1개월 전 조회 257
2732 1개월 전 조회 292
2731 1개월 전 조회 260
2730 1개월 전 조회 217
2729 1개월 전 조회 343
2728 1개월 전 조회 237
2727 1개월 전 조회 412
2726 1개월 전 조회 247
2725 1개월 전 조회 322
2724 1개월 전 조회 351
2723 1개월 전 조회 259
2722 1개월 전 조회 292
2721 1개월 전 조회 205
2720 2개월 전 조회 298
2719 2개월 전 조회 301
2718 2개월 전 조회 195
2717 2개월 전 조회 328
2716 2개월 전 조회 197
2715 2개월 전 조회 305
2714 2개월 전 조회 265
2713 2개월 전 조회 368
2712 2개월 전 조회 283
🐛 버그신고