포인트 적립 제한하기 방법을 알고 싶습니다. 정보
포인트 적립 제한하기 방법을 알고 싶습니다.본문
요즘 질문을 많이 하네요.
작업이 막바지라 마음이 조급한 탓인가 봅니다.(공부를 해야 하는데..)
한 회원이 적립할 수 있는 포인트를 제한하고 싶습니다.
그누처럼 "최대 100,000 포인트까지만 적립됩니다." 이렇게요.
도움을 부탁 드립니다.
꾸벅
작업이 막바지라 마음이 조급한 탓인가 봅니다.(공부를 해야 하는데..)
한 회원이 적립할 수 있는 포인트를 제한하고 싶습니다.
그누처럼 "최대 100,000 포인트까지만 적립됩니다." 이렇게요.
도움을 부탁 드립니다.
꾸벅
댓글 전체

lib/common.lib.php를 보시면
insert_point()
라는 함수가 있습니다.
거기에 적당한 곳에....
if($member[mb_point] <= 100000){
포인트 안줌
}else{
포인트 줌
}
이런식으로 하시던가....
해당코드를 적절히 포인트가 발생하는 시점에 사용하시면 됩니다.
insert_point()
라는 함수가 있습니다.
거기에 적당한 곳에....
if($member[mb_point] <= 100000){
포인트 안줌
}else{
포인트 줌
}
이런식으로 하시던가....
해당코드를 적절히 포인트가 발생하는 시점에 사용하시면 됩니다.
그누에서 많이 활동하시는 분이시네요.^^
좋은 답변 감사합니다.
적용해보겠습니다.
꾸벅
좋은 답변 감사합니다.
적용해보겠습니다.
꾸벅
아이구.. 해볼려고 열었더니 어디를 수정해야 할지 모르겠네요
귀찮으시더라도 소스에서 지적을 좀 해주실 수 있으런지요?
부탁드려 봅니다.
function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='')
{
global $config;
global $g4;
global $is_admin;
// 포인트 사용을 하지 않는다면 return
if (!$config[cf_use_point]) { return 0; }
// 포인트가 없다면 업데이트 할 필요 없음
if ($point == 0) { return 0; }
// 회원아이디가 없다면 업데이트 할 필요 없음
if ($mb_id == "") { return 0; }
$mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
if (!$mb[mb_id]) { return 0; }
// 이미 등록된 내역이라면 건너뜀
if ($rel_table || $rel_id || $rel_action)
{
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$mb_id'
and po_rel_table = '$rel_table'
and po_rel_id = '$rel_id'
and po_rel_action = '$rel_action' ";
$row = sql_fetch($sql);
if ($row[cnt])
return -1;
}
// 포인트 건별 생성
$sql = " insert into $g4[point_table]
set mb_id = '$mb_id',
po_datetime = '$g4[time_ymdhis]',
po_content = '".addslashes($content)."',
po_point = '$point',
po_rel_table = '$rel_table',
po_rel_id = '$rel_id',
po_rel_action = '$rel_action' ";
sql_query($sql);
// 포인트 내역의 합을 구하고
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
$row = sql_fetch($sql);
$sum_point = $row[sum_po_point];
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
sql_query($sql);
return 1;
}
// 포인트 삭제
function delete_point($mb_id, $rel_table, $rel_id, $rel_action)
{
global $g4;
$result = false;
if ($rel_table || $rel_id || $rel_action)
{
$result = sql_query(" delete from $g4[point_table]
where mb_id = '$mb_id'
and po_rel_table = '$rel_table'
and po_rel_id = '$rel_id'
and po_rel_action = '$rel_action' ", false);
// 포인트 내역의 합을 구하고
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
$row = sql_fetch($sql);
$sum_point = $row[sum_po_point];
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
$result = sql_query($sql);
}
return $result;
}
귀찮으시더라도 소스에서 지적을 좀 해주실 수 있으런지요?
부탁드려 봅니다.
function insert_point($mb_id, $point, $content='', $rel_table='', $rel_id='', $rel_action='')
{
global $config;
global $g4;
global $is_admin;
// 포인트 사용을 하지 않는다면 return
if (!$config[cf_use_point]) { return 0; }
// 포인트가 없다면 업데이트 할 필요 없음
if ($point == 0) { return 0; }
// 회원아이디가 없다면 업데이트 할 필요 없음
if ($mb_id == "") { return 0; }
$mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
if (!$mb[mb_id]) { return 0; }
// 이미 등록된 내역이라면 건너뜀
if ($rel_table || $rel_id || $rel_action)
{
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$mb_id'
and po_rel_table = '$rel_table'
and po_rel_id = '$rel_id'
and po_rel_action = '$rel_action' ";
$row = sql_fetch($sql);
if ($row[cnt])
return -1;
}
// 포인트 건별 생성
$sql = " insert into $g4[point_table]
set mb_id = '$mb_id',
po_datetime = '$g4[time_ymdhis]',
po_content = '".addslashes($content)."',
po_point = '$point',
po_rel_table = '$rel_table',
po_rel_id = '$rel_id',
po_rel_action = '$rel_action' ";
sql_query($sql);
// 포인트 내역의 합을 구하고
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
$row = sql_fetch($sql);
$sum_point = $row[sum_po_point];
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
sql_query($sql);
return 1;
}
// 포인트 삭제
function delete_point($mb_id, $rel_table, $rel_id, $rel_action)
{
global $g4;
$result = false;
if ($rel_table || $rel_id || $rel_action)
{
$result = sql_query(" delete from $g4[point_table]
where mb_id = '$mb_id'
and po_rel_table = '$rel_table'
and po_rel_id = '$rel_id'
and po_rel_action = '$rel_action' ", false);
// 포인트 내역의 합을 구하고
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '$mb_id' ";
$row = sql_fetch($sql);
$sum_point = $row[sum_po_point];
// 포인트 UPDATE
$sql = " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '$mb_id' ";
$result = sql_query($sql);
}
return $result;
}

// 회원아이디가 없다면 업데이트 할 필요 없음
if ($mb_id == "") { return 0; }
$mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
if (!$mb[mb_id]) { return 0; }
이부분을
// 회원아이디가 없다면 업데이트 할 필요 없음
if ($mb_id == "") { return 0; }
$mb = sql_fetch(" select * from $g4[member_table] where mb_id = '$mb_id' ");
if (!$mb[mb_id]) { return 0; }
if($mb[mb_point] >= 100000){ return 0; }
이렇게 처리하시면
일단 포인트 적립은 되지 않습니다.
if ($mb_id == "") { return 0; }
$mb = sql_fetch(" select mb_id from $g4[member_table] where mb_id = '$mb_id' ");
if (!$mb[mb_id]) { return 0; }
이부분을
// 회원아이디가 없다면 업데이트 할 필요 없음
if ($mb_id == "") { return 0; }
$mb = sql_fetch(" select * from $g4[member_table] where mb_id = '$mb_id' ");
if (!$mb[mb_id]) { return 0; }
if($mb[mb_point] >= 100000){ return 0; }
이렇게 처리하시면
일단 포인트 적립은 되지 않습니다.
감사합니다.
아직 저 포인트에 도달한 회원이 없어서 테스트는 안되지만 잘 되겠지요.^^
아직 저 포인트에 도달한 회원이 없어서 테스트는 안되지만 잘 되겠지요.^^

10만 대신에 500으로 바꾸어서 테스트 해 볼 수 있습니다 ....
앗! 그런 방법이 있었네요.
역시 머리가..ㅎㅎ
고맙습니다.
역시 머리가..ㅎㅎ
고맙습니다.