특정페이지 접속때 특정기간동안은 포인트 차감안되는 방법 > 그누4 질문답변

그누4 질문답변

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

특정페이지 접속때 특정기간동안은 포인트 차감안되는 방법 정보

특정페이지 접속때 특정기간동안은 포인트 차감안되는 방법

본문

아래는 하루에 한번 접속시 포인트 차감되는법으로  헐랭이님이 가르쳐 주신 방법인데요
<?
include_once("./_common.php");
if ($member['mb_id']) {
$sql = " select count(*) as cnt from $g4[point_table]
                  where mb_id = '$member[mb_id]'
                    and po_rel_table = '-point'
                    and po_rel_id = '$member[mb_id]'
                    and po_rel_action = '$g4[time_ymd]' ";
        $row = sql_fetch($sql);
  if ($row[cnt]) {
  alert_close("하루 한번만 접속이 가능 합니다.");
 }else {
  insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
  }
 } else {
  alert_close("로그인 하세요..");

 ?>
 
위와 같이 하면 하루에 한번씩 포인트가 차감됩니다~
 
하루에 한번이 아닌 특정 기간을 정해서 포인트가 그 기간동안에는 1번만
차감되는 방법이 궁금합니다~

댓글 전체

녹슨 머리를 굴려 봤습니다.ㅋㅋ 참고로 테스트는 안해 봤어요.

<?
include_once("./_common.php");
if ($member['mb_id']) {
//현재 페이지에 들어간 회원의 현재 페이지에서 발생한 마지막 포인트 리스트를 한개만 가져온다. -point <- 이게 페이지 인식이다.

$sql_common = " from $g4[point_table] where po_rel_table = '-point' and mb_id = '$member[mb_id]' ";
$sql_order = " order by po_id desc ";
$sql = " select *
          $sql_common
          $sql_order
          limit 1 ";
$result = sql_query($sql);

//마지막 날짜에서 몇일후?
//날자지정
 $sdatam ="3";
 // if ($result[po_rel_action] <= $g4[time_ymd] - ($sdatam * 86400)) {
 if ($result[po_rel_action]<= date("Y-m-d", $g4[server_time] - ($sdatam * 86400))) {
  alert_close("$sdatam  일에 한번만 접속이 가능 합니다.");
 }else {
  insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
  }
 } else {
  alert_close("로그인 하세요..");

?>
if ($result[po_rel_action] <= $g4[time_ymd] - ($sdatam * 86400)) { 를
아래처럼 해야 할듯 합니다.
if ($result[po_rel_action]<= date("Y-m-d", $g4[server_time] - ($sdatam * 86400))) {
기본으로 리스트가 1개라도 존재 하지 않으면 $result[po_rel_action]값이 0 이므로
비교 연산에서 무조건 걸리게 되므로 에러가 발생이 되네요.^^

아래의 코드로 테스트 해보세요. 테스트는
현재 페이지에서 포인트 차감이된 리스트가 한개도 없는 회원과
리스트가 1개이상 존재하는 회원으로 테스트를 해보세요.

<?
include_once("./_common.php");
if ($member['mb_id']) {
//현재 페이지에 들어간 회원의 현재 페이지에서 발생한 마지막 포인트 리스트를 한개만 가져온다. -point <- 이게 페이지 인식이다.

$sql_common = " from $g4[point_table] where po_rel_table = '-point' and mb_id = '$member[mb_id]' ";
$sql_order = " order by po_id desc ";
$sql2 = " select count(*) as cnt $sql_common ";
$row = sql_fetch($sql2);
$total_count = $row[cnt];
$sql = " select *
          $sql_common
          $sql_order
          limit 1 ";
$result = sql_query($sql);
//마지막 날짜에서 몇일후?
//날자지정
 $sdatam ="3";
 if ($total_count > 0){
 // if ($result[po_rel_action] <= $g4[time_ymd] - ($sdatam * 86400)) {
 if ($result[po_rel_action] <= date("Y-m-d", $g4[server_time] - ($sdatam * 86400))) {
  alert_close("$sdatam  일에 한번만 접속이 가능 합니다.");
 }else {
  insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
  }
 } else {
  insert_point($member['mb_id'], -10, "포인트 감소", "-point", $member['mb_id'], $g4['time_ymd']);
 }
 } else {
  alert_close("로그인 하세요..");

?>
이궁 감사드려요. 오늘은 급한일때문에 테스트를 못해 보네요~
내일 오전중으로 테스트 하고 댓글 달아 놓겠습니다. 관심가지고 끝까지 답변 주셔서
너무 감사드립니다~
네~ 아주 잘 됩니다~ 감사합니다~

리스트에 없는 아이디는 바로 되구요!!
어제 하루에 한번 차감된 포인트리스트에 존재한 아이디는 현재 3일 날짜로 대체되어 메세지가 뜹니다~ 감사합니다~
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT