1년 이상 미접속 회원을 휴면으로 처리했기 때문에, 장기 미접속자 삭제하는 프로그램도 수정해야 합니다.
장기미접속자는 3년 이상 미접속으로 수정하고,
$g4[member_table]과 $g4[unlogin_table]에서 탈퇴로 마크 합니다.
휴면을 먼저 돌리고, 장기미접속을 돌려야 합니다.
adm/member_delete_unvisited.php 파일을 수정...
<?
$sub_menu = "200100";
include_once("./_common.php");
check_demo();
auth_check($auth[$sub_menu], "d");
if ($is_admin != "super")
alert("회원정리는 최고관리자만 가능합니다.");
$g4[title] = "장기미접속회원 정리";
include_once("./admin.head.php");
echo "<span id='ct'></span>";
include_once("./admin.tail.php");
flush();
echo "<script>document.getElementById('ct').innerHTML += '<p>장기미접속회원 정리중...';</script>\n";
flush();
// 회원 삭제 함수 인클루드.
include_once("$g4[admin_path]/admin.lib.php");
// 개별 삭제
if ($w == 'd' && $mb_id) {
// 데이터
$mb = get_member($mb_id);
// 체크
if (!$mb['mb_id']) {
alert("회원 데이터가 존재하지 않습니다.");
}
// 회원삭제
member_delete($mb_id);
// 이동
goto_url("./member_delete.php");
}
$login_time = 365 * 5; //지난 몇일 동안 접속하지 않은 회원을 삭제할지를 결정?
$today_login_time = date("Y-m-d H:i:s", $g4['server_time'] - ($login_time * 86400));
// $login_time일 이전에 로그인한 회원 출력. 즉 최근 $login_time일안에 로그인한 사람이 없다는 것이다.
$sql = " select * from $g4[unlogin_table] where mb_today_login < '$today_login_time' and mb_level > '1' order by mb_today_login desc ";
$result = sql_query($sql);
$j = 0;
for ($i=0; $row=sql_fetch_array($result); $i++) {
// 회원삭제
member_delete($row['mb_id']);
} // end if
} // end for
?>
</table>
<br><br>
<?
echo "<script>document.getElementById('ct').innerHTML += '<p>총 ".$j."명의 회원이 정리 되었습니다.';</script>\n";
?>
adm/admin.lib.php에서 member_delete 함수 수정...
// 회원 삭제
function member_delete($mb_id)
{
global $config;
global $g4;
$sql = " select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from $g4[unlogin_table] where mb_id= '$mb_id' ";
$mb = sql_fetch($sql);
if ($mb[mb_recommend]) {
$row = sql_fetch(" select count(*) as cnt from $g4[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
// 휴면화 되면서 대부분의 정보는 clear 되지만, 한번 더 확실하게...
if ($mb[mb_level] >= 1) {
$sql = " update $g4[member_table]
set
mb_name = '',
mb_nick = '',
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",$g4['server_time'])." 삭제함\n\n$mb[mb_memo]',
mb_leave_date = '".date("Ymd",$g4['server_time'])."',
mb_profile='',
mb_memo_call='',
mb_memo_no_reply_text='',
mb_1='',
mb_2='',
mb_3='',
mb_4='',
mb_5='',
mb_6='',
mb_7='',
mb_8='',
mb_9='',
mb_10=''
where mb_id = '$mb_id' ";
sql_query($sql);
// 휴면 테이블에서는 mb_name, mb_nick은 clear 하지 않습니다.
$sql = " update $g4[unlogin_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",$g4['server_time'])." 삭제함\n\n$mb[mb_memo]',
mb_leave_date = '".date("Ymd",$g4['server_time'])."',
mb_profile='',
mb_memo_call='',
mb_memo_no_reply_text='',
mb_1='',
mb_2='',
mb_3='',
mb_4='',
mb_5='',
mb_6='',
mb_7='',
mb_8='',
mb_9='',
mb_10=''
where mb_id = '$mb_id' ";
sql_query($sql);
}
... 등등등