특정페이지 접속때 특정기간동안은 포인트 차감안되는 방법 정보
특정페이지 접속때 특정기간동안은 포인트 차감안되는 방법본문
아래는 하루에 한번 접속시 포인트 차감되는법으로 헐랭이님이 가르쳐 주신 방법인데요
<?
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("로그인 하세요..");
}
?>
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("로그인 하세요..");
}
?>
<?
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))) {
아래처럼 해야 할듯 합니다.
if ($result[po_rel_action]<= date("Y-m-d", $g4[server_time] - ($sdatam * 86400))) {
포인트 차감은 안되고 메세지 박스 3일에 한번만 접속이 가능합니다. 라는 말만 나오네요~

수정된걸로 해보실래요. 지난 날짜에서 - 이부분 때문에 문제가 생긴듯 합니다.
수정된것으로 해보아도 마찬가지에요~ 이궁~ 바쁘신데 죄송해요~

흑흑 ㅡ.ㅡ;
잠시만 기다려 주세요. 제가 직접 테스트를 해본후 알려 드리겠습니다.
잠시만 기다려 주세요. 제가 직접 테스트를 해본후 알려 드리겠습니다.
네~ 알겠습니다~

기본으로 리스트가 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("로그인 하세요..");
}
?>
비교 연산에서 무조건 걸리게 되므로 에러가 발생이 되네요.^^
아래의 코드로 테스트 해보세요. 테스트는
현재 페이지에서 포인트 차감이된 리스트가 한개도 없는 회원과
리스트가 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일 날짜로 대체되어 메세지가 뜹니다~ 감사합니다~
리스트에 없는 아이디는 바로 되구요!!
어제 하루에 한번 차감된 포인트리스트에 존재한 아이디는 현재 3일 날짜로 대체되어 메세지가 뜹니다~ 감사합니다~