웹마스터 팁

먼저 어제 것을 고쳐보겠습니다. 오늘 것도 어제 것과 별반 차이없습니다.

우선 제로카운터 폴더에 있는 zerocounter.php3를 여시기 바랍니다.

아래는 전체 내용입니다.

<?
  // 사용자 IP 얻어옴
  $user_ip=$REMOTE_ADDR;
  $referer=$HTTP_REFERER;
  if(!$referer) $referer="Typing or Bookmark Moving On This Site";

  // 오늘의 날자 구함
  $today=mktime(0,0,0,date("m"),date("d"),date("Y"));
  $yesterday=mktime(0,0,0,date("m"),date("d"),date("Y"))-60*60*24;
  $tomorrow=mktime(23,59,59,date("m"),date("d"),date("Y"));
  $time=time();
//------------------- 카운터 테이블에 데이타 입력 부분 -------------------------------------------------------

  // counter_main에서 오늘날짜 행이 없으면 추가.
  $check=mysql_fetch_array(mysql_query("select count(*) from counter_main where date='$today'",$connect));
  if(!$check[0])
  {
   mysql_query("insert into counter_main (date, unique_counter, pageview) values ('$today', '0', '0')", $connect);
  }

  // 지금 아이피로 접속한 사람이 오늘 처음 온 사람인지 검사
  $check=mysql_fetch_array(mysql_query("select count(*) from counter_ip where date>=$today and date<$tomorrow and ip='$user_ip'",$connect));
  // 오늘 처음왔을때
  if($check[0]==0)
  {
   // 전체랑 오늘 카운터 올림
   mysql_query("update counter_main set unique_counter=unique_counter+1, pageview=pageview+1 where no=1 or date='$today'", $connect);  

   // 오늘 시간대별 ip 입력
   mysql_query("insert into counter_ip (date, ip) values ('$time','$user_ip')",$connect);
  }
  // 오늘 한번 이상 온 상태일때
  else
  {
   // 페이지뷰 올림
   mysql_query("update counter_main set pageview=pageview+1 where no=1 or date='$today'", $connect);
  }

  // referer 값 저장
  $check2=mysql_fetch_array(mysql_query("select count(*) from counter_referer where date=$today and referer='$referer'",$connect));
   if($check2[0]==0)
   {
    mysql_query("insert into counter_referer (date, referer, hit) values ('$today','$referer','1')", $connect);
   }
   else
   {
    mysql_query("update counter_referer set hit=hit+1 where date=$today and referer='$referer'", $connect);
   }

//------------------- 카운터 값 읽어오는 부분 ----------------------------------------------------------------------
  // 전체
  $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];

  // 오늘 카운터 읽어오는 부분
  $detail=mysql_fetch_Array(mysql_query("select unique_counter, pageview from counter_main where date='$today'", $connect));  
  $count[today_hit]=$detail[0];
  $count[today_view]=$detail[1];

  // 어제 카운터 읽어오는 부분
  $detail=mysql_fetch_Array(mysql_query("select unique_counter, pageview from counter_main where date='$yesterday'", $connect));
  $count[yesterday_hit]=$detail[0];
  $count[yesterday_view]=$detail[1];

  // 최고 카운터 읽어오는 부분
  $detail=mysql_fetch_Array(mysql_query("select max(unique_counter), max(pageview) from counter_main where no>1", $connect));
  $count[max_hit]=$detail[0];
  $count[max_view]=$detail[1];

  // 최저 카운터 읽어오는 부분
  $detail=mysql_fetch_Array(mysql_query("select min(unique_counter), min(pageview) from counter_main where no>1 and date<$today", $connect));
  $count[min_hit]=$detail[0];
  $count[min_view]=$detail[1];

?>


이렇게 길게 나와있습니다. 자 그럼 어제 방문자수와 페이지뷰를 고쳐봅시다.

