채택완료

그누보드 게시글 3개월 혹은 6개월 동안.

2020-09-10 (목) 15:55:13 2,828

3개월 혹은 6개월, 1년 동안에 모든 게시글 하나도 없을 때, 그리고 회원등급 3등급 아래만..

자동탈퇴처리하려고 하는데요.

예제소스를 찾아볼수 없어서 문의합니다.

자세히 알려주시면 고맙겠습니다 _0_

읽어주셔서 감사합니다.

|

답변 1개 / 댓글 7개

채택된 답변
+20 포인트

1. 게시물 등록일 기록 -
사용스킨이 많지않다면 스킨폴더 write_update.skin.php 생성 , 스킨이 많다면 bbs/write_update.php 끝 부분 if 이전에 추가

if(!$w && $member[mb_level]==2) sql_query("update {$g5['member_table']} set mb_1='".G5_TIME_YMD."' where mb_id='{$member['mb_id']}' ");

2. 탈퇴 판단/처리 - extend/user.config.php에 추가

$today = G5_TIME_YMD;
$limit_date = date("Y-m-d", strtotime("$today -3 month"); //<----- 3개월

if($config['cf_1'] !=$today  ){ //하루 한번만 체크
  sql_query("update {$g5['config_table'] set cf_1 = '$today' ");
  $row =sql_fetch("select group_concat(mb_id) as id from {$g5['member_table']} where mb_level=2 and mb_1 < '$limit_date' ");
 $idArr = explode(',', $row['id']);
 foreach($idArr as $mbid) member_delete($mbid);

}

답변에 대한 댓글 7개

조심스럽게 문의하기에.. ㅠ.ㅠ

우선 답변해주셔서 감사합니다.

이거 가지고 한동안 테스트해봤는데요...


한달 전 게시글 한개 있음을 불고하고 탈퇴처리하지않고 회원등급1 되고

이멜 없어지고, 포인트 0 으로 되네요.. ㅠ.ㅠ
위 코드는 적용시점 이후 게시물에만 적용됩니다
이미 게시물이 있다면 적용하기 어렵겠네요

이미 게시물이 있다면 회원마다 이전 게시물 등록일을 체크 해서 마지막 등록일자를 기록하는 코드를 만들어 한번 실행해 주면 되긴 하겠는데.....
아~ 그렇군요. ㅠ.ㅠ

그러면 일단 extend 넣은거 취소하고

bbs/write_update.php 부터

if(!$w && $member[mb_level]==2) sql_query("update {$g5['member_table']} set mb_1='".G5_TIME_YMD."' where mb_id='{$member['mb_id']}' ");

만 등록해서 석달 지나면

extend/user.config.php

다시 넣으면 될까요?
그렇습니다//그렇게 하면 됩니다
그렇게 했는데..

딱 하나 문제는 새로 들어온 회원이 가입하자마자.. 글쓰기 없이 하루 지나고 나서

포인트 없어지고 1등급로 되어 버리네요. ㅠ.ㅠ

자꾸 질문해서 죄송합니다..
$row =sql_fetch("select group_concat(mb_id) as id from {$g5['member_table']} where mb_level=2 and mb_1 < '$limit_date' ");
---> 수정하세요. 가입 후 3개월이 지난 회원을 대상으로 한다라는 조건을 추가해야겠군요

$row =sql_fetch("select group_concat(mb_id) as id from {$g5['member_table']} where mb_level=2 and mb_1 < '$limit_date' and mb_datetime < '$limit_date 00:00:00' ");
이렇게 하면 되는군요. 번거롭게 해드려서 죄송하구요.

감사합니다. ㅠ.ㅠ

답변을 작성하려면 로그인이 필요합니다.