묻고답하기

안녕하세요.

다름이아니라, 제가 받은 카운터소스를 이용하여 제 홈에 적용시켜 보았는데 다른건 잘 되는데 2가지가 잘 안되서 이렇게 글을 올립니다.

1. '어제'를 인식하지 못하는것 같습니다.
    -즉 어제방문자수는 항상 '0'을 나타내고
     오늘방문자수만 계속더해져서 증가합니다.

2.  통계 php파일을 index.html에 불러들여 링크시
     켜 놓았으나 윈도우창이 안뜨고 에러만 납니다.

제가 소스를 올려드릴테니 좀 점검해 주셨으면 합니다. (참고;노플레임으로 만들었습니다.)

-------------------------------------------------
[counter.php]
<?
// 기본 변수
$절대경로 = "/절대경로"; // counter.php 파일이 있는 절대 경로 지정
list($yy,$mm,$dd,$hh,$yo) = explode("-",date("Y-m-d-H-w"));                         // 현재 년,월,일,시간별,요일별 구함
list($oyy,$omm,$odd)      = explode("-",date("Y-m-d",mktime(0,0,0,$mm,$dd-1,$yy))); // 어제 년,월,일 구함
$아이피 = $HTTP_SERVER_VARS["REMOTE_ADDR"];// 방문자 IP

// 파일명 설정
$파일[기본] = $절대경로."/counter.cgi";       // 기본 파일
$파일[오늘] = $절대경로."/".$mm.$dd.".cgi";   // 오늘 파일
$파일[어제] = $절대경로."/".$omm.$odd.".cgi"; // 어제 파일

// 위치 지정 ($파일[기본]에서의 각각의 값 저장 위치 - 전체,오늘[,어제,최고],시간별,요일별)
$위치[방문객]   = array(0,   10,     /*20,     30,*/     ($hh+4)*10,     ($yo+28)*10);
$위치[페이지뷰] = array(351, 351+10, /*351+20, 351+30,*/ 351+($hh+4)*10, 351+($yo+28)*10);

// 사용자 정의 함수
function 생성 ($파일명, $값) {
  $임시파일핸들 = fopen($파일명,"w"); // 쓰기 모드로 오픈
  fwrite($임시파일핸들,$값); // 값 기록
  fclose($임시파일핸들); // 파일 닫기
  chmod($파일명,0777); // 권한 변경
}
function 읽기 ($파일핸들,$크기) {
  $임시변수 = fread($파일핸들,$크기); // 파일의 크기만큼 읽음
  return $임시변수; // 값 반환
}
function 추가 ($파일핸들, $값) {
  $값.="n"; // 다음줄 추가 ($값=$값."n";)
  fwrite($파일핸들,$값); // 값 기록
}

function 업뎃 ($파일핸들, $위치값) {
  $배열크기 = sizeof($위치값); // $위치값 변수의 배열 크기를 구함
  for($i=0;$i<$배열크기;$i++) { // 배열의 크기만큼 반복
    $임시변수 = 0; // 임시 변수의 값 초기화
    fseek($파일핸들,$위치값[$i]); // 해당 위치로 이동
    $임시변수 = fread($파일핸들,10)+1; // 10바이트 읽은 값에 1 더함
    if ($i==1) { // 만약 2번째라면 (0부터 시작하니까 1은 두번째 - 오늘위치)
      $오늘 = $임시변수; // $오늘 변수에 현재 읽은 값 저장
      fseek($파일핸들,$위치값[$i]+20); // 현재 위치로부터 20바이트 뒤로 이동 (최고위치)
      $최고 = fread($파일핸들,10); // 10바이트 읽음
      if ($오늘>$최고) { // 만약 $오늘 변수의 값이 $최고 변수의 값보다 클 경우
        fseek($파일핸들,$위치값[$i]+20); // 최고 위치로 이동
        fwrite($파일핸들,sprintf("%10d",$오늘)); // $오늘 변수의 값 기록
      }
    }
    fseek($파일핸들,$위치값[$i]); // 해당 위치로 이동
    fwrite($파일핸들,sprintf("%10d",$임시변수),10); // 새로운 값 기록
  }
}

// 프로그램 시작
if (file_exists($파일[어제]))  unlink($파일[어제]); // 만약 (어제 파일 있다면) 어제파일 삭제;
if (!file_exists($파일[오늘])) 생성($파일[오늘],"n"); // 만약 (오늘 파일 없다면) 오늘파일 생성;
if (!file_exists($파일[기본])) {
  for($i=0;$i<35;$i++) $초기값.="         0"; // 기본 파일에 저장될 초기값 구함
  $초기값 = $초기값."n".$초기값; // (4+24+7) * 2 = 방문객+페이지뷰
  생성($파일[기본],$초기값); // 해당 값으로 파일 생성
}

// 파일 열어둠
$방문파일핸들 = fopen($파일[오늘],"r+"); // 오늘 파일 읽기/쓰기 모드로 오픈
$기본파일핸들 = fopen($파일[기본],"r+"); // 기본 파일 읽기/쓰기 모드로 오픈

