하루에 같은 아이피로 글쓰기 제한하기 - 2015. 8. 26 수정 정보
하루에 같은 아이피로 글쓰기 제한하기 - 2015. 8. 26 수정첨부파일
본문
참고 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
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
아래에...
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]개의 글만 쓸 수 있습니다.");
}
}
}
이 소스를 삽입해줍니다.
다른 여분필드에 입력했다면... 'bo_9' 부분 두 곳을 수정해줍니다.
3등급 이하로 한정한 부분은 수정하거나 삭제하면 됩니다.
skin/board/basic/view_comment.skin.php
<?php if ($is_comment_write) {
if($w == '')
$w = 'c';
?>
를...
<?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';
?>
로 바꿉니다.
역시, 다른 여분필드에 입력했다면... 'bo_10' 부분 두 곳을 수정해줍니다.
등급제한 부분을 삭제하면 아이피 구분만 합니다.
모바일 스킨도 동일하게 수정해줘야 합니다.
유창화님의 도움으로 약간 수정했습니다. 잘못 된 부분이 있으면, 지적 바랍니다.
원글 : http://sir.co.kr/g5_tip/2298
추천
4
4
댓글 8개
좋은 팁 고맙습니다.
좋은 정보 감사합니다
좋은 팁 감사합니다. 질문이 있습니다. 관리자를 인식 못해서 관리자도 그럼 그 제한에 걸리는거죠?
위 소스로는 따로 구분하지 않습니다.
관리자는 10등급이니, ‘9’ 이하로 입력하면 되겠지요.
관리자는 10등급이니, ‘9’ 이하로 입력하면 되겠지요.
감사합니다~!!
감사합니다.
아이피로 하려면 if ($member['mb_level'] < 3) { 이줄을 다 삭제해야하나요?
‘{‘ 와 쌍을 이룬... 뒷쪽의 ‘}’ 도 삭제해야 할 것입니다.