그누보드5 도배방지 (연속글 차단) > 그누보드5 팁자료실

그누보드5 팁자료실

그누보드5 도배방지 (연속글 차단) 정보

그누보드5 도배방지 (연속글 차단)

본문

그누보드 4의 팁자료실을 참고하여 수정하였습니다.

 

게시판 스킨폴더에서 write_update.head.skin.php 에 아래코드 추가 (스킨에 write_update.head.skin.php가 없으면 파일 만들어주세요.)
 


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
//시간계산
function oekaki_paint_time($paint_time){
 $ptime=sprintf("%d시간 %d분 %d초",$paint_time/3600,($paint_time/60)%60,$paint_time%60);
 if($paint_time<3600)$ptime=sprintf("%d분 %d초",($paint_time/60)%60,$paint_time%60);
 if($paint_time<60)$ptime=sprintf("%d초",$paint_time%60);
 $array=array(' 0분',' 0초');
 $ptime=str_replace($array,'',$ptime);
 return $ptime;
}

//관리자나 글 수정시에는 체크하지 않는다
if(!$is_admin&&($w!='u')){
//연속된 글을 작성 하였더라도 해당 시간이 지나면 글쓰기 가능. 사용하지 않으려면 값을 0으로 설정
$write_time=24; //단위 시간
//$write_time옵션 사용시 해당 옵션을 활성화 하면 도배 게시물에서 제일 마지막 게시물의 시간을 체크한다.
//0은 도배 게시물중 제일 오래된(시간상) 게시물, 1은 도배 게시물중 가장 최근 게시물.
$last_list=0;
//연속글 카운트 원하는 숫자로 수정
$write_count=5;
//회원이면 아이디 비회원이면 아이피를 가져온다
$field=$is_member?'mb_id':'wr_ip';
//$write_count를 참고하여 마지막 작성된 글의 아이디 혹은 아이피를 가져온다
$test=sql_query(" select $field, wr_datetime from $write_table where wr_is_comment = '0' order by wr_id desc limit $write_count ");
$list_count=0;
//회원이면 아이디 비회원이면 아이피 할당
$name_ip=$is_member?$member['mb_id']:$_SERVER['REMOTE_ADDR'];
while($test_list=sql_fetch_array($test)) {
 if($name_ip==$test_list[$field]){
  if($write_time){
  if($last_list&&!$list_count)$lists=true; else if(!$last_list)$lists=true; else $lists=false;
  if($lists){
    $stime=strtotime($test_list['wr_datetime']);
    $write_time2=$g5['server_time']-$stime;
    $write_time3=($write_time*3600)+$stime;
    if($write_time2>=($write_time3-$stime)) break;
  }
  }
  $list_count++;
 }
}
//차단
if($list_count>=$write_count) {
  if($write_time){
  $write_time4=oekaki_paint_time($write_time3-$g5['server_time']);
  $error_text='\n다른사람이 글을 작성하지 않는다면 다음글은\n'.$write_time4.' 후에 작성 가능합니다.\n('.date('Y.m.d A.g:i:s',$write_time3).')';
  }
  alert('글을 '.$write_count.'개이상 연속으로 작성할 수 없습니다.'.$error_text);
 }
}
?>
추천
6

댓글 12개

좋은 자료 정말 감사합니다.
하루에 스팸글 수십~수백개 올라오던 고객 게시판에 적용해 봤습니다.
일단 설정한대로 작동은 잘되네요.

그런데, 이 팁은 다른 사용자가 올린글과 연속카운트를 기준으로 하는데,
스팸글은 동일한 아이피로 올라오는게 아니라 몇개의 아이피를 가기고 동시에 올라오는지라
결국 스팸글이 계속 올라오기는 하네요.
물론 연속 카운트 때문에 이전보다는 올라오는 속도가 확 줄기는 했습니다.

혹시 이거... 다른 사용자가 올린글과 관계 없이 본인이 올린글만 가지고 연속카운트 적용하는 방법은 없을까요?
답변 감사합니다.
지금 알려주신 팁을 사용하고 있고 캡챠는 구글캡챠 이미 사용중이고, 아이피 차단도 하고 있는데,
아이피 차단까지 하면 며칠 잠잠해지다가 또 시작이네요.
이 팁 사용하기전보다는 양이 줄긴 했지만, 여전히 새로운 몇개의 아이피를 이용해서 스팸이 많이 올라옵니다.
그래서 혹시 다른 사용자가 올린글과 관계 없이 본인이 올린글만 가지고 연속카운트 적용하는 방법이 없을까 해서 문의 드렸었습니다.
이게 가능하면 스팸을 또 올라오겠지만 그 양이 팍 줄을거 같아서요.
전체 10 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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