글읽기 포인트 시간조절... > 그누4 질문답변

그누4 질문답변

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

글읽기 포인트 시간조절... 정보

글읽기 포인트 시간조절...

본문

글읽을때 포인트를 100으로 설정 했습니다.

포인트를 사용해서 한번 클릭한 글에 대해서는 12시간만 적용을 시켜주고 싶은데,
어떻게 건드려야될지 모르겠어서 질문 드립니다.ㅠ

if ($board[bo_read_level] > 1) {
                if ($member[mb_point] + $board[bo_read_point] < 0)
                    alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트 충전 후 다시 글읽기 해 주십시오.");

                insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
            }

이부분을 수정해야될꺼같은데 어떤식으로 해야될지 ..
고수님들 답변 부탁드립니다~

댓글 전체

위 스크립트만으로는 제어가 힘드실겁니다..
먼저 글을 잃은 회원아이디(번호)와 일시를 저장하여야만합니다.
그래야만 이글을 누가 언제 보았는지 확인됩니다.
즉 "어느게시판에 어느글을 언제 보았는가" 에 대한 자료가 있다면 다음과 같은 방법이 나올수 있는것입니다.


CREATE TABLE `point_view` (
  `num` int(11) NOT NULL auto_increment,
  `bo_table` varchar(20) NOT NULL default '',
  `wr_id` int(11) NOT NULL default '0',
  `mb_id` varchar(255) NOT NULL default '',
  `reg_date` int(11) NOT NULL default '0',
  PRIMARY KEY  (`num`),
  KEY `mb_id` (`mb_id`)
);



$sql = " select * from point_view where mb_id = '$member[mb_id]' and bo_table='$bo_table' and wr_id = '$wr_id'";
$row = sql_fetch($sql);

$reg_date = $row[reg_date] + 60*60*12;


if($row[no] && $reg_date > $g4[server_time]) {


if ($board[bo_read_level] > 1) {
                if ($member[mb_point] + $board[bo_read_point] < 0)
                    alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트 충전 후 다시 글읽기 해 주십시오.");

                insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');

//회원정보와 시간을 기록
$sql = " insert into point_view set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]',  reg_date = '$g4[server_time]'";
sql_query($sql);

 
}


}
우선 감사합니다..
말씀해주신데로 디비 생성하고,

    // 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
    $ss_name = "ss_view_{$bo_table}_{$wr_id}";
    if (!get_session($ss_name))
    {
        sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");

        // 자신의 글이면 통과
        if ($write[mb_id] && $write[mb_id] == $member[mb_id])
            ;
        else
        {
            $sql = " select * from point_view where mb_id = '$member[mb_id]' and bo_table='$bo_table' and wr_id = '$wr_id'";
$row = sql_fetch($sql);

$reg_date = $row[reg_date] + 60*60*12;


if($row[no] && $reg_date > $g4[server_time]) {

if ($board[bo_read_level] > 1) {
if ($member[mb_point] + $board[bo_read_point] < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기가 불가능합니다.\\n\\n포인트 충전 후 다시 이용 해 주세요.");

insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');

//회원정보와 시간을 기록
$sql = " insert into point_view set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]',  reg_date = '$g4[server_time]'";
sql_query($sql);
}
}
        }

        set_session($ss_name, TRUE);
    }

이런식으로 처리했는데, insert_point도 되지 않습니다.
예시는든것이였습니다만.. ^^
제가 틀린 부분이 있네요..

$sql = " select * from point_view where mb_id = '$member[mb_id]' and bo_table='$bo_table' and wr_id = '$wr_id'";
$row = sql_fetch($sql);

특정 게시판에 특정글을 보았을때. $row[num] 값이 있을경우이고..
글을 보지 않았을때는 $row[num] 값이 없는것이죠.
또한 글을 본 시점으로 시간이 기록됩니다.
하여 $reg_date = $row[reg_date] + 60*60*12; 본시점에서 12시간을 추가해주고 현재시간과 비교하면 되는것이구요.
다음과 같이 정의할수 있습니다.



$sql = " select * from point_view where mb_id = '$member[mb_id]' and bo_table='$bo_table' and wr_id = '$wr_id'";
$row = sql_fetch($sql);

if($row[no]) $reg_date = $row[reg_date] + 60*60*12;
else $reg_date = $g4[server_time] - 60;

if($reg_date < $g4[server_time]) {

if ($board[bo_read_level] > 1) {
if ($member[mb_point] + $board[bo_read_point] < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기가 불가능합니다.\\n\\n포인트 충전 후 다시 이용 해 주세요.");

insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');

//회원정보와 시간을 기록
$sql = " insert into point_view set bo_table = '$bo_table', wr_id = '$wr_id', mb_id = '$member[mb_id]',  reg_date = '$g4[server_time]'";
sql_query($sql);
}

}
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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