묻고답하기

플래시 카운터..
아마 인터넷 웹서핑을 많이 해보신분들은 아실겁니다.
예제는.. 여기로 들어가면 있구요..

예제보기

이 플래시 카운터가.. 총 4개의 파일로 이루어져 있습니다.

count.cgi
count.txt
count.swf
count.html

이렇게 이루어져 있는데.. 이중 txt파일은 카운터에 저장되는 조회수가 기록됩니다.
그리고 swf파일은 아시다시피 플래시 파일이구요. 그리고 html파일은 cgi파일을 불러오는
역할을 하는것 같은데.. 확실히는 모르겠습니다. 우선 cgi파일을 열어보면..

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

#!/usr/bin/perl
#

#설정___######################################################################

$cgi              = "./count.cgi";        #CGI스크립트가 있는 주소
$file             = "./count.txt";        #로그파일이 있는 주소
$cookiename       = 'count';              #쿠키이름(변경가능)
$dday             = 90;                   #쿠키의 기한일
$uselock          = 0;                    #락 사용여부(0=no 1=yes)

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

&lock_open(CNT, "+<$file");

$cnt = <CNT>;
($total_c,$yesterday_c,$today_c,$lastday) = split(/,/, $cnt);

$total_c++;
$today_c++;
$your_c = &get_cookie($cookiename) + 1;

#####오늘과 어제의 연월일 취득
$ENV{'TZ'} = 'JST-9';
( $sec, $min, $hour, $day, $mon, $year )      = localtime(time);
($sec2, $min2, $hour2, $day2, $mon2, $year2 ) = localtime(time-24*60*60);

$mon++;
$year += 1900;
$today = "$year-$mon-$dayn";

$mon2++;
$year2 += 1900;
$yesterday = "$year2-$mon2-$day2n";

#####연월일 비교
if ($today ne $lastday) {
    
     if ($yesterday ne $lastday) {
         $yesterday_c = 0;
     } else {
         $yesterday_c = $today_c;
     }
     $today_c = 1;
     $lastday = $today;
}

#####6자리수 변환
$total_c     = sprintf("%06d", $total_c);
$today_c     = sprintf("%06d", $today_c);
$yesterday_c = sprintf("%06d", $yesterday_c);
$your_c      = sprintf("%06d", $your_c);

seek(CNT, 0, 0);
print CNT "$total_c,$yesterday_c,$today_c,$lastdayn";

&unlock_close(CNT);

#####HTTP헤더
print "Content-type: text/plainn";
&set_cookie($cookiename);
print "n";
print "cgi=$cgi&total=$total_c&yes=$yesterday_c&today=$today_c&you=$your_c&load=end&";

exit(0);

#####파일락 열기
sub lock_open {
        local(*FILE, $name) = @_;
        if (!open(FILE, $name)) {
                print "content-type: text/plainnn";
                print "$name파일을 열 수 없습니다.n";
                exit(0);
                }
        if ($uselock) {
                eval("flock(FILE, 2)");
                if ($@) {
                        print "content-type: text/plainnn";
                        print "$@이 환경에서는 flock 은 사용할 수 없습니다$uselock = 0 으로 해주세요n";
                        exit(0);
                }
        }
        seek(FILE, 0, 0);
}

#####파일락 닫기
sub unlock_close {
        local(*FILE) = @_;
        if ($uselock) {
                eval("flock(FILE, 8)");
                }
        close(FILE);
}

#####===쿠키처리===############################################################################

#####쿠키유효기간
sub get_cookie_date {
        $ENV{'TZ'} = 'JST-9';
           my( $csec, $cmin, $chour, $cday, $cmon, $cyear, $cwday )
                = localtime(time + $dday*60*60*24);
        my(@month) = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
        my(@week) = qw(Sun Mon Tue Wed Thu Fri Sat);
        return sprintf("%s, %d-%s-%04d %02d:%02d:%02d GMT",
                                $week[$cwday],$cday,$month[$cmon+1],$cyear+1900,$chour,$cmin,$csec);
}

#####쿠키의 출력
sub set_cookie {
        local($cookiename2) = @_;
        $cookiedate = &get_cookie_date;

        print "Set-Cookie: $cookiename=$your_c; expires=$cookiedate; n";
}

#####쿠키의 취득
sub get_cookie {
        local($cookiename1) = @_;
        @pairs = split(/; /, $ENV{'HTTP_COOKIE'});
        foreach $pair (@pairs) {
                ($name, $value) = split(/=/, $pair);
                if ($name eq $cookiename) {
                        return $value;
                }
        }
        return '';

}

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

