ASP Hit Counter
You can count the number of visitors on your site with
a very simple ASP code. Create a file Count.asp with the following code and
add in the header of every page useing Server Side Include(SSI).
<!--#Include File="Count.asp"-->
Count.asp creates a text file to write the numbers of current users. When a new
user comes on the site, Count.asp reads old users count from text file, updates
the value by one, and stores the new count value back in the text file. The new
count value is also stored in a Session Variable so you can use that Session Variable
on different pages to display current user count with the following code.
<%=Session("TotalCount")%>
To make sure that one user is counted only once we use IF THEN statement. When the
count file is updated first time a Session variable is created which holds the current
user count. When user goes to next page Count.asp file checks if Session Variable
exists or not. If Session Variable exists then it will not count the user again.
File: Count.asp
<%
' Every time we count a user we
will put the
' latest count value in the session
variable "TotalCount"
' If Session Variable TotalCount
is empty
' that mean this user is new and
session variable
' But if Session Variable already
has the value
' Then we will not count this user
again.
If IsEmpty(Session("TotalCount"))
Then
Call CountThisUser
End If
' It is good practice to use Functions
and Sub procedure
' Because all the variables being
used in sub or function
' are automatically destroyed when
Sub or Function finish
' processing the code.
' So you can use these Variables
again in other functions
Sub CountThisUser()
Dim objFSO ' FileSystemObject
Dim objTS ' TextStreamObject
Dim strFileName ' Counter text File Name
Dim intOldCount
Dim intNewCount
' Specify the Text file to
store count value
' Because We Set Create =
True
' File will be Created if
it does not exist
strFileName = Server.MapPath("Counter.txt")
Set objFSO =
Server.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strFileName)
Then
Set objTS
= objFSO.OpenTextFile(strFileName, 1)
Else
Set objTS
= objFSO.CreateTextFile(strFileName,
True)
End If
If Not objTS.AtEndOfStream Then
intoldCount = objTS.ReadAll
Else
intoldCount = 0
End If
objTS.Close
intNewCount = intOldCount + 1
' Store the value of intNewCount
in Session Variable
' So you can use it on different
pages
Session("TotalCount")= intNewCount
' Write intNewCount value
back to text file
Set objTS = objFSO.CreateTextFile(strFileName,
True)
objTS.Write intNewCount
objTS.Close
Set objFSO =
Nothing
Set objTS = Nothing
End Sub
%>
|
Here is the code of a simple ASP page which display the
User Counts. Count.asp file is added to this page with Server Side Include and Session
Variable is used to display the current user count.
File: DisplayCount.asp
<HTML>
<HEAD>
<TITLE>Display
user Count</TITLE>
<!--#Include File="Count.asp"-->
</HEAD>
<BODY>
<Center>
<H1>Welcome
to DevASP.com</H1>
<H2>You
are User Number<%=Session("TotalCount")%></H2>
</Center>
</BODY>
</HTML>
|
Have Questions? Discuss this topic in Dev
Forum
|