2026, 새로운 도약을 시작합니다.

하루에 같은 아이피로 글쓰기 제한하기 - 2015. 8. 24 수정

2014.12.09_03.png
참고 1 : http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=103957

참고 2 : http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=26109


스팸글들이 극성이라... 스팸글이 달려도 삭제하기 쉽게... 글쓰기 횟수를 제한해봅니다.
몇 천, 몇 만 건이 달려버리면 삭제 작업이 난감하기 때문입니다.

여분필드를 이용하는 방식입니다.
게시판들에서 공통으로 '사용하지 않는 여분필드'에 허용 갯수를 입력해줍니다.

글쓰기의 경우는 허용 갯수를 넘었을 때, 팝업창이 뜨고
댓글쓰기의 경우는 허용 갯수를 넘었을 때, 댓글 창이 나타나지 않고 댓글 제일 아래에 경고 문구가 보여지는 방식입니다.

skin/board/basic/write.skin.php

[code]<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가[/code]아래에...

[code]if ($w != 'u') {
$sql = " select count(*) as cnt from $write_table where wr_ip = '$_SERVER[REMOTE_ADDR]' and datediff(wr_datetime , now()) = 0 AND wr_is_comment ='0' having count(*) >= $board[bo_9] ";
$row = sql_fetch($sql);
if ($row[cnt] ) {
alert("이 게시판은 하루에 $board[bo_9]개의 글만 쓸 수 있습니다.");
}
}[/code]이 소스를 삽입해줍니다.
다른 여분필드에 입력했다면... 'bo_9' 부분 두 곳을 수정해줍니다.


skin/board/basic/view_comment.skin.php

[code]<?php if ($is_comment_write) {
if($w == '')
$w = 'c';
?>[/code]를...

[code]<?php
if ($w != 'u') {
$sql = " select count(*) as cnt from $write_table where wr_ip = '$_SERVER[REMOTE_ADDR]' and datediff(wr_datetime , now()) = 0 AND wr_is_comment ='1' having count(*) >= $board[bo_10] ";
$row = sql_fetch($sql);
if ($row[cnt] >= $board[bo_10]) {
$is_comment_write =0;
echo "<center><font color=red>이 게시판은 하루에 $board[bo_10]개의 댓글만 달 수 있습니다.</font></center><br>";
}
}

if ($is_comment_write) {
if($w == '')
$w = 'c';
?>[/code]로 바꿉니다.
역시, 다른 여분필드에 입력했다면... 'bo_10' 부분 세 곳을 수정해줍니다.


아이피 구분이므로 관리자나 회원별 인식은 하지 않습니다.

모바일 스킨도 동일하게 수정해줘야 합니다.


http://sir.co.kr/bbs/board.php?bo_table=g5_tip&wr_id=2295

벤지님의 캡챠 팁도 병행해서 사용하시기 바랍니다.


잘못 된 부분이 있으면, 지적 바랍니다.

첨부파일

2014.12.09_03.png (6.5 KB)
23회 2014-12-09 16:37
|

댓글 9개

일정 등급 이하에만 적용하려면...

[code]if ($member['mb_level'] < 3) {
ip제한 소스
}[/code]
일부 게시판의 경우, 25개 이상으로 설정해야 먹히는 오류가 있어서
'잘살아보자'님의 도움으로 소스를 일부 수정했습니다.
감사합니다. 관리자는 제외되나요?
아이피 구분만 합니다.
이대로 적용해봤는데요, 코멘트 부분은 수정 안 하고 글쓰기 부분만 3개로 제한해줬는데 연속 글 3개일 경우에만 제한 팝업이 뜨고 일정 시간이 지난 뒤(5분쯤?) 다시 글쓰기를 하면 또 등록이 되네요.. 그누 버전에 따른 차이가 있는 걸까요? ㅜ
같은 상황으로 시험해보았으나 이상을 발견하지 못했습니다.
댓글쓰기에 오류가 있는 듯 하여 아래와 같이 수정했습니다.

if ($row[cnt] ) {

if ($row[cnt] >= $board[bo_10]) {
로 수정

수정하기 전에는 정해진 갯수를 넘겨도 댓글 입력창이 보이고 입력도 가능하더군요.
좀더 검토가 필요한 부분입니다.
글쓰기 제한, 가입인사
하루 글쓰기 제한

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,598
2741 3일 전 조회 111
2740 4일 전 조회 103
2739 1주 전 조회 209
2738 1주 전 조회 217
2737 1주 전 조회 181
2736 1주 전 조회 280
2735 3주 전 조회 281
2734 3주 전 조회 263
2733 1개월 전 조회 265
2732 1개월 전 조회 301
2731 1개월 전 조회 267
2730 1개월 전 조회 226
2729 1개월 전 조회 355
2728 1개월 전 조회 245
2727 1개월 전 조회 422
2726 1개월 전 조회 256
2725 1개월 전 조회 330
2724 1개월 전 조회 358
2723 1개월 전 조회 267
2722 1개월 전 조회 300
2721 1개월 전 조회 211
2720 2개월 전 조회 304
2719 2개월 전 조회 307
2718 2개월 전 조회 202
2717 2개월 전 조회 336
2716 2개월 전 조회 202
2715 2개월 전 조회 311
2714 2개월 전 조회 273
2713 2개월 전 조회 376
2712 2개월 전 조회 289
🐛 버그신고