webForumDet fria alternativet

Offline efter Session.TimeOut

ASP

51 svar · 1 746 visningar · startad av SGuncel · sida 3 av 3

Frågan, av SGuncel

Jag har sökt i forumet men har kommit fram utan träff som jag vill ha. Jag vill att användarens status ska bli Offline när sessionen tar slut och när man bara stänger webbläsaren.. Sessionen är 15 min.

Läs frågan i sin helhet →
Medlem sedan juni 200032 967 inlägg
#41

Yes!

Medlem sedan jan. 2007217 inlägg
#42

Då blir det så här:

ObjConn.Execute("Update TLUsers set UsrLastActive='" & Now & "'  where UsrID ="&SafeSQL(Session("UsrID"))&"")

Men hur gör jag när dom stänger webbläsaren. Måste jag använda onunload då eller?

Medlem sedan dec. 1999653 inlägg
#43

Du måste inte använda onunload, men det är väl smidigast.

Du kan ju även köra att när någon laddar om onlinelistan köra en jämförelse, om UsrLastActive > 15 min sen så ska användaren klassas som offline. Det kan du även ha på varje persons "krypin" om du har koden du postade ovan i någon include som körs på varje sida.

Medlem sedan juni 200032 967 inlägg
#44

Du måste inte använda onunload, men det är väl smidigast.

Hur märker du att någon stänger webbläsarfönstret då?

Sen tycker jag iofs att det duger bra att i online-listan visa användare som varit aktiva den senaste kvarten. Det finns inte heller någon egentlig anledning att uppdatera någon tabell och sätta användare till offline, när man ändå loggar senaste aktivitet, och kan använda den tiden för att bestämma om användaren är online. Det är ju det den är till för, liksom.

mvh

Medlem sedan jan. 2007217 inlägg
#45

släppte ut min community i måndags. Och har nu fått värsta problemet med online grejjen.
Skulle du kunna hjälpa mig med att ge kod o fixa :$
Annars måste jag ändra från db'en..

Medlem sedan juni 200032 967 inlägg
#46

Du har lagt till ett fält i användartabellen, som du uppdaterar vid varje sidvisning?

I så fall är det bara att ställa en enkel SQL-fråga, för att hämta alla som är "online", typ:

strSQL = "SELECT * FROM TLUsers WHERE DATEDIFF('n', UsrLastActive, now()) < 15"
Set objRS = objConn.Execute (strSQL)
Medlem sedan jan. 2007217 inlägg
#47

Men hur gör jag när dom stänger webbläsaren? Att deras status ska ändras till Offline

Medlem sedan juni 200032 967 inlägg
#48

Även om jag inte förstår varför du vill göra så (vad händer om jag har två communityfönster öppna?) så är mitt bästa tips att googla på t.ex. window.onclose eller onunload. När du hittar en kod som fungerar måste du se till att en asp-sida som uppdaterar databasen körs, ex genom att öppna ett nytt fönster med en sida i (då finns stor risk att popup-blockerare dödar det) eller köra en request med xmlhttp (fungerar nog inte i alla webbläsare).

Varför inte göra det enkelt för dig och bestämma att alla som inte gjort något på webbplatsen den senaste kvarten räknas som offline?

Medlem sedan jan. 2007217 inlägg
#49

@nders skrev:

Varför inte göra det enkelt för dig och bestämma att alla som inte gjort något på webbplatsen den senaste kvarten räknas som offline?

Förstår inte vad du menar :)

Medlem sedan juni 200032 967 inlägg
#50

Jag menar enkelheten jag beskrivit i detta inlägg.

Medlem sedan jan. 2007217 inlägg
#51

Ja, men jag förstår fortfarande inte hur jag ska sätta Statusen offline så att det står i profilen att användaren är Offline..

Jag har så här:
När man är Online står det så:
Online - Spanar in i startsidan

När man är Offline så står det Offline.

Medlem sedan juni 200032 967 inlägg
#52

Det är bara att fråga med SQL på liknande sätt som ovan.

strSQL = "SELECT 1 FROM TLUsers WHERE DATEDIFF('n', UsrLastActive, now()) < 15 [b]and userid = " & lUserID[/b]
Set objRS = objConn.Execute (strSQL)
if objRS.EOF then
    ' offline
else
    ' online
end if

Byt fält- och variabelnamn i det fetstilta, så det passar dig.

251 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)