webForumDet fria alternativet
Logga in / Bli medlem

Select * From IP Where IP=" & Request.ServerVariables("REMOTE_ADDR")

ASP

4 svar · 354 visningar · startad av oGGo

Medlem sedan apr. 2003120 inlägg
Trådstart#1

Hej!
Sitter här och bygger en statssida som skall känna av om besökaren varit inne förut och därmed inte logga besöket.
Jag använder mig av 2 tabeller i databasen, en som heter IP och en som heter Hits.

I hits lagrar jag datum för besöket och antal träffar.
Ex:

Datum          Traffar
2004-01-22     14

I IP lagrar jag IP-adressen på mina besökare.
Ex:

IP
***.***.***.***

Koden jag använder ser ut som följer:

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("databas.mdb")

Set RS = Connect.Execute("Select * From hits Where datum= date()")
Set RecSet = Connect.Execute("Select * From hits")
Set RSip = Connect.Execute("Select * From IP Where IP=" & Request.ServerVariables("REMOTE_ADDR"))

		if RSip.eof AND RSip.bof Then		
			SQL = "Insert Into IP(IP) Values('" & Request.ServerVariables("REMOTE_ADDR") & "')"
			Connect.Execute(SQL)
				
		else
			if RS.eof AND RS.bof Then
				SQL = "Insert Into hits(datum,traffar,dag) Values('" & Date() & "','" & 1 & "','" & Day(Date) &"')"
				Connect.Execute(SQL)

			else
				i = RS("traffar")+1
					SQL = "Update hits Set traffar='" & i & "' Where id=" & RS("id")
					Connect.execute(SQL) 

			end if
		
		end if
%>

Felmesset som jag får är:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i tal i frågeuttrycket 'IP=xxx.xxx.xxx.xxx'.
/default1.asp, line 14

Vilket innebär fel i koden:

Set RSip = Connect.Execute("Select * From IP Where IP=" & Request.ServerVariables("REMOTE_ADDR"))

Vad är det som är fel i denna?

Medlem sedan juni 200032 967 inlägg
#2

IP är en sträng, och lagras i ett textfält i databasen. Därför skall du ha apostrofer runt värdet.

Set RSip = Connect.Execute("Select * From IP Where IP='" & Request.ServerVariables("REMOTE_ADDR") & "'")

Du skall dessutom leta efter SQL-forumet här på wF. ;)

Mvh

Medlem sedan apr. 20031 660 inlägg
#3

HEJ!

Dessutom 2:
Detta kommer inte att bli rätt:
Problem 1: Du kan ha olika ip varje gång du kopplar upp dig.
Problem 2: Många besökare kan ha samma ip.

Ska du alltså veta att samma besökare besöker dig igen, är det cookies du letar efter.

Ska du räkna antalet ip-nummer som besöker dig, går det göra som du gör.

Medlem sedan apr. 2003120 inlägg
#4

@nders skrev:

IP är en sträng, och lagras i ett textfält i databasen. Därför skall du ha apostrofer runt värdet.

Set RSip = Connect.Execute("Select * From IP Where IP='" & Request.ServerVariables("REMOTE_ADDR") & "'")

Du skall dessutom leta efter SQL-forumet här på wF. ;)

Mvh

Tack detta funkade finfint :bire !

J.N. skrev:

HEJ!

Dessutom 2:
Detta kommer inte att bli rätt:
Problem 1: Du kan ha olika ip varje gång du kopplar upp dig.
Problem 2: Många besökare kan ha samma ip.

Ska du alltså veta att samma besökare besöker dig igen, är det cookies du letar efter.

Ska du räkna antalet ip-nummer som besöker dig, går det göra som du gör.

Jo, jag vet att cookies är absolut det bästa att använda.
Dock är inte alls detta något vetenskapligt projekt utan bara... låt oss säga en typ av inlärning för mig i ASP och VBscript som den novis jag är.
Kanske blir cookies ett framtida projekt för min webbsida, men inte ännu.
Dock vill jag tacka dig mycket för tipset!
;)

Medlem sedan juni 200032 967 inlägg
#5

oGGo skrev:

Tack detta funkade finfint :bire !

Vassego. Lycka nu till med resten. :)

Mvh

267 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)