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

불당   
   조회 42999   추천 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 -
알지오 그누보드
IT전문교육 실무중심 그누보드, 원격평생교육시설 정식인가.
초특가 그누보드 원에잇
정품립텍, 이월상품 최대93%할인에 추가 에누리, 무이자혜택에 지원금20만원까지
그누보드 로바디자인
홈페이지 제작의 모든 것! 투명한 가격, 살아있는 감각, 그누보드 완벽 해결.
파워링크 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   3239   불당
2015-10   3142   불당
2015-10   2954   불당
2015-10   47654   불당
2015-10   3271   불당
2015-10   3275   불당
2015-10   3444   불당
2015-09   3456   불당
2015-09   4238   불당
2015-09   3851   불당
2015-09   3724   불당
2015-09   44455   불당
2015-09   43000   불당
2015-09   45352   불당
2014-06   91364   불당
2014-04   7617   불당
2014-04   7468   불당
2014-04   7480   불당
2014-03   11800   불당
2014-03   9931   불당