30일동안 미로긴 회원에게 포인트 차감 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

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포인트씩 차감되고...이렇게~!
  • 복사

댓글 전체

위에 있는 코드는 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);

}
© SIRSOFT
현재 페이지 제일 처음으로