본문 바로가기
낙서장

[펌] ASP로 카운터만들기

by 사우람 2010. 7. 12.

[방법]

1. 홈디렉토리 아래에 count 폴더를 만들고 그 폴더안에 visit.txt를 만든다.

2.visit.txt에 시작count값을 넣는다. (시작을 솔직하게 0으로 하던지 혹은 1000으로 하던지)

3.홈디렉토리에 global.asa파일을 만든다. 파일에 아래와 같은 내용을 넣어준다.  

   application 스타트시 visit.txt를 읽어 방문자수를 count변수에 넣어준다.

   session 스타트시 count값을 증가시킨다. (10명 증가때 마다 visit.txt에 저장해준다.)

   application 종료시 count변수를 읽어 visit.txt에 저장한다.

   현재접속인원 now_visit은 session 스타트시 증가, session 종료시 감소시켜주고

      보여주는 화면에서 10초마다 refresh시켜주어 현재 접속인원을 새로고침하지 않아도

      반영될 수 있도록 한다.

***** global.asa 내용 ******

<script language="vbscript" runat="server">
sub application_onstart

set fileobject = server.createobject("scripting.filesystemobject")
vcfn="c:\hsjeon\web\count\visit.txt"

//첫번째 false : 기존에 파일이 있어야만 불러올 수 있도록
//두번째 false : asc 파일
//vcfn : 파일명
set out=fileobject.opentextfile(vcfn,1,false,false) 

//visit.txt에서 한줄을 읽어 application의 변수에 넣는다.
application("count")= out.readline

application("now_visit") = 0

//경로명을 계속사용하려고 전역변수인 vcfn을 만든다.
application("vcfn") = vcfn


end sub

sub application_onend
 set fileobject = server.createobject("scripting.filesystemobject")
 // 파일을 그냥 open하면 append만 되므로 덮어쓰는 것으로 파일을 연다.
 set out=fileobject.createtextfile(application("vcfn"),true)
 
 application.lock
 out.writeline(application("count"))
 out.close
 application.unlock

end sub

  

sub session_onstart

//count는 전역변수 이므로 동시에 접근할 수 있으므로
// 이런 현상을 방지하려고 lock을 걸고 사용하고, 사용후 lock를 풀어준다.
application.lock
application("count") = application("count") + 1

application("now_visit") = application("now_visit") + 1
application.unlock

//세션이 유지되는 시간설정 (분단위)
session.timeout = 10

//count가 10증가될 때마다 visit.txt에 저장해준다.
if application("count") mod 10 = 0 then

 set fileobject = server.createobject("scripting.filesystemobject")
 // 파일을 그냥 open하면 append만 되므로 덮어쓰는 것으로 파일을 연다.
 set out=fileobject.createtextfile(application("vcfn"),true)
 
 application.lock
 out.writeline(application("count"))
 out.close
 application.unlock
 
end if

end sub

 

sub session_onend

//현재방문자수에서 빼준다.

application.lock
application("now_visit") = application("now_visit") - 1
application.unlock

end sub

</script>

 

4. count값을 홈페이지에 보여주는 방법

글자로 보여주려면

  총접속인원은:<%=application("count")%>

예쁘게 아이콘으로 보여주려면

   http://iconnara.pe.kr 에서 다운받은 숫자 아이콘을 image폴더에 no0.gif ~ no9.gif 로 넣고

   아래처럼 적어준다.

 

  총접속인원은:<br>
  <% for i=1 to Len(application("count"))
           num = mid(application("count"),i,1)
   %>
  <img src="image/no<%=num%>.gif" width=20 height=20>
  <%next%>

 

5.접속인원을 10초마다 다시 보여주려면

접속인원을 보여주는 화면의 head에 meta태그를 넣어준다. 

<head>
 <meta http-equiv="refresh" content=10>
</head>