웹마스터 팁

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

우선 제로카운터 폴더에 있는 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씩 방문자수가 증가하니까요. ^^

######################################################################################################
제목 글쓴이 날짜
자신의 디비내용을 출력해주는 소스 [출처: 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
[제로카운터 수정하기#2-초보용] 새로 설치후 예전 방문자수로 고치기(최고방문자수 문제해결됨) 김태훈 2003.01.22
[제로카운터 수정하기#1-초보용] 테이블 다 지우고 새로 설치하기 [2] 김태훈 2003.01.22
엔지오 처럼 주소 /?channel=about 식으로 만들기 [18] 위니 2003.01.21
국내 IP 조회하는 클래스.(소켓사용) [1] 행복한고니 2003.01.17
텍스트 링크, 배너 링크*랜덤 (틀팁포함) [3] 둘리나라™ 2003.01.16
파일 하나로 끝내는-_- NZEO 북마크...-_-a [14] ineal 2003.01.13
웹 인증 보호, 윈도우 로그인 폼 이용 (authenticate) [9] file 둘리나라™ 2003.01.13
[동주아빠] PHP 게시판(끝.29강) - 삭제(delete_ok.php) [18] 손병목 2003.01.11
[동주아빠] PHP 게시판(28강) - 삭제(delete.php) 손병목 2003.01.11