webForumDet fria alternativet

korrekt räknare?

ASP

13 svar · 377 visningar · startad av eriks

Medlem sedan apr. 20011 418 inlägg
Frågan#1

Hej! Jag har gjort en räknare som räknar unika besökare och loggar var de kommer ifrån (i varje fall tror jag att jag har gjort det). Jag misstänker emellertid att den inte registrerar alla användare, och eftersom jag inte är så het på cookies funderar jag på om det kan finnas något fel i koden. Så här ser koden ut:

If Request.Cookies("counter") = "1" Then
'ingenting
else

Response.Cookies("counter") = "1"
Response.Cookies("counter").Expires = DateAdd("d",1,Now())

strSQL = "UPDATE Besokare Set Unika= Unika + 1 WHERE ID=1"
Connection.Execute(strSQL)

strIp = Request.ServerVariables("REMOTE_HOST")
strKlient = Request.ServerVariables("HTTP_USER_AGENT")
dtmDatum = Now
strReferer = Request.ServerVariables("HTTP_REFERER")

SQL = "INSERT INTO Logg (Datum, Ip, Klient, Referer)" &_
" VALUES (#" & dtmDatum & "#, '" & strIp & "', '" & strKlient & "', '" & strReferer & "')"
Connection.Execute(SQL)

Connection.Close
Set Connection = Nothing

End if

Är koden rätt?

Tack! /Erik

Medlem sedan juni 200032 967 inlägg
#2

Jag tycker det ser funkis ut. Men, ska kakan verkligen försvinna efter ett dygn?

Medlem sedan maj 20031 472 inlägg
#3

Lita inte på cookies, nya browsers blockar väl som standard cookies nu eller?

Medlem sedan apr. 20011 418 inlägg
#4

Jag vill räkna unika besökare, därför försvinner kakan efter ett dygn.... Är det inte så man gör?

Vaddå blockar cookies??

MVH Erik

Medlem sedan juni 200032 967 inlägg
#5

eriks skrev:

Jag vill räkna unika besökare, därför försvinner kakan efter ett dygn.... Är det inte så man gör?

Nej. Däremot gör man så om man vill räkna unika besökare per dag. Det framgick inte. Du verkar ju inte ha något datumvillkor i SQL-frågan där du uppdaterar besöksantalet?

Medlem sedan maj 20031 472 inlägg
#6

eriks skrev:

Vaddå blockar cookies??

Alltså dom tar inte imot cookies vilket gör att din räknare skulle räkna samma person flera gånger. Att göra en bra räknare är lite svårt, men sessioner utan cookies är nog det bästa.

Medlem sedan sep. 20026 425 inlägg
#7

..och för att göra det extra säkert kan man ju sätta en cookie på användarens dator, plus kolla användarens IP-nummer också. ;)

Att de nutida webbläsarna blockar cookies som standard är väl bara båg - man kan däremot ställa in sin webbläsare så att den blockar alla cookies. :D

Medlem sedan apr. 20011 418 inlägg
#8

Okey... Hur räknar man unika besökare på en enkelt vis då?

Kan man inte logga dem som inte tar emot cookies? Typ att man gör en if-sats om webläsaren tar emot cookies??

Jag kom på nu att i min lista visas ibland samma ip-nummer efter varandra mer än en gång, och det borde de ju inte kunna om räknaren hade fungerat som jag vill... Alltså måste de användarna inte ha cookies eller är det något fel i koden...

Medlem sedan mars 2003772 inlägg
#9

Om den visar samma ip-nummer efter varandra så är ju din IF sats fel? Du borde ju enbart lägga till personens ip-nummer om den inte redan finns i databasen?

nåt i stil med

Ipnr = request.servervariables("remote_addr")
SqlCheck = "Select * from CounterUnika where Hosts ='" & Ipnr & "'"
Set RsCheck = Connect.execute(SqlCheck)

If RsCheck.eof then
Finns_Redan="Nej"
End If
RsCheck.Close

If Finns_Redan="Nej" then

SqlUnik = "Insert Into CounterUnika (Hosts) Values('" & Ipnr & "')"
Connect.execute SqlUnik
End If
Medlem sedan apr. 20011 418 inlägg
#10

Okey... men för att detta inte ska bli en alltför långsam process bör man väl tömma fältet i databasen varje dag... Kan man göra ett tidsbaserat script som tömmer tabellen t.ex. kl 23:59?

Medlem sedan mars 2003772 inlägg
#11

Vad har du för DBMS?

Medlem sedan apr. 20011 418 inlägg
#12

Vad är det?

Medlem sedan mars 2003772 inlägg
#13

Alltså vilken Databas du använder dig av.
Access, Ms SQL, Mysql etc?

Medlem sedan apr. 20011 418 inlägg
#14

access

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)