일일 다운로드 횟수 제한 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

일일 다운로드 횟수 제한 정보

일일 다운로드 횟수 제한

본문

한 회원 당 일일 다운로드 횟수를 제한하려고 합니다.

검색해서 소스를 하나 찾았고 잘 적용되기는 하는데
같은 파일을 중복 다운로드 시에 카운트를 건너뛰는 법을 모르겠습니다.

소스 출처 : http://sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=162043 의 댓글

  $to_day=date("Y-m-d");
  if ($member[mb_1]==$to_day) {

    if ($member[mb_2]=='5')
      alert("다운로드는 하루에 5개까지만 받을수 있습니다. ");
    else
      sql_query(" update g4_member set mb_2 = mb_2+'1' where mb_id = '$member[mb_id]' ");
 
  }else{

    sql_query(" update g4_member set mb_1 = '$to_day', mb_2='1' where mb_id = '$member[mb_id]' ");
 
  }

이게 download.skin.php 넣은 소스인데요.
같은 파일을 또 받아도 카운트가 되는데 어떻게 해야 카운트가 안되게 할 수 있을까요?

common.lib.php 파일 내부에 중복 다운 시 포인트를 한번만 차감하는 소스를 보고
어떻게 좀 수정해보려고 했는데 잘 안되네요.

    // 이미 등록된 내역이라면 건너뜀
    if ($rel_table || $rel_id || $rel_action)
    {
        $sql = " select count(*) as cnt from $g4[point_table]
                  where mb_id = '$mb_id'
                    and po_rel_table = '$rel_table'
                    and po_rel_id = '$rel_id'
                    and po_rel_action = '$rel_action' ";
        $row = sql_fetch($sql);
        if ($row[cnt])
            return -1;
    }

게다가 다운로드 시 포인트 차감을 사용하고 있지 않아서 저렇게는 안되고요.

저는 배추 베이직 스킨을 사용하고 있는데 배추 베이직 스킨에서는 다운로드 로그를 저장하거든요.

if ($mw_basic[cf_download_log]) { // 다운로드 기록
    $dl_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick];
    $sql = "insert into $mw[download_log_table]
              set bo_table = '$bo_table'
                  , wr_id = '$wr_id'
                  , bf_no = '$no'
                  , mb_id = '$member[mb_id]'
                  , dl_name = '$dl_name'
                  , dl_ip = '$_SERVER[REMOTE_ADDR]'
                  , dl_datetime = '$g4[time_ymdhis]'";
    $qry = sql_query($sql, false);
    if (!$qry) { // 테이블 생성시 dl_name 필드가 빠져서 추가함 v.1.0.2 버그
        sql_query("alter table $mw[download_log_table] add dl_name varchar(20) not null after mb_id", false);
        sql_query($sql);
    }
}

이런식으로 다운로드 로그를 저장하기 때문에 이걸 이용해보려고 했는데 방법을 잘 모르겠습니다.

어떻게 해야 중복 카운트를 막을 수 있나요.
부탁드립니다.
  • 복사

( select a.* , ( select sum(co_count) as co_count from g4_qa_choose where mb_id=a.mb_id and bo_table = 'g4_qa' ) as q_co_count from `g4_write_g4_qa` a where wr_parent = '253075' and wr_8 != '' and wr_is_comment = 1 and CONVERT(wr_7, UNSIGNED) >= 5 group by wr_content having max(wr_7) order by CONVERT(wr_7, UNSIGNED) desc limit 3 )

1055 : Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'sir.a.wr_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

error file : /15sir/bbs/board.php