한 사용자가 연속 글작성 못하도록 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

한 사용자가 연속 글작성 못하도록 정보

한 사용자가 연속 글작성 못하도록

본문

g3 버전을 업그레이드 한것이며 g3 버전은 다음 링크를 참고하세요.
http://sir.co.kr/bbs/board.php?bo_table=g3_tiptech&wr_id=6244

게시판에 한 사용자가 연속된 글 작성을 못하게 하고자 할경우 적용하는 팁입니다.
그누보드 패치시 bbs/write_update.php가 수정되면 항상 수정해 주셔야 합니다.

수정 위치는 bbs/write_update.php에서 다음 부분에 아래쪽의 소스를 추가하십시오

    else
    {
        $wr_num = get_next_num($write_table);
        $wr_reply = "";
    }

    ####### 추가할곳 ######

    $sql = " insert into $write_table
                set wr_num = '$wr_num',
                    wr_reply = '$wr_reply',


아래의 내용을 bbs/write_update.php의 위의 추가할곳 이라는곳에 추가하십시오

if ($w == "") { // 새글작성체크
    // 다음의 if는 게시판이 'test', 'abcd'일때 적용하겠다는 것이다
    // 만약 전체 게시판에 적용할것이면 if 앞에 주석처리하고 맨 아래의 "}" 앞에도 주석처리한다.
    if($bo_table == 'test' or $bo_table == 'abcd') {
        // 전체글(코멘트 포함글)에서 최근 사용자 ID 조회를 조회할경우 아래의 $sql 앞에 "//" 주석처리를 제거한다
        $sql = " select mb_id, wr_name from {$g4[write_prefix]}{$bo_table} order by wr_id desc limit 0, 1 ";
        // 원글(코멘트 제외글)에서 최근 사용자 ID 조회를 조회할경우 아래의 $sql 앞에 "//" 주석처리를 제거한다.
        // $sql = " select mb_id, wr_name from {$g4[write_prefix]}{$bo_table} where wr_comment = 0 order by wr_id desc limit 0, 1 ";

        $result = sql_fetch($sql);

        if($result[mb_id] == $mb_id) {
            alert("$result[wr_name]($mb_id)님 연속된 글을 작성하실수 없는 게시판입니다!!");
        }
    } // 추가되는 맨위의 if를 주석처리할경우 이라인도 주석처리되어야함
} // 새글작성체크

.
추천
0

댓글 9개

좋은 정보 감사합니다...

위 팁은 write_update.php 보다는 write_update.head.skin.php에 넣는것이 더 좋을듯 합니다...^^

>> {$g4[write_prefix]}{$bo_table} -----> $write_table로 해주세요?....네...?
write_comment_update.head.skin.php 로 처리하여 원본소스를 손보지 않는 방법으로 가는것이 좋을것 같군요.
그런데 write_comment_update.head.skin.php 를 include 한후에  $w = $_POST["w"]; 를 처리하고 있으므로 write_comment_update.head.skin.php 에서도 설정해야하는 문제가 있겠습니다

>> {$g4[write_prefix]}{$bo_table} -----> $write_table로 해주세요?....네...?
이것은 ....head.skin.php 쪽으로 뺀다고 했을때 보안상의 문제 발생의 소지가 높으므로 수정하지 않는것이 더 좋을것 같습니다.
>> {$g4[write_prefix]}{$bo_table} -----> $write_table로 해주세요?....네...?
이것은 ....head.skin.php 쪽으로 뺀다고 했을때 보안상의 문제 발생의 소지가 높으므로 수정하지 않는것이 더 좋을것 같습니다.

******************

보안이 뭔지 몰라서.....ㅠ.ㅠ

common.php의 310줄 부근에 이넘이 있기에 그냥.....ㅠ.ㅠ
if (isset($bo_table)) {
    $board = sql_fetch(" select * from {$g4['board_table']} where bo_table = '$bo_table' ");
    if ($board['bo_table']) {
        $gr_id = $board['gr_id'];
        $write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
        //$comment_table = $g4['write_prefix'] . $bo_table . $g4['comment_suffix']; // 코멘트 테이블 전체이름
        if ($wr_id)
            $write = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");
    }
}
감사합니다//근데 사용도중에 더 궁금한점이 생겻는데요..
알고보니 댓글을 달아도 글이 써지지않습니다 이점 어떻게 지울수없을까요?
댓글은 제외하고 글만..
감사합니다^^  / 근데 사용도중에 또 의문이 생겻습니다
알고보니 댓글을써도 글이 써지지않는군요..

댓글은 상관하지않고 글만 체크할순없을까요?
// 전체글(코멘트 포함글)에서 최근 사용자 ID 조회를 조회할경우 아래의 $sql 앞에 "//" 주석처리를 제거한다
        $sql = " select mb_id, wr_name from {$g4[write_prefix]}{$bo_table} order by wr_id desc limit 0, 1 ";
        // 원글(코멘트 제외글)에서 최근 사용자 ID 조회를 조회할경우 아래의 $sql 앞에 "//" 주석처리를 제거한다.
        // $sql = " select mb_id, wr_name from {$g4[write_prefix]}{$bo_table} where wr_comment = 0 order by wr_id desc limit 0, 1 ";


이미 root님께서 작성하신 본문 내용중에서 두가지 선택사항이 주석문으로 처리되어 있습니다.
현재 쿼리문에 주석이 달린 다음부분을 활성화 시키시기 바랍니다.
      $sql = " select mb_id, wr_name from {$g4[write_prefix]}{$bo_table} where wr_comment = 0 order by wr_id desc limit 0, 2 ";
전체 35 |RSS
그누4 팁자료실 내용 검색

회원로그인

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