ASP .NET hit counter?
Anyone got any idea's for a hit counter for a webpage in asp .NET, using the VB code behind? Any help would be really appreciated.
Slade
Practically a Master Poster
633 posts since Mar 2004
Reputation Points: 115
Solved Threads: 7
ok I used the global.asax page for this one, got this information off www.4guysfromrolla.com , good site.
Sub Application_Start(ByVal sender AsObject, ByVal e As EventArgs)
'This variable Hits will store the # of visitors
Application("Hits") = 0
EndSub
Sub Session_Start(ByVal sender AsObject, ByVal e As EventArgs)
'Lock the Application for concurrency issues
Application.Lock()
'Increment the counter
Application("Hits") = Application("Hits") + 1
'Unlock the Application
Application.UnLock()
EndSub
Now to declare it in my webform...
This page has been viewed
<%=application("Hits")%>
times.
Ok guys, this works but I would not by any means recommend it because it resests itself every time you rebuild the project, plus it resets whenever the server your site is on reboots or restarts, if anyone has a better alternative to this, please let me know. The next question I have is how do I replace the number on the hit counter, with a graphic, say it said 2 people have visited the page in plain text, I want that "2" to be an image of a 2, I've found a little on this but it's not working. Will post back if I find anything out.
Slade
Practically a Master Poster
633 posts since Mar 2004
Reputation Points: 115
Solved Threads: 7
Are you fermiliar with GDI+ in .NET? What you need to do is make a dynamic image. Make a new webform, give it an image content type, and in the page's code, create the graphic (using the hitcount you want), do a Response.Flush(), and then then write the Graphic using Response.Write (Maybe WriteStream). Then, in your webpage, just do tags to your dynamic image webform ;-).
Tekmaven
Software Architect
1,274 posts since Feb 2002
Reputation Points: 322
Solved Threads: 28
Tekmaven
Software Architect
1,274 posts since Feb 2002
Reputation Points: 322
Solved Threads: 28
Also, to make the hitcount perminate, you'll want to use a file, a database, or registry key to keep track of the hitcount ;-).
Tekmaven
Software Architect
1,274 posts since Feb 2002
Reputation Points: 322
Solved Threads: 28
Ok, I have been trying to find where I can make a vb.net perminant hit counter, most are by using text files (and I would definitely prefer them over a database). My problem now is, I can't find any code to make one! The little code I can find is poorly explained and I was wondering if one of you guys could maybe help me out here. God Bless!:cry:
Slade
Practically a Master Poster
633 posts since Mar 2004
Reputation Points: 115
Solved Threads: 7
Fixed this one also guys. Here is the code for my hit counter. There was also some code to create .gif images for the number images on the fly but... it proved a little difficult, I'll probably put them in version two of the website. The company website is nearly up :D the boss loves it, I'll keep you guys updated so I can get some feedback on my work, thanks! Here is the code
PrivateSub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
IfNot Page.IsPostBack Then
Dim nCount As Int32 = 0
nCount = GetCounterValue()
lblTest.Text = nCount.ToString()
EndIf
EndSub
PrivateFunction GetCounterValue() As Int32
Dim ctrFile As StreamReader
Dim ctrFileW As FileStream
Dim sw As StreamWriter
Dim strPath AsString = Server.MapPath("indexcount.txt")
Dim strCounterContents AsString
Dim nCounter As Int32
If (File.Exists(strPath)) Then
ctrFile = File.OpenText(strPath)
strCounterContents = ctrFile.ReadLine().ToString()
ctrFile.Close()
nCounter = Convert.ToInt32(strCounterContents)
Else
nCounter = 0
EndIf
nCounter += 1
ctrFileW = New FileStream(strPath, FileMode.OpenOrCreate, FileAccess.Write)
sw = New StreamWriter(ctrFileW)
sw.WriteLine(Convert.ToString(nCounter))
sw.Close()
ctrFileW.Close()
Return nCounter
EndFunction
and of course, don't forget the "Imports System.IO" (no quotations) at the top of the code. Happy coding guys! Thanks again Tekmaven!
Slade :cheesy:
Slade
Practically a Master Poster
633 posts since Mar 2004
Reputation Points: 115
Solved Threads: 7