$방문자 = 읽기($방문파일핸들,filesize($파일[오늘])); // 오늘 파일 크기만큼 읽어옴

if (!strpos($방문자,$아이피)) { // 아이피가 없으면
  추가($방문파일핸들,$아이피); // 아이피 추가
  업뎃($기본파일핸들,$위치[방문객]); // 방문객 증가
}
업뎃($기본파일핸들,$위치[페이지뷰]); // 페이지뷰 증가

fclose($방문파일핸들); // 파일 닫기
fclose($기본파일핸들); // 파일 닫기

?>

-------------------------------------------------
[status.php]
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>심플 통계</title>
<style>
<!--
p  { font-family:굴림체;      font-size:9pt; }
td { font-family:Small Fonts; font-size:7pt; }
-->
</style>
</head>
<body bgcolor="white" text="black" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">
<?

// 기본 설정
$절대경로   = "/절대경로"; // counter.php 파일이 있는 절대 경로 지정
$이미지경로 = "홈주소/카운터설치된 디렉토리"; // 카운터가 설치된 URL

// 파일명
$데이터파일 = $절대경로."/counter.cgi";         // 카운터 기록된 파일
$파랑       = $이미지경로."/blue.gif border=0"; // 파랑 이미지 파일의 URL
$빨강       = $이미지경로."/red.gif border=0";  // 빨강 이미지 파일의 URL

// 항목명 설정
$기본[항목] = array("전체","오늘","어제","최고");
$시간[항목] = array("00 시","01 시","02 시","03 시","04 시","05 시","06 시","07 시","08 시","09 시","10 시","11 시",
                    "12 시","13 시","14 시","15 시","16 시","17 시","18 시","19 시","20 시","21 시","22 시","23 시");
$요일[항목] = array("일요일","월요일","화요일","수요일","목요일","금요일","토요일");

// 기록되어 있는 카운트 값 읽어옴
$파일핸들 = fopen($데이터파일,"r"); // 읽기 모드로 오픈
for ($i=0; $i<35; $i++) { // 0부터 34까지 반복 (기본 4 + 시간별 24 + 요일별 7)
  fseek($파일핸들,$i*10); // 해당 위치로 이동
  $방문자   = fread($파일핸들,10); // 10 바이트 읽어옴
  fseek($파일핸들,$i*10+351); // 해당 위치에서 351 바이트 떨어진 곳(다음줄) 위치로 이동
  $페이지뷰 = fread($파일핸들,10); // 10 바이트 읽어옴
  if ($i<4)      { $기본[방문][] = $방문자; $기본[페이지][] = $페이지뷰; } // 전체,오늘,어제,최고 방문자와 페이지뷰값 저장
  elseif ($i<28) { $시간[방문][] = $방문자; $시간[페이지][] = $페이지뷰; } // 시간대별 방문자와 페이지뷰값 저장
  else           { $요일[방문][] = $방문자; $요일[페이지][] = $페이지뷰; } // 요일별 방문자와 페이지뷰값 저장
}
fclose($파일핸들); // 파일 닫기

function 그래프 ($배열값) { // 사용자 정의 함수
  global $파랑, $빨강; // 전역 변수 사용
  echo "<table border=0 cellpadding=1 cellspacing=1>n"; // 테이블의 시작
  $갯수       = sizeof($배열값[항목]); // 배열의 크기 구함
  $방문최대   = max($배열값[방문]);    // 방문자 값 중 제일 큰 값 구함
  $페이지최대 = max($배열값[페이지]);  // 페이지뷰 값 중 제일 큰 값 구함
  for ($i=0; $i<$갯수; $i++) { // 배열의 크기만큼 반복
    $방문길이   = ceil($배열값[방문][$i]/$방문최대*184); // 그래프의 길이 계산
    $페이지길이 = ceil($배열값[페이지][$i]/$페이지최대*184); // 그래프의 길이 계산
    echo "  <tr>n    <td width=52 align=right bgcolor=#CCCCCC><p>{$배열값[항목][$i]} </p></td>
    <td width=236 bgcolor=#EEEEEE><img src=$파랑 width=$방문길이 height=6> ({$배열값[방문][$i]})<br>
<img src=$빨강 width=$페이지길이 height=6> ({$배열값[페이지][$i]})</td>n  </tr>n";
  }
  echo "</table>n"; // 테이블의 끝
}

echo "<table border=0 cellpadding=1 cellspacing=0>
  <tr>
    <td valign=top>
<b>※ 기본</b>n";
그래프($기본); // 함수 호출

echo "<br>
<b>※ 요일별</b>n";

그래프($요일); // 함수 호출

echo "<br>

<p><b>※ Info.</b><br>
<img src=$파랑 height=6 width=100> [방문자]<br>
<img src=$빨강 height=6 width=100> [페이지뷰]
</p>
</td>
    <td valign=top>
<b>시간별</b>n";

그래프($시간); // 함수 호출

echo "</td>
  </tr>
