웹마스터 팁
page_full_width">
제로 카운터 ip 체크형에서 쿠키 체크 형으로 바꾸기
2004.01.27 08:30
제로카운터는 기본적으로 IP로 중복을 체크해서 오늘 방문한 사람을 구합니다.
하지만 IP체크는 서버에 부하가 많이 가게 됨으로 쿠키 체크로 바꾸면 서버에 부하를 줄일 수 있습니다.
제로카운터의 zerocount.php3 을 엽니다.
먼저 ip를 구하는 부분과 ip를 저장하는 부분을 주석 처리 해주어야 합니다.
21번째 정도의 줄에 보시면
// 지금 아이피로 접속한 사람이 오늘 처음 온 사람인지 검사
$check=mysql_fetch_array(mysql_query("select count(*) from counter_ip where date>=$today and date<$tomorrow and ip='$user_ip'",$connect));
을 주석 처리 해줍니다.
// 지금 아이피로 접속한 사람이 오늘 처음 온 사람인지 검사
// $check=mysql_fetch_array(mysql_query("select count(*) from counter_ip where date>=$today and date<$tomorrow and ip='$user_ip'",$connect));
30번째 정도의 줄에 보시면
// 오늘 시간대별 ip 입력
mysql_query("insert into counter_ip (date, ip) values ('$time','$user_ip')",$connect);
을 주석 처리 해줍니다.
// 오늘 시간대별 ip 입력
// mysql_query("insert into counter_ip (date, ip) values ('$time','$user_ip')",$connect);
그러신 후
22번째 줄을 보시면
아까 주석 처리한
// 지금 아이피로 접속한 사람이 오늘 처음 온 사람인지 검사
// $check=mysql_fetch_array(mysql_query("select count(*) from counter_ip where date>=$today and date<$tomorrow and ip='$user_ip'",$connect));
이 있습니다.
여기 아래에 다음의 내용을 넣어 줍니다.
if($HTTP_COOKIE_VARS[zerocount]){ // 저장된 쿠키가 있을때
if($HTTP_COOKIE_VARS[zerocount]<time()-(86400*1)){ // 하루 이전 일때 86400 은 하루
$check[0] = 0;
// 쿠키 새로 굽기
setcookie(zerocount,time(),time()+86400,"/");
}else{ // 하루가 안 지났을때
$check[0] = 1;
}
}else{ // 저장된 쿠키가 없을때
$check[0] = 0;
// 쿠키 굽기
setcookie(zerocount,time(),time()+86400,"/");
}
* DeX™님에 의해서 게시물 이동되었습니다 (2004-01-27 09:42)
하지만 IP체크는 서버에 부하가 많이 가게 됨으로 쿠키 체크로 바꾸면 서버에 부하를 줄일 수 있습니다.
제로카운터의 zerocount.php3 을 엽니다.
먼저 ip를 구하는 부분과 ip를 저장하는 부분을 주석 처리 해주어야 합니다.
21번째 정도의 줄에 보시면
// 지금 아이피로 접속한 사람이 오늘 처음 온 사람인지 검사
$check=mysql_fetch_array(mysql_query("select count(*) from counter_ip where date>=$today and date<$tomorrow and ip='$user_ip'",$connect));
을 주석 처리 해줍니다.
// 지금 아이피로 접속한 사람이 오늘 처음 온 사람인지 검사
// $check=mysql_fetch_array(mysql_query("select count(*) from counter_ip where date>=$today and date<$tomorrow and ip='$user_ip'",$connect));
30번째 정도의 줄에 보시면
// 오늘 시간대별 ip 입력
mysql_query("insert into counter_ip (date, ip) values ('$time','$user_ip')",$connect);
을 주석 처리 해줍니다.
// 오늘 시간대별 ip 입력
// mysql_query("insert into counter_ip (date, ip) values ('$time','$user_ip')",$connect);
그러신 후
22번째 줄을 보시면
아까 주석 처리한
// 지금 아이피로 접속한 사람이 오늘 처음 온 사람인지 검사
// $check=mysql_fetch_array(mysql_query("select count(*) from counter_ip where date>=$today and date<$tomorrow and ip='$user_ip'",$connect));
이 있습니다.
여기 아래에 다음의 내용을 넣어 줍니다.
if($HTTP_COOKIE_VARS[zerocount]){ // 저장된 쿠키가 있을때
if($HTTP_COOKIE_VARS[zerocount]<time()-(86400*1)){ // 하루 이전 일때 86400 은 하루
$check[0] = 0;
// 쿠키 새로 굽기
setcookie(zerocount,time(),time()+86400,"/");
}else{ // 하루가 안 지났을때
$check[0] = 1;
}
}else{ // 저장된 쿠키가 없을때
$check[0] = 0;
// 쿠키 굽기
setcookie(zerocount,time(),time()+86400,"/");
}
* DeX™님에 의해서 게시물 이동되었습니다 (2004-01-27 09:42)
댓글 8
-
이근우
2005.11.01 20:58
-
SeePaGae
2004.01.27 14:46
쿠키보다는.. Session 으로 할수 있을까요? -
정재원
2004.01.27 14:54
세션으로 사용하면 불필요한 세션 정보가 서버에 쌓이게 됍니다.
또 제로보드의 세션 아이디 session_id() 와 겹칠 수 있구요... -
버찌
2004.01.29 16:16
이 팁에 추천을 드립니다.
이제 카페24에서 제로카운터의 사용이 다시 가능해지겠네요 ^^ -
박재환
2004.02.09 13:19
질문있습니다...
저는 제로보드에서 디폴트로 제공하는 카운터를 안쓰고 여기 에서 다운 받은 Art_counter라는 것을 사용
하는데 위와 같은 소스를 아무리 찾아봐도 없네요... 어떻하죠?
저도 아이피 보다는 쿠키로 체크하는게 나을것 같은데 하는 방법을 몰라...
제발 좀 가르쳐 주세요... 질문하면 답을 얻기가 하늘에 별따기 보다도 더 어려운 현실(nzeo.com)... -
teslaMINT
2004.02.11 21:15
제로보드는 현재 공식적으로 통계기능을 제공하지 않습니다. -
요술왕자
2004.04.03 03:21
이줄에서 에러가 나네요...
// 쿠키 굽기
setcookie(zerocount,time(),time()+86400,"/"); -
susia
2007.07.09 12:39
위의 소스를 적용해보았고, 저 역시 마찬가지로
// 쿠키 굽기
setcookie(zerocount,time(),time()+86400,"/");
여기서 에러가 나서 이 줄을 지웠습니다.
그러고나서 보니, IP로 체크할때보다 급격하게 카운터수가 올라가고 있네요.
쿠키생성이 정상적으로 이루어지지 않는것 같은데,
아이프레임으로 불러와서 쿠키가 적용이 되지 않는 건가요?
해결할 방법은 없는건가요.... ㅠ.ㅠ
setcookie(zerocount,time(),time()+86400,"/");
이부분을 지우니 에러가 안생기네요..