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

안녕하세요 추천횟수 제한 채택완료

김마린2 3년 전 조회 1,213

안녕하세요 하단 코드와 같이 추천을 사용하고 있습니다

 

근데 여기서 추천에 따른 포인트를 지급하니 너무 추천을 남발해서 

 

회원 당 하루 10개 만 추천 가능하게 하고 싶습니다.

 

10개 이상 시 하루에 추천 개수를 제한하는 알람이 나오게끔 하고싶은데

 

어떻게 하면 좋을까요?  

</p>

<p><?php</p>

<p>include_once('./_common.php');</p>

<p> </p>

<p>$opt = isset($opt) ? $opt : '';</p>

<p> </p>

<p>if($opt) {</p>

<p>    //댓글일 때 설정값 변경</p>

<p>    $board['bo_use_good'] = isset($boset['na_cgood']) ? $boset['na_cgood'] : $board['bo_use_good'];</p>

<p>    $board['bo_use_nogood'] = isset($boset['na_cnogood']) ? $boset['na_cnogood'] : $board['bo_use_nogood'];</p>

<p> </p>

<p>    run_event('comment_good_before', $bo_table, $wr_id, $good);</p>

<p>} else {</p>

<p>    run_event('bbs_good_before', $bo_table, $wr_id, $good);</p>

<p> </p>

<p>    @include_once($board_skin_path.'/good.head.skin.php');</p>

<p>}</p>

<p> </p>

<p>$error = $success = $count = "";</p>

<p> </p>

<p>function print_result($error, $success, $count) {</p>

<p>    echo '{ "error": "' . $error . '", "success": "' . $success . '", "count": "' . $count . '" }';</p>

<p>    exit;</p>

<p>}</p>

<p> </p>

<p>if (!$is_member) {</p>

<p>    $error = '회원만 가능합니다.';</p>

<p>    print_result($error, $success, $count);</p>

<p>}</p>

<p> </p>

<p>if (!($bo_table && $wr_id)) {</p>

<p>    $error = '값이 제대로 넘어오지 않았습니다.';</p>

<p>    print_result($error, $success, $count);</p>

<p>}</p>

<p> </p>

<p>if (!$board['bo_table']) {</p>

<p>    $error = '존재하는 게시판이 아닙니다.';</p>

<p>    print_result($error, $success, $count);</p>

<p>}</p>

<p> </p>

<p>$ss_name = ($write['wr_is_comment']) ? 'ss_view_'.$bo_table.'_'.$write['wr_parent'] : 'ss_view_'.$bo_table.'_'.$wr_id;</p>

<p>if (!get_session($ss_name)) {</p>

<p>    $error = '해당 게시물에서만 추천 또는 비추천 하실 수 있습니다.';</p>

<p>    print_result($error, $success, $count);</p>

<p>}</p>

<p> </p>

<p>$is_success = false;</p>

<p>$ss_times = isset($boset['na_gtimes']) ? (int)$boset['na_gtimes'] : 0; // 횟수</p>

<p>$ss_name = 'ss_good_'.$bo_table.'_'.$wr_id; // 세션</p>

<p> </p>

