하루에 글쓰기 제한 관련 질문 좀 드릴께요.

하루에 글쓰기 제한 관련 질문 좀 드릴께요.

QA

하루에 글쓰기 제한 관련 질문 좀 드릴께요.

답변 1

본문

밑에 검색하다 root님이 올리신 글을 보고 적용해봤더니 일단 되기는 합니다만..

board1~4 게시판에 각각 5번씩 총 하루에 20번의 글등록이 되는데요. 

이걸 게시판 수 상관없이 총 5번만 등록되게 하려면 어떻게 해야할지 좀 부탁드립니다. 

 

// /bbs/write_update.php

 

if ($w == '' || $w == 'r') {

//3-2. board_1, board_2 테이블에 사용자가 하루에 새글을 5번만 작성가능하게 할경우

//(답글과, 코멘트는 제한없음)

//$bo_table에서 $member[mb_id]에게 글작성수 체크하기

if(($bo_table == 'board1' || $bo_table == 'board2' || $bo_table == 'board3' || $bo_table == 'board4') && !$is_admin) {

$row_count = threes_rowcount($bo_table, $member[mb_id], 0, 1, 0, 0);

if($row_count > 4) {

alert("본 게시판은 새글작성이 하루에 다섯번만 가능합니다.");

}

}

 

// threes_rowcount 소스

<?

if (!defined('_GNUBOARD_')) exit;

 

// 최신글 추출

 

//#######################################################

// description : 게시판 사용자의 글 작성수 구하기  

// created by : root(http://www.threes.org)

// version : 2.0

// created : 2006.05.17  

// 기존 1.0 gnu3 버전을 g4 버전으로 변경합니다 

// usage :

//      threes_rowcount($bo_table, $member[mb_id], all, 1, 1, 1); 

//      threes_rowcount($bo_table, $member[mb_id],   0, 1, 1, 1); 

// threes_rowcount()의 6개 인수설명

//      1. 게시판 테이블명($bo_table) 

//      2. 사용자 ID($member[mb_id])

//      3. 기간설정(all이면 전체, 숫자이면 숫자일전부터 현재까지 조회, 0이면 오늘) 

//      4. 1이면 새글(원문)에서 체크, 0이면 체크안함

//      5. 1이면 답글에서 체크, 0이면 체크안함

//      6. 1이면 코멘트에서 체크, 0이면 체크안함

// sample : 

//      다음은 gnu3버전의 sample 화면입니다 

//      http://threes.org/gnu3/?doc=main/rowcount.php

//

//#######################################################

function threes_rowcount($bo_table, $wrc_id, $wrc_time=0, $wrc_w=1, $wrc_r=1, $wrc_c=1)

{

    global $g4;

$sql = " select count(*) as cnt from {$g4[write_prefix]}{$bo_table} ";

$sql .= " where mb_id = '$wrc_id' ";

 

// $wrc_time이 'all'일경우 전체(날짜상관없이)에서 찾기 

// 0이면 오늘새벽부터, 1이면 하루전, 7이면 일주일전,...,365일이면 1년전부터 체크한다. 

// (0이면 오늘새벽 0시0분0초부터, 1이면 어제새벽 0시0분0초부터 체크) 

if(is_numeric($wrc_time)) { // 변수가 숫자형이면 통과

$wrc_time = (int) $wrc_time; // 정수형으로... 

$chk_day = date("d")-($wrc_time);

$time_stamp = mktime(0, 0, 0, date("m"), $chk_day, date("y"));

$chk_date = date("Y-m-d H:i:s", $time_stamp);  

$sql .= " and wr_datetime >= '$chk_date' ";

}

 

if($wrc_w && $wrc_r && $wrc_c) { // 새글, 답글, 코멘트에서 

; // 전체에서 검색 

} else if($wrc_w && $wrc_r) { // 새글, 답글에서 

$sql .= " and wr_comment = '0' ";

} else if($wrc_w && $wrc_c) { // 새글, 코멘트에서 

$sql .= " and wr_reply = '' ";

} else if($wrc_r && $wrc_c) { // 답글, 코멘트에서 

$sql .= " and (wr_reply != '' or wr_comment != '0') ";

} else if($wrc_w || $wrc_r || $wrc_c) {

 

// $wrc_w = 1; 이면 새글에서 찾아야 한다.(새글이나 코멘트가 아닌것) 

if($wrc_w) { 

$sql .= " and wr_reply = '' and wr_comment = '0' ";

}

// $wrc_r = 1; 이면 답글에서 찾아야 한다.

if($wrc_r) {

$sql .= " and wr_reply != '' ";

}

// $wrc_c = 1; 이면 코멘트에서 찾아야 한다.

if($wrc_c) { 

$sql .= " and wr_comment != '0' ";

}

} else {

return 0; // 새글, 답글, 코멘트가 아닌것은 없다. 

}

 

$result = sql_fetch($sql);

 

return $result[cnt];

}

?>

 

이 질문에 댓글 쓰기 :

답변 1

그럼 아예 글을 쓸때...write_update.php에다가  g4_member 테이블 여분 필드에 카운트를 하는 로직을 넣고...

이걸 확인해서 카운트가 5고 오늘 날짜면 막으면 될것 같다는 생각이..그리고 다른 날짜면 여분 필드의 카운트를 초기화하고 다시 세는거죠~

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 10,637
© SIRSOFT
현재 페이지 제일 처음으로