그누보드 4 휴면회원처리 (2) - 관리자

불당   
   조회 38872   추천 0     비추천 0    

member_list.php (11.3K), Down : 2, 2015-09
member_delete_unlogin.php (2.2K), Down : 1, 2015-09

1년이 넘은 회원들에게 휴면회원 해지를 요구하는 메일이나 문자를 보낸다고 응하는 경우가 얼마나 될까요?

회원을 유지하고 싶은 사이트라면, 무리해서라도 메일을 보내겠지만,

그렇지 않은 경우라면 굳이... 머리 아프게 스패밍할 필요는 없을거라 생각은 하지만... 법이란게...

 

관리자에서 매월 또는 분기에 자체 규정에 의해서 휴면회원 정보를 정리합니다.

정리를 하는 경우에는 일지에 남기거나 DB에 기록해 두구요.

휴면 회원정리를 매일 같이 하지는 않아도 되지만, 규정은 확실해야 합니다.

 

휴면회원 처리는 심플 합니다.

관리자 페이지에서 휴면회원 전환 프로그램만 실행하면 됩니다.

 

해당 프로그램은 마지막 로그인 정보를 가지고

회원정보를 g4_member_unlogin으로 복사하고

g4_member의 필드를 reset 합니다.

 

excel 등으로 파일화 하는 경우에는 risk가 몇백만개라고 생각합니다.

누군가 쉽게 주워갈 수도 있기 때문입니다.

DB의 테이블로 분리하는 것이 더 바람직 합니다.

 

adm/member_list.php

 

// 휴면 회원수
$sql = " select count(*) as cnt
         $sql_common
         $sql_search
            and mb_unlogin <> '0000-00-00 00:00:00'
         $sql_order ";
$row = sql_fetch($sql);
$unlogin_count = $row[cnt];

 

 

<script type="text/javascript">
function member_delete_unlogin()
{
    if (confirm("1년이상 접속하지 않은 회원을 정리합니다\n\n진행하시겠습니까?"))
    {
        document.location.href = "./member_delete_unlogin.php?ok=1";
    }
}
</script>

 

 

      <a href="javascript:member_delete_unlogin();">휴면회원정리</a>

 

 

adm/member_delete_unlogin.php

회원정보 내용은 지우고 비번은 md5로 한번 더 암호화 해버립니다.

 

<?
$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();

$login_time = "365"; //지난 몇일 동안 접속하지 않은 회원을 삭제할지를 결정?
$today_login_time = date("Y-m-d H:i:s", $g4['server_time'] - ($login_time * 86400));

// $login_time일 이전에 로그인한 회원 출력. 즉 최근 $login_time일안에 로그인한 사람이 없다는 것이다.
$sql = " select * from $g4[member_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++) {

    // mb_unlogin을 현재 시점으로 update
    $sql = " update $g4[member_table] set mb_unlogin = '$g4[time_ymdhis]' where mb_id = '$row[mb_id]' ";
    sql_query($sql);

    // unlogin 테이블로 데이터를 복사
    $sql = " replace $g4[unlogin_table] select * from $g4[member_table] where mb_id = '$row[mb_id]' ";
    sql_query($sql);

    // member_table을 reset
    $sql = " update $g4[member_table]
              set
                  mb_password = md5('" . $row[mb_password] . "'),
                  mb_name = '',
                  mb_nick = '',
                  mb_email = '',
                  mb_password_q = '',
                  mb_password_a = '',
                  mb_sex = '',
                  mb_birth = '',
                  mb_tel = '',
                  mb_hp = '',
                  mb_zip1 = '',
                  mb_zip2 = '',
                  mb_addr1 = '',
                  mb_addr2 = '',
                  mb_signature = '',
                  mb_login_ip = '',
                  mb_profile = ''
          where mb_id = '$row[mb_id]'
    ";
    sql_query($sql);

} // end for
?>
</table>

<br><br>

<?
echo "<script>document.getElementById('ct').innerHTML += '<p>총 ".$i."명의 회원이 정리 되었습니다.';</script>\n";
?>

 

- opencode.co.kr -
크리에이터링크
무료 홈페이지 빌더, html을 몰라도 직접 만들 수 있는 반응형 웹사이트
그누보드4 위시켓
30,000명의 전문 개발자&개발팀이 있는 곳, 개발 프로젝트 의뢰는 위시켓에서!
알지오 그누보드4
IT전문교육 실무중심 그누보드4, 원격평생교육시설 정식인가.
파워링크 AD   클릭초이스등록
불당 2015-09
* 프로그램의 실행이 쭉~ 계속되는 오류가 있는데, 원인은 찾기 귀챦아서 방치 합니다. -.-...
수정 위치를 참조하게 첨부를 붙입니다.
그누4 원본과는 차이가 있습니다.
1111 2015-10
replace g4_unlogin select * from g4_member where mb_id = 'test'
1136 : Column count doesn't match value count at row 1
error file : /adm/member_delete_unlogin.php

"휴면회원 정리" 를 누르니 위에 같은 에러가 나는데 어떻게 해야 될지 잘 모르겠네요 ㅠㅠ
     
불당 2015-10
g4_member와 g4_member_unlogin의 필드 갯수가 다른 것 입니다.
두개의 테이블은 필드의 이름/타입/순서가 동일해야 합니다.

귀챦아서, replace를 썼는데... 좀 생각해봐야 할 것 같네요.
1111 2015-10
갑사합니다. 계정에 초기화하고 새로 설치하니 하니 되네요 ^^
     
불당 2015-10
PDO 적용이 어느정도 마무리 되면 개선 해야 할 것 같네요...


제목Page 2/28
2015-10   2733   불당
2015-10   2680   불당
2015-10   2477   불당
2015-10   43425   불당
2015-10   2770   불당
2015-10   2740   불당
2015-10   2983   불당
2015-09   2911   불당
2015-09   3666   불당
2015-09   3301   불당
2015-09   3203   불당
2015-09   39807   불당
2015-09   38873   불당
2015-09   40829   불당
2014-06   86054   불당
2014-04   6927   불당
2014-04   6865   불당
2014-04   6857   불당
2014-03   11181   불당
2014-03   9121   불당