<p>if ($good == 'good' || $good == 'nogood') {</p>

<p> </p>

<p>    if($write['mb_id'] == $member['mb_id']) {</p>

<p>        $error = '자신의 글에는 추천 또는 비추천 하실 수 없습니다.';</p>

<p>        print_result($error, $success, $count);</p>

<p>    }</p>

<p> </p>

<p>    if (!$board['bo_use_good'] && $good == 'good') {</p>

<p>        $error = '이 게시판은 추천 기능을 사용하지 않습니다.';</p>

<p>        print_result($error, $success, $count);</p>

<p>    }</p>

<p> </p>

<p>    if (!$board['bo_use_nogood'] && $good == 'nogood') {</p>

<p>        $error = '이 게시판은 비추천 기능을 사용하지 않습니다.';</p>

<p>        print_result($error, $success, $count);</p>

<p>    }</p>

<p> </p>

<p>    $sql = " select bg_id, bg_flag, bg_datetime from {$g5['board_good_table']}</p>

<p>                where bo_table = '{$bo_table}'</p>

<p>                and wr_id = '{$wr_id}'</p>

<p>                and mb_id = '{$member['mb_id']}'</p>

<p>                and bg_flag in ('good', 'nogood') ";</p>

<p>    $row = sql_fetch($sql);</p>

<p>    if (isset($row['bg_flag']) && $row['bg_flag']) {</p>

<p> </p>

<p>        $good = $row['bg_flag'];</p>

<p> </p>

<p>        if ($good == 'good')</p>

<p>            $status = '추천';</p>

<p>        else</p>

<p>            $status = '비추천';</p>

<p> </p>

<p>        // 취소체크</p>

<p>        $cancel_sec = isset($boset['na_gcancel']) ? (int)$boset['na_gcancel'] : 0;</p>

<p>        if($cancel_sec > 0 && G5_SERVER_TIME < (strtotime($row['bg_datetime']) + $cancel_sec)) {</p>

<p>            if($ss_times > 0) {</p>

<p>                $times = get_session($ss_name);</p>

<p>                if($times) {</p>

<p>                    if($ss_times > $times) {</p>

<p>                        set_session($ss_name, $times + 1);</p>

<p>                    } else {</p>

<p>                        $error = "더이상 취소할 수 없습니다.";</p>

<p>                        print_result($error, $success, $count);</p>

<p>                    }</p>

<p>                } else {</p>

<p>                    set_session($ss_name, 1);</p>

<p>                }</p>

<p>            }</p>

<p>           </p>

<p>            // 내역 삭제</p>

<p>            sql_query(" delete from {$g5['board_good_table']} where bg_id = '{$row['bg_id']}' ", false);</p>

<p> </p>

<p>            // 추천(찬성), 비추천(반대) 카운트 감소</p>

<p>            sql_query(" update $write_table set wr_{$good} = wr_{$good} - 1 where wr_id = '{$wr_id}' ");</p>

<p> </p>

<p>            $count = $write['wr_'.$good] - 1;</p>

<p>            $success = "$status 취소를 하셨습니다.";</p>

<p> </p>

<p>        } else {</p>

<p>            $error = "이미 $status 하셨습니다.";</p>

<p>        }</p>

<p> </p>

<p>        print_result($error, $success, $count);</p>

<p> </p>

<p>    } else{</p>

<p> </p>

<p>        // 추천(찬성), 비추천(반대) 카운트 증가</p>

<p>        sql_query(" update $write_table set wr_{$good} = wr_{$good} + 1 where wr_id = '{$wr_id}' ");</p>

<p> </p>

<p>        // 내역 생성</p>

<p>        sql_query(" insert {$g5['board_good_table']} set bo_table = '{$bo_table}', wr_id = '{$wr_id}', mb_id = '{$member['mb_id']}', bg_flag = '{$good}', bg_datetime = '".G5_TIME_YMDHIS."' ");</p>

<p> </p>

<p>        if ($good == 'good') {</p>

<p>            $status = '추천';</p>

<p>            insert_point($write['mb_id'], '1', "{$board['bo_subject']} {$wr_id} {$member['mb_nick']}님이 추천", $bo_table, $wr_id, $member['mb_id'].'추천');</p>

<p>        } else {</p>

<p>            $status = '비추천';</p>

<p>        }</p>

<p> </p>

<p>        $count = $write['wr_'.$good] + 1;</p>

<p> </p>

<p>        $is_success = true;</p>

<p> </p>

<p>        if($opt) {</p>

<p>            run_event('comment_increase_good_json', $bo_table, $wr_id, $good);</p>

<p>        } else {</p>

<p>            run_event('bbs_increase_good_json', $bo_table, $wr_id, $good);</p>

<p>        }</p>

<p> </p>

<p>    }</p>

<p>}</p>

<p> </p>

<p>//댓글은 실행안함</p>

<p>if($opt) {</p>

<p>    run_event('comment_good_after', $bo_table, $wr_id, $good);</p>

<p>} else {</p>

<p>    run_event('bbs_good_after', $bo_table, $wr_id, $good);</p>

<p> </p>

<p>    @include_once($board_skin_path.'/good.tail.skin.php');</p>

<p>}</p>

<p> </p>

<p>if($is_success) {</p>

<p>    $success = "$status 하셨습니다.";</p>

<p>    print_result($error, $success, $count);</p>

<p>}</p>

<p>

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

답변 2개

채택된 답변
+20 포인트
 insert_point($write['mb_id'], ...

봐서는 게시물 쓴 회원이 포인트를 받는 거 같은데

주는 사람이 아닌 받는 사람이 10회 초과하지 못하도록 한다는 것인가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

김마린2
3년 전
추천을 하는사람이 10회 초과하지 못하도록 하고 싶습니다.
엑스엠엘
3년 전
추천이 문제인지
포인트 받는 것이 문제인지에 따라 해결책이 다릅니다.

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

board_good_table 에서 추천내역이 쌓이는것 같은데

해당 테이블에서 카운트하시면 될것 같은데요?

로그인 후 평가할 수 있습니다

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

답변을 작성하려면 로그인이 필요합니다.

로그인