글읽기 포인트 시간조절... 정보
글읽기 포인트 시간조절...
본문
글읽을때 포인트를 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, '읽기');
}
이부분을 수정해야될꺼같은데 어떤식으로 해야될지 ..
고수님들 답변 부탁드립니다~
포인트를 사용해서 한번 클릭한 글에 대해서는 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);
}
}
먼저 글을 잃은 회원아이디(번호)와 일시를 저장하여야만합니다.
그래야만 이글을 누가 언제 보았는지 확인됩니다.
즉 "어느게시판에 어느글을 언제 보았는가" 에 대한 자료가 있다면 다음과 같은 방법이 나올수 있는것입니다.
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도 되지 않습니다.
말씀해주신데로 디비 생성하고,
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$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);
}
}
제가 틀린 부분이 있네요..
$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);
}
}