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
%>