오랫동안 로그인을 하지 않았거나 설정된 기간 뒤에 포인트 소멸 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

오랫동안 로그인을 하지 않았거나 설정된 기간 뒤에 포인트 소멸 정보

오랫동안 로그인을 하지 않았거나 설정된 기간 뒤에 포인트 소멸

본문

skin/member/basic/login_check.skin.php 에 추가해주세요.
(사용하는 스킨이 basic이 아니라면 사용하시는 스킨에 따라 변경해주세요.)

(2008년 12월 24일 오전 10시 15분 수정됨) - $member → $mb
(2009년 1월 8일 오전 11시 30분 수정됨) - 3번 항목 추가



1. 90일 지난 포인트 자동 삭제

if(substr($mb['mb_today_login'], 0, 10) != $g4['time_ymd']) { // 첫로그인일때만

$expire_day = 90; // 삭제될 기간 설정
$expire = date("Y-m-d H:i:s", $g4[server_time]-($expire_day*24*60*60));

// 포인트 내역 삭제 (0포인트 이하 제외)
$sql = " delete from $g4[point_table] where mb_id = '$mb_id' and po_datetime < '$expire' and po_point > 0 ";
sql_query($sql);

}



2. 30일간 로그인 하지않으면 1000포인트 삭감

if(substr($mb['mb_today_login'], 0, 10) != $g4['time_ymd']) { // 첫로그인일때만

$expire_day = 30; // 삭감될 기간 설정
$expire_point = 1000; // 삭감 포인트 설정
$expire = date("Y-m-d H:i:s", $g4[server_time]-($expire_day*24*60*60));

$sql = " select mb_id from $g4[member_table] where mb_id = '$mb_id' and mb_today_login < '$expire' ";
$row = sql_fetch($sql);

if($mb_id == $row[mb_id]) insert_point($mb_id, $expire_point*(-1), "{$expire_day}일 이상 로그인 안 함");

}



3. 30일간 로그인하지 않을 경우 일정 비율로 포인트 삭감

if(substr($mb['mb_today_login'], 0, 10) != $g4['time_ymd']) { // 첫로그인일때만

$expire_day = 30; // 삭감될 기간 설정
$expire_percent = 30; // 삭감될 퍼센티지
$storage_point = 1000; // 보존될 포인트(보존될 포인트 이하면 삭감하지 않음)
$expire = date("Y-m-d H:i:s", $g4[server_time]-($expire_day*24*60*60));

$sql = " select mb_point from $g4[member_table] where mb_id = '$mb_id' and mb_today_login < '$expire' ";
$row = sql_fetch($sql);

if($row[mb_point] > $storage_point) insert_point($mb_id, ceil($row[mb_point]/100*$expire_percent*(-1)), "{$expire_day}일 이상 로그인 안 함");

}


추천
9
  • 복사

댓글 22개

안녕하세요. 요즘 포인트내역때문에 정말 골치아프게 되었는데요,
혹시, 제가 생각하는 포인트 자동 소멸 기능인지 여쭤봅니다.

위에서 말씀하신것처럼, 소멸기간설정에서 3개월로 하면, 이전 데이터 내역은 삭제가 되고,
삭제되는 시점의 합계가 기록되어, 내역만 없어지는것 맞는지요.

이전의 포인트들이 소멸되는건가요? 아니면, 내역만 없어지는건가여?

죄송합니다. 현재 사이트가 규모가 커지다 보니, 포인트 자동 소멸기능은 필요한데,
막상 사용하기가 겁이나서 실례지만, 여쭤봅니다.
1번 팁은 포인트 내역과 포인트가 같이 소멸됩니다.
포인트는 그대로 유지하고 내역만 없애고 싶으시면 관리자 화면에 포인트 관리 화면에서 javascript:point_clear(); 를 주소창에 입력해보세요. ^^
clear_point 였나;;;
여튼.. 입력해보시면 아이디당 최근 50개를 제외한 나머지 내역이 한개로 합쳐집니다. ^^
select mb_id from g4_point where mb_id = 'rkdancl1' and mb_today_login < '2008-11-23 18:52:36'

1054 : Unknown column 'mb_today_login' in 'where clause'

error file : /bbs/login_check.php

이렇게 나오네용 스킨에 추가하는것 맞나용 왜안되느지모르겠습니다
이렇게 지정된 포인트 말고,
가지고 있는 포인트의 몇퍼센트(예를들어 30%) 를 줄인다고 하면 어디를 어떻게 손봐야 하는지 아시는 분 가르쳐 주세요 ㅠ
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

// 자신만의 코드를 넣어주세요.
?>

if(substr($mb['mb_today_login'], 0, 10) != $g4['time_ymd']) { // 첫로그인일때만

$expire_day = 30; // 삭감될 기간 설정
$expire_percent = 30; // 삭감될 퍼센티지
$storage_point = 1000; // 보존될 포인트(보존될 포인트 이하면 삭감하지 않음)
$expire = date("Y-m-d H:i:s", $g4[server_time]-($expire_day*24*60*60));

$sql = " select mb_point from $g4[member_table] where mb_id = '$mb_id' and mb_today_login < '$expire' ";
$row = sql_fetch($sql);

if($row[mb_point] > $storage_point) insert_point($mb_id, ceil($row[mb_point]/100*$expire_percent*(-1)), "{$expire_day}일 이상 로그인 안 함");

}

입력하는것이 맛나요?
이렇게 해보니 로그인할때 if(substr($mb['mb_today_login'], 0, 10) != $g4['time_ymd']) { // 첫로그인일때만

$expire_day = 30; // 삭감될 기간 설정
$expire_percent = 30; // 삭감될 퍼센티지
$storage_point = 1000; // 보존될 포인트(보존될 포인트 이하면 삭감하지 않음)
$expire = date("Y-m-d H:i:s", $g4[server_time]-($expire_day*24*60*60));

$sql = " select mb_point from $g4[member_table] where mb_id = '$mb_id' and mb_today_login < '$expire' ";
$row = sql_fetch($sql);

if($row[mb_point] > $storage_point) insert_point($mb_id, ceil($row[mb_point]/100*$expire_percent*(-1)), "{$expire_day}일 이상 로그인 안 함");

}

그냥 쭉 보였다 살아지는데 ㅠ
하나만 여쭈어볼께요
포인트 소멸 했다는 기록을 포인트 내역에 기록할수 있을까요?

예를 들어 포인트 소멸기간을 1년 365일로 했을때

오늘 로그인을 하면 일년전 데이터가 사라지잖아요

데이터는 그대로 있고 소멸되는 기록을 하는데 해당 "데이터명+소멸" "-포인트" 이렇게 할수는 없을까요??
© SIRSOFT
현재 페이지 제일 처음으로