하루 등록가능 댓글수 제한
본문
안녕하세요.
현재 보유포인트별로 댓글수 제한을 하고있는대요..
write_comment_update_skin.php
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 댓글 작성 하루 개수 제한
$comment_limit = 20; // 댓글 작성 개수
if ($member[mb_point] < 5000 && $w != 'cu') {
if($is_member) {
$row = sql_fetch(" select count(*) as cnt from $write_table where mb_id = '{$member['mb_id']}' and wr_is_comment = '1' and date_format(wr_datetime, '%Y-%m-%d') = '" . G5_TIME_YMD . "' ");
} else {
$row = sql_fetch(" select count(*) as cnt from $write_table where wr_ip = '{$_SERVER['REMOTE_ADDR']}' and wr_is_comment = '1' and date_format(wr_datetime, '%Y-%m-%d') = '" . G5_TIME_YMD . "' ");
}
if($row['cnt'] >= $comment_limit) {
alert('권한이없습니다');
}
}
?>
현재 A게시판 20개 B게시판 20개 등록되고있는대요.
게시판별로 모두 따로 체크하는게 아니고
모든 게시판을 체크해서 댓글수를 제한하라면 어떤식으로 고쳐야될까요?
A,B,C 모든 게시판에서 총 20개만 등록되게 하고 싶습니다.
고수님들 도움 부탁드립니다.
감사합니다!
답변 3
그럼 각 회원정보의 여분필드에 저장하면 됩니다.
if($member['mb_1']==date('Y-m-d') && $member['mb_2']>=20) {
alert("하루 댓글 작성 수를 초과하였습니다.");
} else {
if($member['mb_1']==date('Y-m-d') {
$sql = "update g5_member set mb_2=mb_2+1 where mb_id='{$member['mb_id']}'";
} else {
$sql = "update g5_member set mb_1='".date('Y-m-d')."', mb_2=1 where mb_id='{$member['mb_id']}'";
}
sql_query($sql);
}
저같으면 .. 이런 식으로 ..할거 같아요.
회원여분필드를 활용해서. 매일 최초접속시 카운트 0,
이후 댓글 작성시 +1,
삭제시 -1,
이렇게 20이 되면 댓글 작성 못하게 하는거죠.
게시판 스킨마다 write_comment_update.skin.php 파일 생성하구
업데이트 코드 작성해주면 되겠네요.
하루동안 전체 게시판의 댓글 수를 카운트하겠다는 것 같네요.
게시판을 댓글이 작성될때.. 카운트를 해서 기본환경설정의 여분필드에 저장하고
이를 비교해서 댓글 작성을 제한하면 됩니다.
여분필드1 = 댓글작성일
여분필드2 = 댓글수
write_comment_update_skin.php 에 아래 소스를 추가하세요.
if($config['cf_1']==date('Y-m-d') && $config['cf_2']>=20) {
alert("하루 댓글 작성 수를 초과하였습니다.");
} else {
if($config['cf_1']==date('Y-m-d') {
$sql = "update g5_config set cf_2=cf_2+1";
} else {
$sql = "update g5_config set cf_1='".date('Y-m-d')."', cf_2=1";
}
sql_query($sql);
}