일일 다운로드 횟수 제한 정보
일일 다운로드 횟수 제한본문
한 회원 당 일일 다운로드 횟수를 제한하려고 합니다.
검색해서 소스를 하나 찾았고 잘 적용되기는 하는데
같은 파일을 중복 다운로드 시에 카운트를 건너뛰는 법을 모르겠습니다.
소스 출처 : 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);
}
}
이런식으로 다운로드 로그를 저장하기 때문에 이걸 이용해보려고 했는데 방법을 잘 모르겠습니다.
어떻게 해야 중복 카운트를 막을 수 있나요.
부탁드립니다.
검색해서 소스를 하나 찾았고 잘 적용되기는 하는데
같은 파일을 중복 다운로드 시에 카운트를 건너뛰는 법을 모르겠습니다.
소스 출처 : 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