</table>n";
echo "현재 접속자 정보<br><br>
아이피 : $HTTP_SERVER_VARS[REMOTE_ADDR]<br>
브라우저 : $HTTP_SERVER_VARS[HTTP_USER_AGENT]";

?>
</body>
</html>


-------------------------------------------------
[read.php]
<?
// 기본 설정
$절대경로   = "/절대경로"; // counter.php 파일이 있는 절대 경로 지정
$데이터파일 = $절대경로."/counter.cgi"; // 카운터 기록된 파일
$파일핸들 = fopen($데이터파일,"r");         // 읽기 모드로 오픈
// 전체
fseek($파일핸들,0);                         // 해당 위치로 이동 (방문자)
$count[total_visit]  = fread($파일핸들,10); // 10 바이트 읽어옴
fseek($파일핸들,351);                       // 해당 위치로 이동 (페이지뷰)
$count[total_page]   = fread($파일핸들,10); // 10 바이트 읽어옴
// 오늘
fseek($파일핸들,10);                        // 해당 위치로 이동 (방문자)
$count[today_visit]  = fread($파일핸들,10); // 10 바이트 읽어옴
fseek($파일핸들,361);                       // 해당 위치로 이동 (페이지뷰)
$count[today_page]   = fread($파일핸들,10); // 10 바이트 읽어옴
// 어제
fseek($파일핸들,20);                        // 해당 위치로 이동 (방문자)
$count[yester_visit] = fread($파일핸들,10); // 10 바이트 읽어옴
fseek($파일핸들,371);                       // 해당 위치로 이동 (페이지뷰)
$count[yester_page]  = fread($파일핸들,10); // 10 바이트 읽어옴
// 최고
fseek($파일핸들,30);                        // 해당 위치로 이동 (방문자)
$count[max_visit]    = fread($파일핸들,10); // 10 바이트 읽어옴
fseek($파일핸들,381);                       // 해당 위치로 이동 (페이지뷰)
$count[max_page]     = fread($파일핸들,10); // 10 바이트 읽어옴
fclose($파일핸들);                          // 파일 닫기
?>


-------------------------------------------------
[index.html]
<? include "./counter/counter.php"; ?>
<HTML>

<HEAD>

<TITLE>study room</TITLE>
.
.
.
</head>
<body>
.
.
.

<!-카운터->
<tr><td align=center valign=middle>
<font size=2 face="bookman old style" color=#FF9900><B>counter</b></font>
</td></tr>
<tr><td align=left valign=middle bgcolor=white>
<? include "./counter/read.php"; ?>
<font size=2 face=돋움>
    어제방문 : <?=$count[yester_visit]?><br>
    오늘방문 : <?=$count[today_visit]?><br>
    전체방문 : <?=$count[total_visit]?><br>
    어제페이지뷰 : <?=$count[yester_page]?><br>
    오늘페이지뷰 : <?=$count[today_page]?><br>
    전체페이지뷰 : <?=$count[total_page]?><br>
<a href=javascript:void(window.open('http://홈주소/counter/status.php','status','width=300,height=500,resizable=no,scrollbars=yes,toolbars=no')) onfocus=blur()><font color=green>    통계</font></a>
</font>
</td></tr>
.
.
.
</body>
</html>
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
배상윤 소스 좀봐주세요........[급........함]  
이은경 으.... 팝업창 말인데여~ [2] 2007.08.10
공병호 자바관련 메뉴인데요..... 아무리 해도.... 흑흑.... 제발부탁드립니다. [1] 2007.08.10
김수혜 레이어 사용한 하위메뉴 나타나기....-_-;; [7] 2007.08.10
최원혁 [re] 최근게시물 어떻게 다는건지..  
이호한 [re] 에러페이지를 지정한 페이지로 할 때...  
Eccen [re] 깔끔한 새창띄우기를 하고 싶은데...이상해서요  
sunart 깔끔한 새창띄우기를 하고 싶은데...이상해서요  
Eccen [re] 트래픽이 모에욤??? ■▦▩▥▧▨▤▒™ file  
임현 자바스크립트 잘아시는부운~ 팝업창 땜에..ㅠㅜ [5] 2007.08.10
아시카 한달을 헤메도..... 알려주실분 급구 [5] 2007.08.10
sisazz dchat 라고 아시나요? -_-  
곽상율 도와주세염~  
군인 노프레임.. 알려주세요.. -.- [1] 2007.08.10
LibsNet Jsp 에서 디비에다가 한글 값을 입력하고싶은데.. [2] 2007.08.10
NetPia [612번글 답변] 마우스 over시에 우측에 해당이미지 보여주기 스크립트  
신검랑 이몸이 초보라..도저히 답답해서 질문요..가르쳐주세영. [1] 2007.08.10
성병학 카운터의 어제방문자가 계속 ''0''으로 나타나는군요. [2] 2007.08.10
이호한 [re] GD에서 외부 png이미지를 여러개 불러오는 방법 [1] 2007.08.10
방제천 페이지에 오류가 있습니다 ???? [1] 2007.08.10