Hej, Tjena! Hej, Den här koden är tagen från Web Wiz Forums men den är Fruktansvärt bra...Hur så exakt statistik som möjligt med cookies och sessionsvariabel?
Jag har statistik på en hemsida där jag bla ser hur många besökare som besöker hemsidan varje dag.
Jag har gjort enligt nedan, lite kortfattat. Denna kod finns på varje sida
If session("visitid")="" then
IF Request.Cookies("Statistik")("visitorid")<>"" THEN
Lägger in i databasen ett nytt besök
Skapar sessionsvariabeln session("visitid")
ELSE
Skapar en ny besökare och lägger in den i databasen
Lägger in i databasen ett nytt besök av en unik besökare
Skapar en cookie
Skapar sessionsvariabeln session("visitid")
END IF
end if
Detta innebär att besökaren bara registreras när den går in på hemsidan för första gången under ett besök. På alla andra sidor så registreras inget.
MEN vissa dagar får jag betydligt fler besök av samma IP-nummer eller av väldigt snarlika IP-nummer (typ xx.yyy.ss.46, xx.yyy.ss.113, xx.yyy.ss.52) och går jag in i databasen så blir det registrerat ungefär eller exakt lika många besök av detta IP-nummret som antal sidor som jag har på hemsidan.
Jag misstänker att det är sökmotorernas spindlar som då är inne och härjar.
Nu till frågan. HUR undviker jag dem i min statistik, för att få mer sanningsenlig statistik?
De liksom alla andra ska ju bara registreras EN gång
Hoppas ni förstår och har någon bra lösning på detta.
mvh
TomasSv: Hur så exakt statistik som möjligt med cookies och sessionsvariabel?
Kanske kan detta script hjälpa dig. Scriptet försöker ta reda på vilken webbläsare besökaren har och om det rör sig om en sökmotors spider.
<code>
<%
Function MozillaVersion(tag)
tmp = ""
Set re = New RegExp
re.Pattern = "Mozilla\/(\d\.\d{1,2})"
re.IgnoreCase = True
Set matches = re.Execute(tag)
For Each match In matches
tmp = match.value
Next
If tmp = "" Then
isRobotCounter = isRobotCounter + 10
tmp = "Odefinierad"
End If
MozillaVersion = tmp
End Function
Function BrowserType(tag)
tmp = ""
patrn = "(MSIE|Opera|Gecko|[ui][\;\)])"
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
If regEx.Test(tag) Then
Set Matches = regEx.Execute(tag)
For Each Match in Matches
Select Case LCase(Match)
Case "msie"
If InStr(Lcase(tag), "opera") Then
tmp= "OP"
Else
tmp = "IE"
End If
Case "opera"
tmp = "OP"
Case Else
If InStr(LCase(tag), "opera") Then
tmp = "OP"
Else
tmp = "NS"
End If
End Select
Next
End If
If tmp = "" Then
isRobotCounter = isRobotCounter + 30
tmp = "Annan"
End If
BrowserType = tmp
End Function
Function BrowserVersion(tag, determinedBrowserType)
tmp = ""
Select Case LCase(determinedBrowserType)
Case "ie"
Set re = New RegExp
re.Pattern = "MSIE (\d\.\d{1,2})"
re.IgnoreCase = True
Set Matches = re.Execute(tag)
For Each Match in Matches
tmp = Match
If InStr(Match, " ") Then
arr = Split(Match, " ")
tmp = arr(1)
End If
Next
Case "op"
patrn = "Opera (\d\.\d{1,2})"
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
Set Matches = regEx.Execute(tag)
For Each Match in Matches
tmp = Match
If InStr(Match, " ") Then
arr = Split(Match, " ")
tmp = arr(1)
End If
Next
Case "ns"
patrn = "Netscape (?:\d*)\/(\d\.\d)"
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
If RegEx.Test(tag) = True Then
Set Matches = regEx.Execute(tag)
For Each Match in Matches
tmp = Match
If InStr(Match, " ") Then
arr = Split(Match, " ")
tmp = arr(1)
End If
Next
Else
tmp = MozillaVersion(tag)
End If
End Select
If tmp = "" Then
isRobotCounter = isRobotCounter + 25
tmp = "Annan"
End If
BrowserVersion = tmp
End Function
%>
</code>
Svenne HedblomSv: Hur så exakt statistik som möjligt med cookies och sessionsvariabel?
känns tyvärr inte riktigt som jag fattar hur jag ska använda scriptet. Är isRobotCounter en variabel?
Går det mao att få reda på om det är en spindel?
/TomasSv: Hur så exakt statistik som möjligt med cookies och sessionsvariabel?
Kopiera bara och lägg in och så hämtar du den genom att skriva
<% = BrowserType() %>
Den känner av vilken Robot det är som kollar din sida med...
Edit*
Glömde klistra in koden :-S
<%
Private Function BrowserType()
Dim strUserAgent 'Webläsare
Dim strBrowserUserType 'Version / Revision
'Hämta webläsarinfo
strUserAgent = Request.ServerVariables("HTTP_USER_AGENT")
'Stäm av vilken webläsare det är
'Opera
If InStr(1, strUserAgent, "Opera 1", 1) > 0 Then
strBrowserUserType = "Opera 1"
ElseIf InStr(1, strUserAgent, "Opera 2", 1) > 0 Then
strBrowserUserType = "Opera 2"
ElseIf InStr(1, strUserAgent, "Opera 3", 1) > 0 Then
strBrowserUserType = "Opera 3"
ElseIf InStr(1, strUserAgent, "Opera 4", 1) > 0 Then
strBrowserUserType = "Opera 4"
ElseIf InStr(1, strUserAgent, "Opera 5", 1) > 0 Then
strBrowserUserType = "Opera 5"
ElseIf InStr(1, strUserAgent, "Opera 6", 1) > 0 Then
strBrowserUserType = "Opera 6"
ElseIf InStr(1, strUserAgent, "Opera 7", 1) > 0 Then
strBrowserUserType = "Opera 7"
ElseIf InStr(1, strUserAgent, "Opera 8", 1) > 0 Then
strBrowserUserType = "Opera 8"
ElseIf InStr(1, strUserAgent, "Opera", 1) > 0 Then
strBrowserUserType = "Opera"
'AOL
ElseIf inStr(1, strUserAgent, "AOL 3", 1) > 0 Then
strBrowserUserType = "AOL 3"
ElseIf inStr(1, strUserAgent, "AOL 4", 1) > 0 Then
strBrowserUserType = "AOL 4"
ElseIf inStr(1, strUserAgent, "AOL 5", 1) > 0 Then
strBrowserUserType = "AOL 5"
ElseIf inStr(1, strUserAgent, "AOL 6", 1) > 0 Then
strBrowserUserType = "AOL 6"
ElseIf inStr(1, strUserAgent, "AOL 7", 1) > 0 Then
strBrowserUserType = "AOL 7"
ElseIf inStr(1, strUserAgent, "AOL 8", 1) > 0 Then
strBrowserUserType = "AOL 8"
ElseIf inStr(1, strUserAgent, "AOL 9", 1) > 0 Then
strBrowserUserType = "AOL 9"
ElseIf inStr(1, strUserAgent, "AOL", 1) > 0 Then
strBrowserUserType = "AOL"
'Konqueror
ElseIf inStr(1, strUserAgent, "Konqueror", 1) > 0 Then
strBrowserUserType = "Konqueror"
'EudoraWeb
ElseIf inStr(1, strUserAgent, "EudoraWeb", 1) > 0 Then
strBrowserUserType = "EudoraWeb"
'Dreamcast
ElseIf inStr(1, strUserAgent, "Dreamcast", 1) > 0 Then
strBrowserUserType = "Dreamcast"
'Safari
ElseIf inStr(1, strUserAgent, "Safari", 1) > 0 Then
strBrowserUserType = "Safari"
'Lynx
ElseIf inStr(1, strUserAgent, "Lynx", 1) > 0 Then
strBrowserUserType = "Lynx"
'ICE
ElseIf inStr(1, strUserAgent, "ICE", 1) > 0 Then
strBrowserUserType = "ICE"
'iCab
ElseIf inStr(1, strUserAgent, "iCab", 1) > 0 Then
strBrowserUserType = "iCab"
'HotJava
ElseIf inStr(1, strUserAgent, "Sun", 1) > 0 AND inStr(1, strUserAgent, "Mozilla/3", 1) > 0 Then
strBrowserUserType = "HotJava"
'Galeon
ElseIf inStr(1, strUserAgent, "Galeon", 1) > 0 Then
strBrowserUserType = "Galeon"
'Epiphany
ElseIf inStr(1, strUserAgent, "Epiphany", 1) > 0 Then
strBrowserUserType = "Epiphany"
'DocZilla
ElseIf inStr(1, strUserAgent, "DocZilla", 1) > 0 Then
strBrowserUserType = "DocZilla"
'Camino
ElseIf inStr(1, strUserAgent, "Chimera", 1) > 0 OR inStr(1, strUserAgent, "Camino", 1) > 0 Then
strBrowserUserType = "Camino"
'Dillo
ElseIf inStr(1, strUserAgent, "Dillo", 1) > 0 Then
strBrowserUserType = "Dillo"
'amaya
ElseIf inStr(1, strUserAgent, "amaya", 1) > 0 Then
strBrowserUserType = "Amaya"
'NetCaptor
ElseIf inStr(1, strUserAgent, "NetCaptor", 1) > 0 Then
strBrowserUserType = "NetCaptor"
'LookSmart sök robot
ElseIf inStr(1, strUserAgent, "ZyBorg", 1) > 0 Then
strBrowserUserType = "LookSmart"
'Googlebot sök robot
ElseIf inStr(1, strUserAgent, "Googlebot", 1) > 0 Then
strBrowserUserType = "Googlebot"
'MSN sök robot
ElseIf inStr(1, strUserAgent, "msnbot", 1) > 0 Then
strBrowserUserType = "MSN"
'inktomi sök robot
ElseIf inStr(1, strUserAgent, "slurp", 1) > 0 Then
strBrowserUserType = "Inktomi"
'AltaVista sök robot
ElseIf inStr(1, strUserAgent, "Scooter", 1) > 0 Then
strBrowserUserType = "AltaVista"
'DMOZ sök robot
ElseIf inStr(1, strUserAgent, "Robozilla", 1) > 0 Then
strBrowserUserType = "DMOZ"
'Ask Jeeves sök robot
ElseIf inStr(1, strUserAgent, "Ask Jeeves", 1) > 0 OR inStr(1, strUserAgent, "Ask+Jeeves", 1) > 0 Then
strBrowserUserType = "Ask Jeeves"
'Lycos sök robot
ElseIf inStr(1, strUserAgent, "lycos", 1) > 0 Then
strBrowserUserType = "Lycos"
'Excite sök robot
ElseIf inStr(1, strUserAgent, "ArchitextSpider", 1) > 0 Then
strBrowserUserType = "Excite"
'Northernlight sök robot
ElseIf inStr(1, strUserAgent, "Gulliver", 1) > 0 Then
strBrowserUserType = "Northernlight"
'AllTheWeb sök robot
ElseIf inStr(1, strUserAgent, "crawler@fast", 1) > 0 Then
strBrowserUserType = "AllTheWeb"
'Turnitin sök robot
ElseIf inStr(1, strUserAgent, "TurnitinBot", 1) > 0 Then
strBrowserUserType = "Turnitin"
'InternetSeer sök robot
ElseIf inStr(1, strUserAgent, "internetseer", 1) > 0 Then
strBrowserUserType = "InternetSeer"
'NameProtect Inc. sök robot
ElseIf inStr(1, strUserAgent, "nameprotect", 1) > 0 Then
strBrowserUserType = "NameProtect"
'PhpDig sök robot
ElseIf inStr(1, strUserAgent, "PhpDig", 1) > 0 Then
strBrowserUserType = "PhpDig"
'Rambler sök robot
ElseIf inStr(1, strUserAgent, "StackRambler", 1) > 0 Then
strBrowserUserType = "Rambler"
'UbiCrawler sök robot
ElseIf inStr(1, strUserAgent, "UbiCrawler", 1) > 0 Then
strBrowserUserType = "UbiCrawler"
'entireweb sök robot
ElseIf inStr(1, strUserAgent, "Speedy+Spider", 1) > 0 Then
strBrowserUserType = "entireweb"
'Alexa.com sök robot
ElseIf inStr(1, strUserAgent, "ia_archiver", 1) > 0 Then
strBrowserUserType = "Alexa"
'Arianna/Libero sök robot
ElseIf inStr(1, strUserAgent, "arianna.libero.it", 1) > 0 Then
strBrowserUserType = "Arianna/Libero"
'Internet Explorer
ElseIf inStr(1, strUserAgent, "MSIE 7", 1) > 0 Then
strBrowserUserType = "Microsoft IE 7"
ElseIf inStr(1, strUserAgent, "MSIE 6", 1) > 0 Then
strBrowserUserType = "Microsoft IE 6"
ElseIf inStr(1, strUserAgent, "MSIE 5", 1) > 0 Then
strBrowserUserType = "Microsoft IE 5"
ElseIf inStr(1, strUserAgent, "MSIE 4", 1) > 0 Then
strBrowserUserType = "Microsoft IE 4"
ElseIf inStr(1, strUserAgent, "MSIE 3", 1) > 0 Then
strBrowserUserType = "Microsoft IE 3"
ElseIf inStr(1, strUserAgent, "MSIE 2", 1) > 0 Then
strBrowserUserType = "Microsoft IE 2"
ElseIf inStr(1, strUserAgent, "MSIE 1", 1) > 0 Then
strBrowserUserType = "Microsoft IE 1"
'Pocket Internet Explorer
ElseIf inStr(1, strUserAgent, "MSPIE 1", 1) > 0 Then
strBrowserUserType = "Pocket IE 1"
ElseIf inStr(1, strUserAgent, "MSPIE 1", 1) > 0 Then
strBrowserUserType = "Pocket IE 2"
'Mozilla Firefox
ElseIf inStr(1, strUserAgent, "Gecko", 1) > 0 AND inStr(1, strUserAgent, "Firefox", 1) > 0 Then
strBrowserUserType = "Mozilla Firefox"
'Mozilla Firebird
ElseIf inStr(1, strUserAgent, "Gecko", 1) > 0 AND inStr(1, strUserAgent, "Firebird", 1) > 0 Then
strBrowserUserType = "Mozilla Firebird"
'Mozilla
ElseIf inStr(1, strUserAgent, "Gecko", 1) > 0 AND inStr(1, strUserAgent, "rv:2", 1) > 0 AND inStr(1, strUserAgent, "Netscape", 1) = 0 Then
strBrowserUserType = "Mozilla 2"
ElseIf inStr(1, strUserAgent, "Gecko", 1) > 0 AND inStr(1, strUserAgent, "rv:1", 1) > 0 AND inStr(1, strUserAgent, "Netscape", 1) = 0 Then
strBrowserUserType = "Mozilla 1"
ElseIf inStr(1, strUserAgent, "Gecko", 1) > 0 AND inStr(1, strUserAgent, "rv:0", 1) > 0 AND inStr(1, strUserAgent, "Netscape", 1) = 0 Then
strBrowserUserType = "Mozilla"
'Netscape
ElseIf inStr(1, strUserAgent, "Netscape/8", 1) > 0 Then
strBrowserUserType = "Netscape 8"
ElseIf inStr(1, strUserAgent, "Netscape/7", 1) > 0 Then
strBrowserUserType = "Netscape 7"
ElseIf inStr(1, strUserAgent, "Netscape6", 1) > 0 Then
strBrowserUserType = "Netscape 6"
ElseIf inStr(1, strUserAgent, "Mozilla/4", 1) > 0 Then
strBrowserUserType = "Netscape 4"
ElseIf inStr(1, strUserAgent, "Mozilla/3", 1) > 0 Then
strBrowserUserType = "Netscape 3"
ElseIf inStr(1, strUserAgent, "Mozilla/2", 1) > 0 Then
strBrowserUserType = "Netscape 2"
ElseIf inStr(1, strUserAgent, "Mozilla/1", 1) > 0 Then
strBrowserUserType = "Netscape 1"
'Om webläsaren inte finns med i listan ovan eller om det är en okänd robot
Else
strBrowserUserType = "Okänd"
End If
'Klart
BrowserType = strBrowserUserType
End Function
%>