Yes!
Offline efter Session.TimeOut
51 svar · 1 746 visningar · startad av SGuncel · sida 3 av 3
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?
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.
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
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..
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)
Men hur gör jag när dom stänger webbläsaren? Att deras status ska ändras till Offline
Ä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?
@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 :)
Jag menar enkelheten jag beskrivit i detta inlägg.
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.
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.