사이트 내 전체검색
Flash Counter 프로그램 설치 (apmsetup.com)
로빈아빠
https://cmd.kr/server/92 URL이 복사되었습니다.

본문

Flash Counter 프로그램 설치

이제 가장 간단한 프로그램인 Flash Counter 프로그램을 설치해 볼까요 ?
다운로드는

/apmtip/cgi_source/flashcount.zip

에서 다운로드 받으실 수 있습니다.

자 그럼 다운로드 받은 파일의 압축을 해제 하시고.
Apache 의 DocumentRoot 의 flashcount 디렉토리에 복사 합니다.

APM_Setup 으로 예를 들면

C:\APM_Setup\htdocs\flashcount

디렉토리가 되겠죠 ?

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

이렇게 4개의 파일이 있죠 ?

그럼 count.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 = ; ($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-$day\n"; $mon2++; $year2 += 1900; $yesterday = "$year2-$mon2-$day2\n"; #####연월일 비교 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,$lastday\n"; &unlock_close(CNT); #####HTTP헤더 print "Content-type: text/plain\n"; &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/plain\n\n"; print "$name파일을 열 수 없습니다.\n"; exit(0); } if ($uselock) { eval("flock(FILE, 2)"); if ($@) { print "content-type: text/plain\n\n"; 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 ''; } ###################################################################################################
그럼 위의 소스를 보시면 맨 윗줄에 #!/usr/bin/perl 위의 내용이 있죠 ? 그럼 이 것을 #!C:/Perl/bin/perl.exe 이렇게 perl.exe 의 위치로 변경하시고 저장합니다. 자 그럼 저장하고 이 CGI 프로그램이 동작하나 테스트를 해보시려면. http://localhost/flashcount/count.cgi cgi=./count.cgi&total=000002&yes=000000&today=000002&you=000001&load=end& 이렇게 나온다면 정상작으로 동작 하는것이겠죠 ? 예에서 처럼 500 에러가 나온다면.. CGI 소스의 이상이 있나 확인해 보시기 바랍니다. 자 그럼.. count.html 파일을 열어 볼까요 ? Flash count 프로그램의 예를 나타내는 HTML 소스 입니다.
flash-counter

댓글목록

등록된 댓글이 없습니다.

1,139 (20/23P)

Search

Copyright © Cmd 명령어 13.59.234.182