IP와 referer DB를 5일분량만 남기고 그 이전의 것은 모두 삭제해버리면 이 문제는 간단히 해결됩니다.
물론, 카운터수는 그대로 유지되기 때문에 1년전의 카운터수도 알 수 있습니다.
단지, 별 필요없는 IP 정보와 referer 만 삭제하는 것이죠.
(제로카운터가 정상적으로 작동한다고 가정하고...)
zerocounter.php3 파일을 메모장으로 불러옵니다.
53번째 줄에 보면
//------------------- 카운터 값 읽어오는 부분 -----------------------------------
// 전체 $total=mysql_fetch_array(mysql_query("select unique_counter, pageview from counter_main where no=1", $connect)); $count[total_hit]=$total[0]; $count[total_view]=$total[1];
부분이 있죠. 여기에
$date = 60 * 60 * 24 * 5; mysql_query("delete from counter_ip where (".time()." - date) >= ".$date) or error(mysql_error()); mysql_query("delete from counter_referer where (".time()." - date) >= ".$date) or error(mysql_error());
를 넣어줍니다.
즉, 수정하면
//------------------- 카운터 값 읽어오는 부분 ---------------------------------------------------------------------- $date = 60 * 60 * 24 * 5; mysql_query("delete from counter_ip where (".time()." - date) >= ".$date) or error(mysql_error()); mysql_query("delete from counter_referer where (".time()." - date) >= ".$date) or error(mysql_error());
// 전체 $total=mysql_fetch_array(mysql_query("select unique_counter, pageview from counter_main where no=1", $connect)); $count[total_hit]=$total[0]; $count[total_view]=$total[1];
이렇게 되는 것이죠. 새롭게 추가한 것 소스는 5일이 지난 IP 정보와 referer 정보를 지워버리는 것입니다.
zerocounter.php3 파일은 제로카운터가 실행될 때마다 로딩되기 때문에
자동으로 db를 지워줍니다.
이렇게 하면 db 용량도 별로 차지하지 않고 정기적으로 db를 삭제해줘야하는 불편도 없습니다