게시판 카운터를 새로고침할 때마다 증가시키기 > 그누4 질문답변

그누4 질문답변

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

게시판 카운터를 새로고침할 때마다 증가시키기 정보

게시판 카운터를 새로고침할 때마다 증가시키기

본문

게시판 카운터를 새로고침을 할 때마다 증가시키고 싶습니다.

comet님의 글 대로 하니 게시판 카운터는 새로고침을 할 때마다 증가를 합니다.
그런데, 첨부파일 다운로드가 안되더라구요.
게시판 카운터 증가나 첨부파일 다운로드를 문제 없이 할 수 있는 방법이 없을까요?
둘 중 하나는 포기를 해야하는 것인지. ㅠ.ㅠ


comet님의 글 내용입니다.

그누보드 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);
    }

위처럼 되어져 있는부분을-------------------------------------------------------------------------------

    // 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
    //$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);
    //}

이렇게 고쳐주시면 새로고침할때마다 카운트가 증가합니다.
이유를 설명드리면 그누보드에서는 한번 본 게시물은 쿠키를 생성하여 해당쿠기가 이미 존재하면 카운트를
증가 시키게 되어 있는데 위에서 보시는바와 같이 쿠키 생성과 쿠키를 체크하는 부분을 주석처리 해줌으로써
쿠키 존재여부를 떠나서 카운트가 증가되게 됩니다.
  • 복사

댓글 전체

아... 제가 삼천포에서 제주감귤을 따시라고 알려 드렸군요.
죄송합니다. (ㅜ.x;)

-. /bbs/board.php의 원본 소스를 변경하시는 방법을 택하셨다면,
마찬가지로 /bbs/download.php도 원본 소스를 변경하시는 방법을 적용하시면 됩니다.

그런데 동일 세션에서의 처리를 현재 배포되고 있는 그누보드 원본소스처럼 처리한다는 것은,
보안상의 이유일 듯 합니다.
(이를테면 포인트 제도를 통해 쓰기/읽기/다운로드 등이 수행되고 있다고 가정한다면...)

-. /bbs/download.php의 52라인 정도
(원본)
    // 다운로드 카운트 증가
    $sql = " update $g4[board_file_table] set bf_download = bf_download + 1 where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$no' ";
    sql_query($sql);

    set_session($ss_name, TRUE);
}


(수정)
    // 다운로드 카운트 증가
    $sql = " update $g4[board_file_table] set bf_download = bf_download + 1 where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_no = '$no' ";
    sql_query($sql);

    //set_session($ss_name, TRUE);//즉, 최하단에서 동일 세션에 대한 처리 구문을 주석처리 하십시오.
}

-. 참조사항
이 외에도 원본 경로 및 소스파일(/bbs/*.php)의 변경을 꾀하지 않고,
조건분기(if ~ else, if ~ else if ~ else)에 따라서 각 게시판 스킨마다,
개별적으로 적용하는 방식을 생각해 볼 수도 있습니다.

즉, 첨부파일 다운로드시 액션이 /bbs/download.php를 통해 이루어지지만,
거의 동일한 소스코드를 갖는 download.php를 해당 게시판 스킨 경로에 복사해 두고,
download.skin.php나 view.skin.php에서 첨부파일의 액션 경로를,
$board_skin_path/download.php 와 같은 형태로 되돌리고,
직전에 수정된 소스코드에 기재한  set_session($ss_name, TRUE);이라는 구문을,
주석으로 처리하는 방식도 생각할 수 있습니다.

중요한 것은 사용자의 수정 및 운용 형태에 따라 선택방향이 달라지겠지요.
업그레이드의 편의성 때문에 개인적으로는 본 코멘트의 하단에서 언급한 방식을 선호합니다.
나스카님 너무 이렇게 관심가져 주셔서 고맙습니다.

현재 게시판 카운터만 새로고침할 때 증가를 하고 싶습니다. 그런데, comet님 처럼 해보니 게시판 카운터는 증가를 하지만, 첨부파일이 다운로드가 되지 않는 현상이 발상합니다.

그래서 새로고침할 때 게시판 카운터도 올리면서 첨부파일 다운로드도 잘 되는 방법을 질문한것입니다.

제가 질문을 오해가 있게 했나보네요. 아니면 답변에 대해 제가 이해를 못하고 있을 수도 있네요.

^^
© SIRSOFT
현재 페이지 제일 처음으로