회원 탈퇴와 삭제의 차이 - 그누보드팁

본문 바로가기
전체검색

그누보드팁

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

회원 탈퇴와 삭제의 차이

관리자 19-03-05 02:18

그누보드는 회원 탈퇴와 관련된 파일은 있지만 탈퇴 링크는 없어서 별도로 추가해야 합니다.

http://gnustudy.com/bbs/board.php?bo_table=skin_etc&wr_id=16

영카트는 마이페이지에 회원 탈퇴 버튼이 기본으로 있습니다.



1. 회원 탈퇴


bbs/member_leave.php 파일을 통해 탈퇴 처리됩니다.


해당 파일을 살펴보니 탈퇴하면 회원 정보 mb_leave_date 필드에 현재 날짜를 기록하고 있네요.


// 회원탈퇴일을 저장
$date = date("Ymd");
$sql = " update {$g5['member_table']} set mb_leave_date = '{$date}' where mb_id = '{$member['mb_id']}' ";
sql_query($sql);



그리고 로그인할 때 bbs/login_check.php 파일에서 mb_leave_date 필드 값을 체크해서 로그인을 차단합니다.


// 탈퇴한 아이디인가?
if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME)) {
    $date = preg_replace("/([0-9]{4})([0-9]{2})([0-9]{2})/", "\\1\\2\\3일", $mb['mb_leave_date']);
    alert('탈퇴한 아이디이므로 접근하실 수 없습니다.\n탈퇴일 : '.$date);
}



그리고 탈퇴 후 별도로 설정된 기간이 경과하면 회원 삭제 과정으로 자동으로 넘어갑니다.

기간 설정은 관리자 페이지 > 환경설정 > 기본환경설정 > 회원탈퇴후 삭제일에서 변경할 수 있습니다.

기본 값은 30일로 되어 있네요.


0186e0a4b6eb9c685cf3e4a03089ce69_1551717652_7973.gif


30일 이후에 삭제하는 실행 코드는 bbs/db_table.optimize.php 파일에 있습니다.


// 탈퇴회원 자동 삭제
if($config['cf_leave_day'] > 0) {
    $sql = " select mb_id from {$g5['member_table']}
                where (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS(mb_leave_date)) > '{$config['cf_leave_day']}'
                  and mb_memo not regexp '^[0-9]{8}.*삭제함' ";
    $result = sql_query($sql);
    while ($row=sql_fetch_array($result))
    {
        // 회원자료 삭제
        member_delete($row['mb_id']);
    }
}



30일 이전에 관리자 페이지 > 해당 회원 정보 수정 페이지에서

탈퇴일자 입력 값을 삭제하고 빈 값으로 수정하면 탈퇴는 취소되고 정상 회원으로 복구됩니다.


0186e0a4b6eb9c685cf3e4a03089ce69_1551717746_3569.gif
 



2. 회원 삭제


탈퇴 과정에서는 유예 기간이 있었지만 회원 삭제는 즉시 삭제 처리됩니다.

즉시 삭제는 회원 관리 페이지에서 관리자만 할 수 있습니다.


회원 삭제와 관련된 함수는 lib/common.lib.php 파일에 있습니다.


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


삭제 함수 내용을 세부적으로 살펴보면 회원 아이디는 다른 사람이 재사용 못하게 남겨두고 있습니다.

레벨은 1로 바뀌고 아이디를 제외한 정보들은 모두 빈 값으로 변경됩니다.

그리고 mb_memo 필드에 '삭제한 날짜와 삭제함' 문구가 기록됩니다.

아이디는 남겨두기 때문에 회원 목록 페이지에서는 삭제되지 않습니다.


8996866d0fad0030209cef29eb64574c_1554290992_9536.png 



만약 아이디까지 삭제해서 회원 목록에서도 나오지 않게 완전히 삭제하려면 위 함수를 이렇게 수정하면 됩니다.

http://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=104 

일반 회원들의 아이디는 가급적 완전히 삭제하지 마시고 테스트 회원이나 스팸 회원들 삭제할 때 사용하면 될 것 같습니다.

로그인 후 댓글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright © GNUSTUDY. All rights reserved.