webForumDet fria alternativet

Check av tid online

ASP

8 svar · 267 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Finns det något bra sätt att kolla om en medlem varit online 1 ex 40 minuter och om man varit det ska man bli utloggad. Detta ska hända när man loggar in.

Har en kod som inte funkar som jag vill men vill se vad ni ger för exempel.

Värdet man har när man e inloggad är status=2 och ej inloggad status=1

Medlem sedan sep. 2002366 inlägg
#2

som man brukar göra är väll att man kör en koll av vilka som varit inloggad en viss tid när någon annan loggar in.

Medlem sedan nov. 20017 144 inlägg
#3

Status? Är det inte bättre med en boolean-kolumn för det ändamålet?

Dim inloggad
inloggad=request.cookies("logintime")
if datediff("n",inloggad,time) > 40 then
'Under 40 min, uppdatera ngn databas eller cookie eller ngt
else
'Över 40 min, logga ut snubben, eller ngt annat
response.redirect "utloggad.asp"
end if
Medlem sedan dec. 20011 860 inlägg
#4

Det vet jag. Men finns det nåt bättre sätt. För är man online och surfar vill man ju ej bli utloggad.

Såg att du hade skrivit att tiden sparas i en cookie. Är det ett bra sätt tycker du?

Medlem sedan sep. 2002366 inlägg
#5

Om man lagrar inloggningstiden i en databas kan man ju när besökaren byter sida uppdatera det värdet om han fortfarande är inloggad (är ju enklast med session)

If inlogged Then
uppdatera databasen
End If

Medlem sedan dec. 20011 860 inlägg
#6

Smart ide. Men kanske inte så bra. Om man har en onlinelista så hamnar man ju överst hela tiden typ!

Medlem sedan sep. 2002366 inlägg
#7

Gissar du har en medlems-databas också. Du kan ju lägga in ett fält "last_login" eller nåt som uppdateras endast när medlemmen loggar in ;)

Medlem sedan dec. 20011 860 inlägg
#8

Ahh. smart :)

Medlem sedan juli 20015 107 inlägg
#9

Eitraz skrev:

Gissar du har en medlems-databas också. Du kan ju lägga in ett fält "last_login" eller nåt som uppdateras endast när medlemmen loggar in ;)

mm, eller så har du ett fält i databasen NOW, sen har du ett fält status. så varje gång du besöker en sida så uppdaterar du din egen tid, sen kolla igenom databasen ifall det finns några som vart innaktiva på cirka 20 minuter så ändrar du status till 2 på dem

eller om du har en online lista till höger på sidan som listar allla som e online helatiden vart än man e på sidan så kan du sätta en auto update på sidan att den reloadar om var 5:e minut, så får du färsk onlinelista, samt att du förblir inloggad tills du kryssar webläsaren då nån annan flaggar av dej som offline efter 20min

user = session("username")

SQL = "SELECT * FROM members WHERE username='"&user&"'"
RS.Open SQL, Conn, 3, 3

	RS("senastnow") = now
	RS.update
	RS.close

SQL2 = "SELECT * FROM members"
RS.Open SQL2, Conn, 3, 3

Do Until RS.EOF

	If RS("status") = "online" AND DateDiff("n", RS("senastnow"), Now) > 20 Then
		RS("status") = "offline"
		RS.Update

	End If
	
RS.MoveNext
Loop
RS.close
Conn.close
249 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)