이렇게 이루어져 있습니다.
제가 이런 것을 볼줄을 몰라서 그러는데..
혹시 카운터의 중복을 없애는 방법이 없을까요?
어떻게 수정하면 카운터의 중복으로 올라가는 조회수를 않나타나게 할수있나요...

위 예제를 보다가.. 몇초후에.. 새로고침(F5)를 누르면 전체 조회수를 비롯해서..
You란의 숫자가 올라가는 것을 알수 있습니다. 이런것을.. 하루 한번씩만 올라가게 하는법을..
아시는분 계시나요... 아시면 답변좀.. 부탁드리겠습니다.
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
XESTUDIO 무한 스크롤 도움주실분 (xe php 데이터베이스 연동방법) [2] 2015.04.18 by XESTUDIO
오락실주인 크롬 문의 ( 윈도우미디어 ) 안나와요 ㅠ [4] file 2015.04.18 by 오락실주인
XESTUDIO 가입하는 회원마다 정보창안에 게시판 부여하는 방법 [2] 2015.04.18 by 닉이
김학재 홈페이지가 한번에 접속이 안되는 이유는 뭘까요?? [2] 2015.04.18 by 로이조52
ㅊㄷㄱ 글의 일부만 볼수있고 일부는 댓글을 달아야 볼 수 있는 기능이 구현가능할까요? [4] 2015.04.18 by ㅊㄷㄱ
피아노트 안녕하세요. XEDITION 스킨 질문이 있습니다. [2] file 2015.04.18 by 피아노트
seedlee 사이트맵별로 기본언어 지정에 관하여... [1] 2015.04.18 by ehii
필드테스터 XEDITION 게시판 상단의 이미지 교체 [2] file 2015.04.19 by mAKEkr
T3RR3T 꼭좀도와주세요.. ㅜㅜ [1] 2015.04.19 by mAKEkr
XE모듈 절 구해주실분 계신가요..디도스 초당 400MB.. [1] 2015.04.19 by mAKEkr
소금설탕 포인트 팡팡 애드온 member_srl 에 회원번호 (제발도와주세요) [1] 2015.04.19 by 로이조52
졸라맨 jquery ajax xe충돌 어디서 나는건지 봐주실분 있나요?(소스있음) file  
아형여옹 그룹 회원 등급 표시 문의드려요  
똥꼬똥침 모바일에서 글작성시 소스 코드로 보여지는 현상 해결법.  
알피레이드 일본에 서버를 둔 웹호스팅을 추천받고 싶습니다. [2] 2015.04.19 by 알피레이드
행복하세여! xe마켓 라이센스 확인? [2] 2015.04.19 by 알피레이드
고종훈 예전 닉네임의 작성글검색시 변경 된 닉네임으로 글이 검색됩니다 [1] 2015.04.19 by kdp
정서에안좋아 스케치북5 게시판 모듈에서 빵조각 어떻게 없애요?? [2] 2015.04.19 by DoorWeb
가필드3D 스케치북5 스킨 제어판 색상 조정 문의 [1] file 2015.04.19 by kdp
김동하123 팝업으로 인식하지 않고 다른 url로 가게 하는 방법  
加藤恵 보안문제 때문에 질문드립니다. [4] 2015.04.19 by 키스투엑스이
melancholy8914 위젯 다운받아 서버에 올렸는데 왜 Admin에서는 보이지 않는 걸까요 ㅠ [2] file 2015.04.19 by melancholy8914
newi 에러 좀 봐주세요. [3] 2015.04.19 by YJSoft
김동하123 스케치 바로가기 게시판에서 바로 안가고 안으로 들어감 [2] 2015.04.19 by YJSoft
네오윈드 누리고 paypal모듈 에러 [1] 2015.04.19 by wiley
수지♥ XE 사이트처럼 <최종 글> 사용 방법 [2] 2015.04.19 by 수지♥
꿈틀잉 글쓰기시 내용입력란이 안보여요 [2] file 2015.04.20 by 꿈틀잉
10000kg XE 설치 환경에 대해서 문의 드립니다. [2] file 2015.04.20 by 10000kg
피아노트 ckeditor 에서 bgmstore의 embed가 안됩니다. [4] 2015.04.20 by 피아노트
이주로 지도를 통한 ... 회원 찾기는 어떻게 제작 및 진행을 해야하는지? [2] 2015.04.20 by 이주로