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

불당   
   조회 61746   추천 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 -
초특가 그누보드 원에잇
스노우보드 인기 쇼핑몰,이월제품 올킬 특가, 지원금 20만원, 12개월 할부
세련된 홈페이지 제작전문
어디서도 본적없는 스마트한 제작방식 / 저가 & 고퀄리티 홈페이지 제작
24시상담-웹/모바일/앱개발
홈페이지, 쇼핑몰, 모바일, 앱개발, 디자인, 마케팅, ERP시스템 구축
파워링크 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 적용이 어느정도 마무리 되면 개선 해야 할 것 같네요...


처음으로  (15)
제목
06-02   5366   불당
2016-08   29466   불당
2016-07   39174   불당
2016-06   27272   불당
2016-05   44109   불당
2016-05   28936   불당
2015-11   47934   불당
2015-10   65710   불당
2015-09   64626   불당
2015-09   61747   불당
2015-09   64832   불당
2015-05   79998   불당
2014-06   114501   불당
2014-05   102023   불당
2011-12   185547   불당