묻고답하기

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

예제보기

이 플래시 카운터가.. 총 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 남기남
신성규 제로보드의 아이콘... [2] 2007.08.10
정영훈 플래시 카운터에 대한 질문입니다. [1] 2007.08.10
공유기시로! 아파치 서버에서 계정을 줄때 [4] 2007.08.10
기다림 XP 에서 텔넷이랑 ftp 하는 방법좀. [2] 2007.08.10
기다림 주민등록번호만 받고 성별이랑 생일 추출해내는 소스좀..  
정호석 나모.. 아주 심각한 문젠데.. 질문이에요..ㅠㅠ [2] 2007.08.10
박종석 첫화면에 최근게시물 어떻게 올리나요?  
코코푸르나 최근게시물을 플래시 위로 오게 할 수 없나요?? [1] 2007.08.10
『PokerFace』™ 레이어 메뉴 만들기;;  
이병희 홈페이지 첫 화면에 게시판 최근 내용 올리는 방법 [1] 2007.08.10
이병희 [re] 홈페이지 첫 화면에 게시판 최근 내용 올리는 방법 [1] 2007.08.10
정호석 스크롤 색상 관련 질문이요.ㅠ.ㅠ <수정..> [1] 2007.08.10
기다림 form 에서 입력 못하게 하는 방법좀.. [2] 2007.08.10
-은지꼬- 갤러리 태그에 관련된 질문입니다 [2] 2007.08.10
ㅡㅅㅡㅋ 포토샾 질문 -+_-/ [1] 2007.08.10
공유기시로! http://도메인/~아이디 를 http://도메인/아이디 로 [2] 2007.08.10
[se.a.iu] 포토샵 다음과 같은 메시지 해결책은..? [2] 2007.08.10
김상은 나모/ 소스 올려요, 제발 도와주세요..ㅠ_ㅠ [4] 2007.08.10
김나현 그게; [1] 2007.08.10
울트라맨 프레임에 관해서 [1] 2007.08.10
남현주 윈도 메뉴글씨가 이상해요.. 최소화최대화닫기 버튼이 숫자로..ㅠ.ㅠ [2] file 2007.08.10
A|X 제로보드 로그인여부로 페이지 접속권한 주는 방법 부탁드립니다. [3] 2007.08.10
박설희 이거좀 해석좀 해주세요 ㅠㅠ [3] 2007.08.10
이태운 프레임셋 관련 질문 [1] 2007.08.10
이영준 윈도우상태표시줄에 아래 mplayer를 띄울수 있나요? [2] 2007.08.10
이인종 제로보드에서 embed태그로 동영상 불러왔을떄 [1] 2007.08.10
박은주 음악설치여..  
cez↙ 일러스트레이터8.0과 플래시 5 .... [1] 2007.08.10
손희진 FTP 업로드에 대해... [1] 2007.08.10
Darkness 포토샵 7.0에서 선그릴때..