묻고답하기

안녕하세요.

다름이아니라, 제가 받은 카운터소스를 이용하여 제 홈에 적용시켜 보았는데 다른건 잘 되는데 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 남기남
characte**** 메인메뉴에 페이지 맨 아래로 보내기  
은빛만월 DDNS와 도메인 포워딩을 했는데 도움이 많이 필요합니다~~~ [2] 2015.11.29 by 은빛만월
홈런볼11 조건문 문의 [2] 2015.11.29 by 홈런볼11
홈런볼11 홈페이지 형식 체크 부분  
가브리엘조 DNS 변경 후 500에러  
나이너 가상서버로 옮기는방법? [1] 2015.11.29 by 에도가와
XESTUDIO 권한이없습니다 경고창 수정경로 [4] 2015.11.29 by XESTUDIO
언제어디서나 로그파일 관련 문의  
언제어디서나 XE보드 코어 자동업데이트 관련 문의  
gnurails 로그인 페이지를 따로 빼내고 싶습니다  
XESTUDIO 사진 업로드가 안됩니다. [1] 2015.11.28 by XESTUDIO
원동원 출석부 모듈 문의 file  
신인류 content 위젯에서 제목에 태그가 그대로 나오네요.. file  
thdwjdtjr 스케치북 게시판에서 "날짜"를 "등록일"로 변경 file  
모얼더 일본에서 많이 쓰는 일본어 폰트를 알고 싶습니다  
모얼더 게시판 ID 값을 변경 시켜도 괜찮을까요 [2] 2015.11.28 by 모얼더
XE모듈 텍스타일 관리자 페이지 오류.. [1] file 2015.11.28 by 야매토끼
라자루스 스케치북에서 대댓글을 에디터로 바로 작성하는 방법 문의 [4] 2015.11.29 by dazy
조리퐁 코어 업데이트 문의 [3] 2015.11.28 by 조리퐁
하늘높이 게시판 (board)를 홈에 만들고 싶은데요... [1] 2015.11.27 by 마음의빈자리
추억팔이 본문 링크 색상 강조 file  
슈네트 제로보드4로 운영되는 홈페이지에 Xe를 설치하면 [1] 2015.11.27 by sejin7940
화랑529 스케치북5 작성자가 자신의 글에 댓글을 작성할 때. [1] 2015.11.27 by 라자루스
피요 회원가입 Captcha Member 애드온 스팸에 뚤리네요.. [5] 2015.11.27 by newi
화랑529 XE 다루기 위해서 어떤 언어 공부를 해야하나요 ? [4] 2015.11.27 by 화랑529
슈네트 제로보드4에서 xe로 이전하는데요 [2] 2015.11.27 by 슈네트
isky2048 게시글 첨부파일 배열?로 불러오는 방법  
hpsong 특정 아이디로 회원 아이디 목록만 출력할 수 있는지요? file  
aaa 모바일에서 글자길이설정이 안되는거때매 문의드립니다.  
GINA 에디터 폰트추가 [1] 2015.11.26 by 라자루스