처음 고칠 부분은 바로 다음 부분입니다.

  // 오늘의 날자 구함
  $today=mktime(0,0,0,date("m"),date("d"),date("Y"));
  $yesterday=mktime(0,0,0,date("m"),date("d"),date("Y"))-60*60*24;
  $tomorrow=mktime(23,59,59,date("m"),date("d"),date("Y"));
  $time=time();

잘 보시면 $today와 $yesterday의 차이는 끝부분에 있습니다 "-60*60*24"

아마도 60초 x 60분(1시간) x 24시간(하루) 라는 식으로 초단위로 계산하는 것 같습니다.

투데이와 예스터데이를 다음과 같이 바꿔줍니다.

  $today=mktime(0,0,0,date("m"),date("d"),date("Y"))-60*60*24;
  $yesterday=mktime(0,0,0,date("m"),date("d"),date("Y"))-60*60*24*2;

이렇게 되면 실제적으로 $today에는 어제날짜가, $yesterday에는 그저께 날짜가 들어갑니다.

만약 오늘 방문자수와 페이지뷰를 수정하신다면 위의 단계는 필요없습니다.


그 다음은 아래의 부분을 수정하셔야 됩니다.

   // 전체랑 오늘 카운터 올림
   mysql_query("update counter_main set unique_counter=unique_counter+1, pageview=pageview+1 where no=1 or date='$today'", $connect);  

여기서 아래의 +1 대신에 기본적으로 방문하는 방문자수와 페이지뷰 수치를 넣어주세요.

unique_counter=unique_counter+1
pageview=pageview+1

만약 어제 방문자수가 68명이었고 페이지뷰는 대략 92였다면

unique_counter=unique_counter+68
pageview=pageview+92

이렇게 수정해주시면 됩니다.

또한 만약 고정IP를 쓰시는 분이시라면 IP를 체크하는 루틴을 삭제를 해주셔야 됩니다.

즉 아래의 부분을
--------------------------------------------------------------------------------------------------

  // 지금 아이피로 접속한 사람이 오늘 처음 온 사람인지 검사
  $check=mysql_fetch_array(mysql_query("select count(*) from counter_ip where date>=$today and date<$tomorrow and ip='$user_ip'",$connect));
  // 오늘 처음왔을때
  if($check[0]==0)
  {
   // 전체랑 오늘 카운터 올림
   mysql_query("update counter_main set unique_counter=unique_counter+1, pageview=pageview+1 where no=1 or date='$today'", $connect);  

   // 오늘 시간대별 ip 입력
   mysql_query("insert into counter_ip (date, ip) values ('$time','$user_ip')",$connect);
  }
  // 오늘 한번 이상 온 상태일때
  else
  {
   // 페이지뷰 올림
   mysql_query("update counter_main set pageview=pageview+1 where no=1 or date='$today'", $connect);
  }



밑에 있는 것과 같이 수정하시면 됩니다.

------------------------------------------------------------------------------------------------------

   // 전체랑 오늘 카운터 올림
   mysql_query("update counter_main set unique_counter=unique_counter+68, pageview=pageview+92 where no=1 or date='$today'", $connect);  

   // 오늘 시간대별 ip 입력
   mysql_query("insert into counter_ip (date, ip) values ('$time','$user_ip')",$connect);



위와 같이 수정하시면(if else구문에서 if의 긍정부분만 남기는 겁니다) IP 체크를 안하게 됩니다.

전체적으로 이렇게 수정하신후 이 파일을 저장하세요.

그런후 ftp로 물론 업로드 하시구요.

그 다음에 include 문을 이용해서 카운터가 삽입되는 페이지에 가서 "새로고침" 버튼을 한번만 눌러주세요. 만약 두번 눌러주시면 원하는 방문자수의 2배가 됩니다.

분명 어제 "0/0" -> "68/92"로 바뀌어 있는 걸 보실겁니다.


만약 오늘 것을 고치신다면

  // 오늘의 날자 구함
  $today=mktime(0,0,0,date("m"),date("d"),date("Y"));
  $yesterday=mktime(0,0,0,date("m"),date("d"),date("Y"))-60*60*24;
  $tomorrow=mktime(23,59,59,date("m"),date("d"),date("Y"));
  $time=time();

