30일동안 미로긴 회원에게 포인트 차감 정보
30일동안 미로긴 회원에게 포인트 차감본문
여기에... skin/member/basic/login_check.skin.php
<?
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}일 이상 로그인 안 함");
}
입력하는것이 맛나요?
이렇게 하니깐 안되서요... ㅠ
혹시 다른방법 없나요?
즉, 30일동안 로긴하지 않은 회원은 매일매일 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}일 이상 로그인 안 함");
}
입력하는것이 맛나요?
이렇게 하니깐 안되서요... ㅠ
혹시 다른방법 없나요?
즉, 30일동안 로긴하지 않은 회원은 매일매일 30포인트씩 차감되고...이렇게~!
댓글 전체
위에 있는 코드는 30일 지나서 해당 회원이 로그인 하면 보유하고 있는 포인트에서
30% 가 삭감되는 코드입니다. 상당히 엄한 운영방침이군요. - -;
30일이 경과되면 매일매일 30포인트씩 차감되는 방식을 원하시는 것
같은데요. 그렇다면 하루 한번씩 실행되는 코드로 처리되는게 맞는 것 같습니다.
다음예를 참고하세요.
서두에 point_minus 테이블에서 minus_date 가 오늘인 것을
부른 것은 하루에 한번만 실행되게 하기 위한 것입니다.
$sql = "select count(*) from point_minus minus_date = curdate() ";
$resultCount = mysql_query($sql);
$rowCount = mysql_fetch_array($resultCount);
if($rowCount == 0) {
$sql = "select mb_id, mb_point from g4_member where to_days( curdate() ) - to_days(mb_today_login) > 30";
$result = mysql_query($sql);
$minusCount = 0;
while( $row = mysql_fetch_array($result) ) {
if($row[mb_point] > 1000) {
insert_point($row[mb_id], -30, "30일이상 비로그인 삭감", "@login", $g4['time_ymd']);
$minusCount++;
}
}
$sql = "insert into point_minus (minus_date, minus_count) values (curdate(), '$minusCount') ";
mysql_query($sql);
}
30% 가 삭감되는 코드입니다. 상당히 엄한 운영방침이군요. - -;
30일이 경과되면 매일매일 30포인트씩 차감되는 방식을 원하시는 것
같은데요. 그렇다면 하루 한번씩 실행되는 코드로 처리되는게 맞는 것 같습니다.
다음예를 참고하세요.
서두에 point_minus 테이블에서 minus_date 가 오늘인 것을
부른 것은 하루에 한번만 실행되게 하기 위한 것입니다.
$sql = "select count(*) from point_minus minus_date = curdate() ";
$resultCount = mysql_query($sql);
$rowCount = mysql_fetch_array($resultCount);
if($rowCount == 0) {
$sql = "select mb_id, mb_point from g4_member where to_days( curdate() ) - to_days(mb_today_login) > 30";
$result = mysql_query($sql);
$minusCount = 0;
while( $row = mysql_fetch_array($result) ) {
if($row[mb_point] > 1000) {
insert_point($row[mb_id], -30, "30일이상 비로그인 삭감", "@login", $g4['time_ymd']);
$minusCount++;
}
}
$sql = "insert into point_minus (minus_date, minus_count) values (curdate(), '$minusCount') ";
mysql_query($sql);
}