Frågan 22 maj 2003 13:38 #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?
Peeer Medlem sedan mars 2002 5 907 inlägg 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
G GunnarD Medlem sedan juni 2001 4 290 inlägg 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.
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å?
Peeer Medlem sedan mars 2002 5 907 inlägg 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?
Hmm den vill fortfarande inte logga... :(
Fattar inte varför. någon som har en aning?
Peeer Medlem sedan mars 2002 5 907 inlägg Sparas ingenting alls? Felmeddelande?
Peeer skrev:
Sparas ingenting alls? Felmeddelande?
inga felmeddelanden, å inget sparas... inte ens det andra...
@nders Medlem sedan juni 2000 32 967 inlägg Om du bara skriver ut värdet till browsern, finns det där då?
Peeer Medlem sedan mars 2002 5 907 inlägg 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?
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...
Peeer Medlem sedan mars 2002 5 907 inlägg 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
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")&";"
-----------------------------------------------------------------^
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?
Peeer Medlem sedan mars 2002 5 907 inlägg 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