webForumDet fria alternativet

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

4 svar · 354 visningar · startad av oGGo

oGGoMedlem sedan apr. 2003120 inlägg
#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?

@ndersMedlem sedan juni 200032 969 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

J.N.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.

oGGoMedlem 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!
;)

@ndersMedlem sedan juni 200032 969 inlägg
#5

oGGo skrev:

Tack detta funkade finfint :bire !

Vassego. Lycka nu till med resten. :)

Mvh

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)