도와주세요~ 포인트 차감관련 정보
도와주세요~ 포인트 차감관련본문
게시글 볼때 포인트 차감되는 경우... 한번 읽은 글은 포인트 차감되지 않습니다.
하지만, 현재 보유한 포인트가 차감될 포인트보다 작으면 한번 읽은 글이더라도
포인트가 모자란다는 경고 메세지가 뜨더군요~ . 이거 오류 아닌가요?
그래서.. 그누보드4/bbs/board.php 를 찾았습니다. 이곳 수정하면 고쳐질거라 생각하고
이틀밤을 씨름하다가 이곳에 글을 올립니다. 함 도와주세요.. ㅠ..ㅠ
---------------------------------------------------------------------------------
@문제점 : 현재 보유한 포인트가 차감될 포인트보다 작을때 이미 읽은 글임에도 불구하고
포인트부족하다고 경고창이 뜸
@ 현상 : 처음 로그인상태에서 게시글 열람후 다시 게시글 열람하면 포인트가 부족하여도 게시글 열람이 가능하나
게시글 열람후 로그아웃한후에 다시 로그인하여 게시글 열람할 경우 위의 현상이 발생함.
@ 본인의 생각 : 그누보드4/bbs/board.php 부분수정요망.... 별별짓을 다해봄...ㅠ..ㅠ
----------------------------------------------------------------------------------
함 도와주십쇼~ 부탁드림다..
함 도와주십쇼~ 부탁드림다..
함 도와주십쇼~ 부탁드림다..
함 도와주십쇼~ 부탁드림다..
-----------------------------------------------------------------------------------
아래는 그누보드4/bbs/board.php 119번째 라인 부근입니다...
-----------------------------------------------------------------------------------
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
$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 {
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1)
{
if ($member[mb_point] + $board[bo_read_point] < 0)
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 {
// 회원이상 글읽기가 가능하다면
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, '읽기');
}
}
set_session($ss_name, TRUE);
}
}
}
}
set_session($ss_name, TRUE);
}
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
else
{
if ($member[mb_level] < $board[bo_list_level])
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if (!$page) $page = 1;
$g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
}
댓글 전체
현재 그누보드가 그렇게 작동되게 제작되었으니 오류라 하진 좀 거시기 합니다.
어떤 결과를 원하시는지요?
상황에 따라 간단히 수정될 수 있을 것 같네요..^^
어떤 결과를 원하시는지요?
상황에 따라 간단히 수정될 수 있을 것 같네요..^^

오류는 오류인데 이거참 오류라 하기도 뭐허고 그냥 넘어 가자니 찜찜한 문제 군요.^^
포인트 검사하기전에 포인트 테이블에서 한번더 검사를 해야할듯 보입니다.
아래처럼 해보세요. 참고로 테스트는 못해 봤습니다.^^
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$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 {
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1)
{
//헐랭이추가부분
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$member[mb_id]'
and po_rel_table = '$bo_table'
and po_rel_id = '$wr_id'
and po_rel_action = '읽기' ";
$row = sql_fetch($sql);
// 포인트 테이블에서 현재글의 포인트 차감 부분이 있나 검사후 없을때만 실행함
if ($row[cnt]){
}
else
{
//헐랭이 추가부분 요기까지
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, '읽기');
}//요거 하나만 헐랭이 추가 부분
}
}
set_session($ss_name, TRUE);
}
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
if ($member[mb_level] < $board[bo_list_level])
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if (!$page) $page = 1;
$g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
포인트 검사하기전에 포인트 테이블에서 한번더 검사를 해야할듯 보입니다.
아래처럼 해보세요. 참고로 테스트는 못해 봤습니다.^^
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$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 {
// 회원이상 글읽기가 가능하다면
if ($board[bo_read_level] > 1)
{
//헐랭이추가부분
$sql = " select count(*) as cnt from $g4[point_table]
where mb_id = '$member[mb_id]'
and po_rel_table = '$bo_table'
and po_rel_id = '$wr_id'
and po_rel_action = '읽기' ";
$row = sql_fetch($sql);
// 포인트 테이블에서 현재글의 포인트 차감 부분이 있나 검사후 없을때만 실행함
if ($row[cnt]){
}
else
{
//헐랭이 추가부분 요기까지
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, '읽기');
}//요거 하나만 헐랭이 추가 부분
}
}
set_session($ss_name, TRUE);
}
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
if ($member[mb_level] < $board[bo_list_level])
{
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.", $g4[path]);
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if (!$page) $page = 1;
$g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
감사합니다...헐랭이님 너무 잘 되는군요... ^_____________________^
복받으세요....
복받으세요....