[그누보드5] 회원 완전히 삭제하기

Lpla

·

2021. 3. 24. 23:13

반응형

버전에 따라 다를 수 있지만 그누보드는 관리자페이지 회원관리에서 회원 삭제 버튼을 클릭하더라도

삭제 기능 자체가 작동하지 않거나 혹은 삭제되더라도 db에 데이터가 남아 있어 해당 아이디나 이메일로 가입이 불가능한 경우가 발생한다.

 

 

관리자페이지에서 아이디를 선택한 후 선택삭제 버튼을 누르고
삭제 확인을 클릭하더라도
삭제되지 않는 경우가 발생한다.

 

 

그누보드에서 회원을 완전히 삭제하기 위해서는 파일을 수정해야 한다.

수정할 파일은 lib/common.lib.php 이다.

먼저 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".sql_real_escape_string($mb['mb_memo'])."' where mb_id = '{$mb_id}' ";
.
.
}

 

 

그리고 주석처리한 곳 바로 다음에 아래 코드를 추가한다.

 

// 회원 삭제
function member_delete($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".sql_real_escape_string($mb['mb_memo'])."' where mb_id = '{$mb_id}' ";

	// 회원 삭제
    sql_query(" delete from {$g5['member_table']} where mb_id = '$mb_id' ");    
.
.
}

 

저장한 다음 관리자페이지에서 회원 삭제를 다시 시도해보면 이제 깔끔하게 삭제되고 db에도 데이터가 남아 있지 않다.

 

 

참고 : 그누스터디

 

회원 삭제시 완전히 삭제하기 - 그누보드팁

관리자 페이지 > 회원관리에서 회원을 삭제하면 완전히 삭제되지 않고 목록에 그대로 남아 있을 겁니다.나중에 누군가 동일한 아이디로 가입하면 겹치는 문제 때문에 아이디는 남겨놓는 건데요

gnustudy.com

 

반응형