묻고답하기

안녕하세요.

다름이아니라, 제가 받은 카운터소스를 이용하여 제 홈에 적용시켜 보았는데 다른건 잘 되는데 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 남기남
마법사 비회원이 볼때 댓글 색상 바꾸는법 [7] 2015.11.30 by 마법사
shu**** 기본레이웃에서 비주얼이미지 관련 문의 [1] 2015.11.30 by 믿는데로된다
thdwjdtjr 폰트에 "나눔고딕, 맑은고딕"등을 넣고 실습니다. [2] file 2015.11.30 by thdwjdtjr
smiling xe메인에 전면으로 플래시파일을 넣고 싶은데요.. [3] 2015.11.30 by smiling
억세풀 타 사이트 게시판 내용을 Parsing 해오려고 하는데 내용을 일부분만 Parsing해옵니다.  
피요 메일인증이 계속 뚫리는데 막을 방법이 없나요? [2] 2015.11.30 by 파파
제로초보2 호스팅 이전후 일부 컴퓨터에서 사이트가 열리지 않는 부분 질문좀요 [1] 2015.11.30 by 로이조52
비타500 싸이트에 imgur 업로드를 적용하고 싶은데요ㅠㅠ [2] 2015.11.30 by 비타500
DOUBLEP 외부페이지에서 layout->info 변수를 사용할 수 없나요? [1] 2015.11.30 by mindpainter
하루루 스크롤 배너 적용방법? [1] file 2015.11.30 by mindpainter
은우마스터 대분류 메뉴에 링크 걸지 않기 [1] 2015.11.30 by mindpainter
퍼즐조각 제로보드4.. 반응형 적응하기 너무 어렵네요 ㅠㅠ  
isky2048 에디터 관련 질문하나 합니다 ㅠㅠ  
다롱이397b7 누리고 처음 설정하는 방법을 모르겠습니다. file  
3256326321434 XE 러시아 언어도 되나여? [1] 2015.12.01 by neostream
레인포드 xe로 로그인한 정보를 PHP로 받아 플래시에 뿌리려고합니다  
비타500 imgur api로 올린 이미지는 imgur 싸이트에서 확인할 수 없나요? [3] 2015.12.01 by BJ람보
ciran**** 댓글 포인트 질문입니다  
anfield xe 버전문의 [1] 2015.12.01 by Luatic™
비상9 어느날 갑자기 파일 다운로드 할때 잘못된 요청이라는 메시지 출력시 처리 방안  
다롱이397b7 누리고 에서 상품타입은 어떻게 선택 하나요 file  
Volun 게시판 피드 공개 기본값 변경  
lemon 로그인 오류 현상 일어납니다. [2] 2015.12.01 by lemon
WCGM XEDITION 레이아웃 가로(폭) 고정 방법? [3] 2015.12.01 by ehii
루이 PHP 5.2 => 5.3 서버이전 문의  
좀밤농구 게시물 5개만 홈페이지 메인에 보여주고 싶습니다. [1] 2015.12.01 by Double'U'
lemon 스케쥴 모듈 DB  
xe초보자 자기 게시물에 쓴 댓글 수만 출력하려면? [1] 2015.12.01 by sejin7940
원동원 X3 호스팅 관련 문의 [2] 2015.12.01 by 퍼니엑스이
웨이브쿡 모듈이름 변경후 관리자 페이지에 모든 메뉴가 안됩니다. [1] 2015.12.01 by sejin7940