훌륭카운터는 기본적으로 카운팅(접속자수 계산) 하는 프로그램입니다. 기본적인 기능은 접속자수(총계, 어제, 오늘, 현재)를 계산하며, 별도의 프로그램으로 통계치를 내는 기능을 가지고 있습니다.
일별, 월별, 년별, 기타 통계치를 만들어 보여주며 각각의 브라우져/운영체제/시간별 분석을 제공합니다.
평가하기
::::::: 훌륭 카운터(ver 1.0) ::::::::
예를 보시려면 http://hulryung.com/stat/stat.asp 이곳을 참고 하시길 바랍니다.
::::::: 쓸데없는 말.. ::::::::
ASP를 할 줄 안다! 고 하시는 분들중에 카운팅 프로그램 한개쯤 안만들어 보신분이 없을줄
압니다. 그만큼 기본적이고 또 쉽고 여러가지 방법이 있는 프로그램이지요. FSO를 이용하거나
DB를 이용하거나.. 그리고 자신의 웹페이지에 총 방문자수, 어제,오늘,지금 방문자수를
기록하는것도 재밌구요.. 그래서 한번 보기좋게 통계도 내고 웹로그 파일 안 건드리고 빼내올
수 있을만큼(다~는 아니죠? ^^) 빼내와서 한번 써보자.. 는 생각에 만들어 봤습니다.
::::::: 설치 ::::::::
생각보다는 간단합니다. 먼저 압축 파일을 풀어보시면 안에 sql이라는 확장자가 들어있는 파일이
있는데 그것을 쿼리 아날라이져에서 실행시키시면 해당 디비에 stat 이라는 테이블이 하나 생성
됩니다. 이제 그 테이블에 모든 데이터들이 들어갈 겁니다.
그리고 웹 루트 디렉토리에 보면 global.asa라는 파일이 있는데 이 부분을 수정하셔야 합니다.
다음은 제가 쓰고 있는 global.asa파일입니다.
<SCRIPT LANGUAGE="VBScript" RUNAT="Server"><br />
Sub Application_OnStart<br />
<br />
End Sub<br />
<br />
Sub Application_OnEnd<br />
<br />
End sub<br />
<br />
Sub Session_OnStart<br />
<br />
Application.Lock<br />
Application("nowCount") = Application("nowCount") + 1<br />
Application.UnLock<br />
<br />
`` 연결 객체 생성<br />
strConnect="Provider=sqloledb;Data Source=127.0.0.1;Initial Catalog=디비명;User ID=아이디;Password=패스워드;" <br />
Set DbConn = Server.CreateObject("ADODB.Connection") <br />
DbConn.Open strConnect <br />
<br />
ip = request.ServerVariables("REMOTE_ADDR")<br />
user_agent = request.ServerVariables("HTTP_USER_AGENT")<br />
user_agent = replace(user_agent,"``","````")<br />
<br />
dim dim_user_agent<br />
dim_user_agent=split(user_agent,";")<br />
<br />
if Ubound(dim_user_agent)>1 then<br />
brow_user_agent=dim_user_agent(1)<br />
os_user_agent=dim_user_agent(2)<br />
os_user_agent=replace(os_user_agent,")","")<br />
else<br />
brow_user_agent=""<br />
os_user_agent=""<br />
end if<br />
<br />
referer = request.ServerVariables("HTTP_REFERER")<br />
<br />
sql = "insert into stat (stat_ip, stat_date, stat_user_agent, stat_referer, stat_browser, stat_os) values (``"&ip&"`` , getdate(), ``"&user_agent&"``,``"&referer&"``,``"&brow_user_agent&"``,``"&os_user_agent&"``)"<br />
DBConn.execute(sql)<br />
<br />
`` 총 접속 카운팅<br />
sql="select max(stat_num) as total from stat"<br />
Set Rs=DBConn.execute(sql)<br />
<br />
i_total = Rs("total")<br />
<br />
`` 어제 접속 카운팅<br />
sql="select count(*) as yesterday from stat where datediff(dd,stat_date,getdate())=``1``"<br />
Set Rs=DBConn.execute(sql)<br />
<br />
i_yesterday=Rs("yesterday")<br />
<br />
`` 오늘 접속 카운팅<br />
sql="select count(*) as today from stat where datediff(dd,stat_date,getdate())=``0``"<br />
Set Rs=DBConn.execute(sql)<br />
<br />
i_today=Rs("today")<br />
<br />
DBConn.close<br />
Set DBConn = nothing<br />
Set Rs = nothing<br />
<br />
Set fso = Server.CreateObject("Scripting.FileSystemObject")<br />
<br />
Set file=fso.createTextFile(Server.MapPath("/")&"/count.asp",true)<br />
<br />
file.writeline("<%")<br />
file.writeline(" `` 이 파일은 카운터를 위해서 필요한 파일이며 자동적으로 생성되는 파일입니다.")<br />
file.writeline(" `` from hulryung.com")<br />
file.writeline(" counter_total="&i_total&" `` 총 카운팅수")<br />
file.writeline(" counter_yesterday="&i_yesterday&" `` 어제의 카운팅 수")<br />
file.writeline(" counter_today="&i_today&" `` 오늘 카운팅 수")<br />
file.writeline(" counter_date="&chr(34)&now&chr(34)&" `` 카운팅한 마지막 날짜와 시각")<br />
file.writeline(chr(37)&">")<br />
file.close<br />
<br />
End Sub<br />
<br />
Sub Session_OnEnd<br />
Application.Lock<br />
Application("nowCount") = Application("nowCount") - 1<br />
Application.UnLock<br />
End Sub<br />
<br />
</SCRIPT>
이렇게 이루어져 있으며 여기까지만 하시면 기본적인 카운팅이 실행이 됩니다. global.asa 파일의 수정후에는
서버를 리스타트 해 주세요. 전 그냥 해도 되던데 안되는 분이 있을지 모르니깐...
그리고 statheader.asp파일에 보시면 데이터베이스 연결 부분이 있는데 그 부분에 데이터베이스명이랑
아이디, 패스워드를 입력해서 사용하시면 됩니다.
::::::: 사용법 ::::::::
먼저 웹페이지에 현재의 접속자수와 전체 접속자수 등을 표시하고 싶다면 count.asp 파일을 include 시켜서
사용하시면 됩니다. 각각의 변수는 다음과 같습니다.
counter_total : 총 카운팅 수
counter_yesterday : 어제 카운팅 수
counter_today : 오늘 카운팅 수
counter_date : 마지막 접속 시간
application("nowCount") : 현재 접속자 수
각종 통계치를 보고 싶으시다면 압축을 풀어놓은 디렉토리의 stat.asp파일만 브라우저 상에서 띄워 주시면
됩니다.
::::::: 저작권 ::::::::
저작권은 훌륭한녀석(hulryung@hulryung.com)에게 있으며 사용상의 제약은 없습니다.
개인적, 테스트, 공공기관, 상업적 목적의 사용에도 전혀 제약이 없습니다.
소스를 수정하여 사용도 가능합니다. 다만 소스 수정 후 재 배포는 저작권자와의 협의를 전제로 합니다.
더불어 메인 하단의 주소 링크부분을 삭제하시면 안됩니다. ^^;
::::::: 버그가 발견되면 ::::::::
주저 마시고 즉시 이메일(hulryung@hulryung.com)이나 홈페이지(http://hulryung.com)로 알려주시길 바랍니다.