테스트 사이트 - 개발 중인 베타 버전입니다

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

2015.08.26_03.png
2015.08.31_09.png
2015.08.31_11.png
{이미지:0}

참고 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


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

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


{이미지:1}


{이미지:2}

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

skin/board/basic/write.skin.php

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

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


skin/board/basic/view_comment.skin.php

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

[code]<?php
if ($member['mb_level'] < 3) {
if ($w != 'u') {
$sql = " select count(*) as cnt from $write_table where wr_ip = '$_SERVER[REMOTE_ADDR]' and datediff(LEFT(wr_datetime, 10) , CURDATE()) = 0 AND wr_is_comment ='1' GROUP BY wr_ip having count(*) >= $board[bo_10] ";
$row = sql_fetch($sql);
if ($row[cnt] ) {
$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/g5_tip/2298

댓글 작성

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

로그인하기

댓글 8개

좋은 팁 고맙습니다.
좋은 정보 감사합니다
좋은 팁 감사합니다. 질문이 있습니다. 관리자를 인식 못해서 관리자도 그럼 그 제한에 걸리는거죠?
위 소스로는 따로 구분하지 않습니다.
관리자는 10등급이니, ‘9’ 이하로 입력하면 되겠지요.
감사합니다.
아이피로 하려면 if ($member['mb_level'] < 3) { 이줄을 다 삭제해야하나요?
‘{‘ 와 쌍을 이룬... 뒷쪽의 ‘}’ 도 삭제해야 할 것입니다.

게시판 목록

그누보드5 팁자료실

글쓰기
🐛 버그신고