webForumDet fria alternativet

vägrar logga ip nummret

ASP

16 svar · 268 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Frågan#1

Jag har gjort så att när man loggar in ska ip-numret loggas i en databas..
och kör med denna kod:

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

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From iplogg" 
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

strUserIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

	RecSet.AddNew

	RecSet("datum") = Now
	RecSet("vem") = Session("user")
				
	If strUserIP = "" Then
	RecSet("ip") = Request.ServerVariables("REMOTE_ADDR")
	else
	RecSet("ip") = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
	End If
	
	RecSet.Update
	
	RecSet.Close
	Connect.Close
	Set RecSet = nothing
	Set Connect = nothing

Men, den vill inte logga... varför?

Medlem sedan mars 20025 907 inlägg
#2

Vad ger servervariabeln "HTTP_X_FORWARDED_FOR" för värde? Har aldrig sett den förut, så jag hoppar över den ;)

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

strSQL ="insert into iplogg (datum, vem, ip) values "&_
"(#"&now()&"#, '"&Session("user")&"', '"&Request.ServerVariables("REMOTE_ADDR")&"')"
Connect.execute(strSQL)
Connect.close
Medlem sedan juni 20014 290 inlägg
#3

Variabeln HTTP_X_FORWARDED_FOR sätt av Squid proxyserver och evetuellt andra proxyservrar, och innehåller den "riktiga" ip-adressen på den som surfar.

Medlem sedan aug. 2002600 inlägg
#4

Peeer skrev:

Vad ger servervariabeln "HTTP_X_FORWARDED_FOR" för värde? Har aldrig sett den förut, så jag hoppar över den ;)

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

strSQL ="insert into iplogg (datum, vem, ip) values "&_
"(#"&now()&"#, '"&Session("user")&"', '"&Request.ServerVariables("REMOTE_ADDR")&"')"
Connect.execute(strSQL)
Connect.close

okej, men hur får jag in "HTTP_X_FORWARDED_FOR" också?

Medlem sedan mars 20025 907 inlägg
#5

Jahaja, då ska den nog vara med ja :)

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

If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" Then
    strIP = Request.ServerVariables("REMOTE_ADDR")
else
    strIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if

strSQL ="insert into iplogg (datum, vem, ip) values "&_
"(#"&now()&"#, '"&Session("user")&"', '"&strIP&"')"
Connect.execute(strSQL)
Connect.close

Så kanske?

Medlem sedan aug. 2002600 inlägg
#6

Hmm den vill fortfarande inte logga... :(
Fattar inte varför. någon som har en aning?

Medlem sedan mars 20025 907 inlägg
#7

Sparas ingenting alls? Felmeddelande?

Medlem sedan aug. 2002600 inlägg
#8

Peeer skrev:

Sparas ingenting alls? Felmeddelande?

inga felmeddelanden, å inget sparas... inte ens det andra...

Medlem sedan juni 200032 967 inlägg
#9

Om du bara skriver ut värdet till browsern, finns det där då?

Medlem sedan mars 20025 907 inlägg
#10

Det verkar ju fullkomligt befängt. Du har ingen "on error resume next" med någonstans i koden? Körs koden så borde något sparas alternativt generera felmeddelande. Koden ligger inte inne i någon if-sats som aldrig uppfylls --> koden aldrig körs?

Medlem sedan aug. 2002600 inlägg
#11

Peeer skrev:

Det verkar ju fullkomligt befängt. Du har ingen "on error resume next" med någonstans i koden? Körs koden så borde något sparas alternativt generera felmeddelande. Koden ligger inte inne i någon if-sats som aldrig uppfylls --> koden aldrig körs?

den ingår i inloggnings kollen när man loggar in.. annars inget...

Medlem sedan aug. 2002600 inlägg
#12

@nders skrev:

Om du bara skriver ut värdet till browsern, finns det där då?

hur menar du?

Medlem sedan mars 20025 907 inlägg
#13
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas/blandat.mdb")&";"

If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" Then
    strIP = Request.ServerVariables("REMOTE_ADDR")
else
    strIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if

strSQL ="insert into iplogg (datum, vem, ip) values "&_
"(#"&now()&"#, '"&Session("user")&"', '"&strIP&"')"
[b]Response.write strSQL
Response.end[/b]
'Connect.execute(strSQL)
'Connect.close
Medlem sedan aug. 2002600 inlägg
#14

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/adde/star/login_kolla2.asp, line 5

Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas/blandat.mdb")&";"
-----------------------------------------------------------------^

Medlem sedan aug. 2002600 inlägg
#15

nu skriver den ut så här:
insert into iplogg (datum, vem, ip) values (#2003-05-22 17:53:47#, 'Thomsson', '81.224.142.254')

å de e ju rätt... men varför sparar den inte det i databasen?

Medlem sedan mars 20025 907 inlägg
#16

Mjo, det ser ju rätt ut. Ändra tillbaka den sista kodbiten igen och prova på nytt.

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

If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" Then
    strIP = Request.ServerVariables("REMOTE_ADDR")
else
    strIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if

strSQL ="insert into iplogg (datum, vem, ip) values "&_
"(#"&now()&"#, '"&Session("user")&"', '"&strIP&"')"

Connect.execute(strSQL)
Connect.close
Medlem sedan aug. 2002600 inlägg
#17

funkar nu.. tack!

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