장기 미접속 회원 자동 탈퇴 처리 (최근접속일 값으로 비교) - 그누보드팁

본문 바로가기
전체검색

그누보드팁

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

장기 미접속 회원 자동 탈퇴 처리 (최근접속일 값으로 비교)

관리자 19-06-25 13:55

최근접속일 값을 활용해서 장기 미접속 회원을 자동으로 탈퇴 처리하는 방법입니다.

아이피 값이 아닌 로그인 시간을 기준으로 적용되기 때문에 사이트를 방문해서 로그인을 하지 않으면 탈퇴 대상에 포함됩니다.

회원이 로그인하면 회원 정보 DB 중에서 mb_today_login 필드에 로그인 시간이 기록됩니다.


적용 방법은 다양하지만 그누보드 기본 기능 중 주기적으로 DB를 정리해주는 파일에 적용해보겠습니다.



수정 파일 : bbs/db_table.optimize.php


해당 파일 내용을 보면 접속자, 인기검색어, 최근게시물, 쪽지 등 자동으로 DB를 삭제하는 코드가 있습니다.


적당한 위치에 아래 코드 추가


// 최근접속일이 설정일보다 지난 회원 탈퇴 처리
// 기간 설정값은 환경설정 여분필드 1번 값으로 적용됨 (cf_1)
if($config['cf_1'] > 0) {
    $leave_date = date("Ymd");
    $tmp_before_date = date("Y-m-d", G5_SERVER_TIME - ($config['cf_1'] * 86400));
    $sql = " update {$g5['member_table']} set mb_leave_date = '{$leave_date}' where mb_today_login < '$tmp_before_date' ";
    sql_query($sql);
}



기간 설정 값은 관리자페이지 > 환경설정 > 기본환경설정 > 여분필드1번 값으로 적용했습니다.

자동 탈퇴 기능을 끄고 싶으면 값을 삭제하고 빈 값으로 두면 됩니다.

여분필드1 제목란은 정해진 건 없으며 적당한 문구로 변경 가능합니다.


기간은 (일) 단위 기준이며

예를 들어 365를 입력하면 365일 동안 로그인하지 않은 회원들을 일괄 탈퇴 처리합니다.



eb9a03629b3f965e2909fa4de1e82c30_1561437478_8462.png



## 참고사항 ##


db_table.optimize.php 파일은 관리자가 로그인을 했을 때만 실행되고 하루 한번만 실행됩니다.

파일 상단에 관련 코드가 있으니 참고하세요.


// 최고관리자일 때만 실행
if($config['cf_admin'] != $member['mb_id'] || $is_admin != 'super')
    return;


// 실행일 비교
if(isset($config['cf_optimize_date']) && $config['cf_optimize_date'] >= G5_TIME_YMD)
    return;


자동 탈퇴 코드를 적용하고 즉시 확인하고 싶으면

위 내용 중 실행일 비교 코드를 주석 처리하고 새로고침하면 바로 확인할 수 있습니다.

테스트해보고 자동 탈퇴 기능에 문제가 없다면 실행일 비교 코드는 반드시 다시 원래대로 해 놓으세요.



* 주의 사항

회원 DB를 백업 후 테스트하시고 설정값을 입력할 땐 신중하게 입력하세요.

잘못 탈퇴 처리되면 복구 과정이 번거롭습니다.

댓글목록 +1

댓글목록

profile_image

하나로님의 댓글

하나로 작성일

좋은팁 감사합니다. 궁굼한게있는데
내용보니 관리자가 접속하면 1일 1회 실행이 된다고하는데 관리자가 특정 파일 접속하여 임의로 실행시키거나(1.php 을 페이지 접속해야지 작동되도록)
아니면 30일에 한번 이렇게 실행하게 하려면 저부분에서 어떻게 변형해줘야하나요?
매일 관리자 페이지 접속하는데 뭔가 부작용이 생길꺼같아서..

로그인 후 댓글 작성 가능합니다.

로그인

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

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

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

Copyright gnustudy.com All rights reserved.