webForumDet fria alternativet

Inloggad eller inte

ASP

5 svar · 208 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

Jag har problem med att få en användares status uppdaterad i databasen. När man loggar in ska satusen vara 1 och när man loggar ut ska statusen vara 0 för att markera att man är offline.

jag har

Dim strAnvNamn, strLosen, conn, RS, SQL

'Uppgifter hämtas från formulären
strAnvNamn = Trim(Request.Form("txtUsername"))
strAnvNamn = Replace(strAnvNamn, Chr(39), Chr(34)) ' <== Byter ' mot "
strLosen = Trim(Request.Form("txtPassword"))
strLosen = Replace(strLosen, Chr(39), Chr(34)) ' <== Byter ' mot "

'Kopplingen sätts och sqlsatsen instansieras
Set conn=System_Main()
SQL = "SELECT * FROM tblCommunity WHERE username = '" & strAnvNamn _
& "' AND password = '" & strLosen & "'"

'RecordSetet instansieras och öppnas
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open SQL, conn, 3, 3

'Om data finns i tabellen och inloggningen är rätt så uppdateras databasen och användaren skickas vidare
If Not RS.EOF THEN 
Session("inloggad") = True
Session("username") = RS("username")
Session("epost") = RS("epost")
Session("inloggningar") = RS("inloggningar")

strAnvNamn = Request.Querystring("strAnvNamn")
conn.Execute("Update tblCommunity SET inloggad=1 WHERE username='" & strAnvnamn & "'")
Response.Redirect "/community/index.asp" 
Else 
'Response.Redirect " "& Request.ServerVariables("SERVER_NAME") &" "
response.redirect "/community/loginform.asp"
End If

Om man får det här rätt så att statusen är 1 när man är inloggad, hur gör jag då sen för att sätta den till 0 när man loggar ut?

Medlem sedan sep. 20026 425 inlägg
#2

Du använder dig av följande SQL-fråga:

conn.Execute("Update tblCommunity SET inloggad=0 WHERE username='" & strAnvnamn & "'")

strAnvnamn plockar du med via Request.Querystring. :)

/r :r
/r2 :r :r (tack @)

Medlem sedan feb. 20032 027 inlägg
#3

med din sträng så får jag

Microsoft JET Database Engine (0x80040E14)
Syntaxfel i sträng i frågeuttrycket 'username=''.
/community/login.asp, line 29
Medlem sedan juni 200032 967 inlägg
#4
 ... username='" & strAnvnamn & "'")

har man påbörjat en sträng i sql kan det vara bra att avsluta den.

Medlem sedan sep. 20026 425 inlägg
#5

Du får skicka med ett värde i querystringen. Precis så här:

strAnvNamn = Request.Querystring("strAnvNamn")

Exempelvis kan länken för att logga ut se ut så här:

loggaut.asp?strAnvnamn=<%=Request.Querystring("anvnamn")%>

/r @... :r :)

Medlem sedan jan. 2003296 inlägg
#6

Det kanske inte är så lämpligt att skicka med användarnamnet i querystringen iofs. Det är ju trots allt inte speciellt svårt att logga ut andra användare än sig själv i så fall.

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)