아까 "어제"꺼 고칠때 고쳤던 윗 부분은 그냥 두시면 됩니다.

단지 아래와 같이 더해지는 숫자를 '1'에서 원하시는 방문자수와 페이지뷰로 바꾸시면 됩니다. 아래에는 방문자수 '68'과 페이지뷰 '92'를 가정해서 고쳐본 것입니다.

   // 전체랑 오늘 카운터 올림
   mysql_query("update counter_main set unique_counter=unique_counter+68, pageview=pageview+92 where no=1 or date='$today'", $connect);  

   // 오늘 시간대별 ip 입력
   mysql_query("insert into counter_ip (date, ip) values ('$time','$user_ip')",$connect);




즉, "어제"나 "오늘" 수정할때의 차이는 바로

  // 오늘의 날자 구함
  $today=mktime(0,0,0,date("m"),date("d"),date("Y"));
  $yesterday=mktime(0,0,0,date("m"),date("d"),date("Y"))-60*60*24;
  $tomorrow=mktime(23,59,59,date("m"),date("d"),date("Y"));
  $time=time();


위의 날짜 구하는 부분이 틀립니다.



이렇게 하시면 쉽게 어제, 오늘의 방문자수와 페이지뷰를 수정하실 수 있습니다.

하지만 일부러 방문자수와 페이지뷰를 무작정 높게 고칠필요는 없다고 봅니다.

단지 새로 카운터를 설치할 경우 도움을 드리고자 적어봤습니다.



######################################################################################################

그리고 다 수정하신 후 zerocounter.php3 파일은 원래대로 바꿔놓으셔야 합니다.

안그러면 1명 접속할 때마다 68씩 방문자수가 증가하니까요. ^^

######################################################################################################
제목 글쓴이 날짜
여러분이 원하시던 로또복권 소스공개~ [12] Dopesoul 2003.02.22
NZEO 이메일 인증 따라하기 [또 수정 --;] [44] file teslaMINT 2003.02.22
계정이 php를 지원하는지아닌지 잘 모를때... [16] 격투왕맹호 2003.02.19
유용한 함수 몇가지...;;;; [7] Yuki-H. 2003.02.19
PHP,자바스크립트 제 3탄! 아래에 헤더로 asx감추기를 이용한 PHP무비 플레이어! file ☆좀비파우더™ 2003.02.16
DB를 이용한 현재접속자 수 구하기 [6] 김현석 2003.02.14
[초간단] 헤더로 asx 파일 음악 주소를 숨겨봐요. [9] 모라미 2003.02.14
제로보드 스킨들이 어느 게시판에 쓰이는지 알아보는 소스 [12] teslaMINT 2003.02.11
V3 neo+ 항상 최신버전으로 자동링크시키기 [7] 김현석 2003.02.08
자신의 디비내용을 출력해주는 소스 [출처: phpschool.com] [5] 석이™ 2003.02.05
제로보드식 에러페이지 만들기 [2] .zeve 2003.02.04
야구 자료실 2 (목록 만들기) 한꼬마 2003.02.02
야구 자료실 만들기 1 [8] file 한꼬마 2003.01.30
PHP,자바스크립트 활용하기 #1 -무단링크라는 것은... [21] ☆좀비파우더™ 2003.01.30
^.^ 그림을 DB에 집어넣어 버리기.. [13] 아이쿠 2003.01.30
lotto 번호 추출기 [7] 갑빠™ 2003.01.29
제로보드 코멘트 수정 기능 구현!! [13] teslaMINT 2003.01.28
NZEO 쪽지 수신 허용/거부 따라하기 ~(=ㅁ=)~ [12] teslaMINT 2003.01.28
[제로카운터 수정하기#4-초보용] 인트로에서 카운트 체크하고 메인에서 카운트 보여주기 [3] 김태훈 2003.01.22
[제로카운터 수정하기#3-초보용] 어제 오늘 방문자수 변경하기 김태훈 2003.01.22