도와주세요~ 포인트 차감관련 > 그누4 질문답변

그누4 질문답변

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

도와주세요~ 포인트 차감관련 정보

도와주세요~ 포인트 차감관련

본문

게시글 볼때 포인트 차감되는 경우... 한번 읽은 글은 포인트 차감되지 않습니다.
 
하지만, 현재 보유한 포인트가 차감될 포인트보다 작으면 한번 읽은 글이더라도
 
포인트가 모자란다는 경고 메세지가 뜨더군요~ . 이거 오류 아닌가요?
 
그래서.. 그누보드4/bbs/board.php 를 찾았습니다. 이곳 수정하면 고쳐질거라 생각하고
 
이틀밤을 씨름하다가 이곳에 글을 올립니다. 함 도와주세요.. ㅠ..ㅠ
 
---------------------------------------------------------------------------------
 
@문제점 : 현재 보유한 포인트가 차감될 포인트보다 작을때 이미 읽은 글임에도 불구하고
 
               포인트부족하다고 경고창이 뜸
 
@ 현상 : 처음 로그인상태에서 게시글 열람후 다시 게시글 열람하면  포인트가 부족하여도 게시글 열람이 가능하나
 
             게시글 열람후 로그아웃한후에 다시 로그인하여 게시글 열람할 경우   위의 현상이 발생함.
 
@ 본인의 생각 : 그누보드4/bbs/board.php 부분수정요망.... 별별짓을 다해봄...ㅠ..ㅠ
 
----------------------------------------------------------------------------------
함 도와주십쇼~ 부탁드림다..
함 도와주십쇼~ 부탁드림다..
함 도와주십쇼~ 부탁드림다..
함 도와주십쇼~ 부탁드림다..
-----------------------------------------------------------------------------------
아래는 그누보드4/bbs/board.php 119번째 라인 부근입니다...
-----------------------------------------------------------------------------------
 
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$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)
     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 페이지";
}
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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