webForumDet fria alternativet

Offline efter Session.TimeOut

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

@ndersMedlem sedan juni 200032 969 inlägg
#41

Yes!

SGuncelMedlem 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?

nakozMedlem 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.

@ndersMedlem sedan juni 200032 969 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

SGuncelMedlem 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..

@ndersMedlem sedan juni 200032 969 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)
SGuncelMedlem 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

@ndersMedlem sedan juni 200032 969 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?

SGuncelMedlem 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 :)

@ndersMedlem sedan juni 200032 969 inlägg
#50

Jag menar enkelheten jag beskrivit i detta inlägg.

SGuncelMedlem 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.

@ndersMedlem sedan juni 200032 969 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.

129 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)