webForumDet fria alternativet

Logga ut inaktiva användare

ASP

7 svar · 303 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Jag har en community och på varje sida har jag en kod som sätter den aktuella tiden i en kolumn i databasen för att kolla när användaren senast var aktiv. Sen har jag en kod som sätter de medlemmar som har varit inaktiva i över 20 minuter till offline.
Detta är ju inte ett så bra system rent prestandamässigt. Att uppdatera databasen hela tiden.

Så finns det någon annan teknik man kan använda sig av för att "logga ut" inaktiva användare?

Jag vill inte använda mig av session_onend för det funkar ju inte alltid.

Medlem sedan feb. 20001 590 inlägg
#2

Du kan ju kolla med isconnected() men frågan är om det inte blir många onödiga kodsnuttar.

Sätt en lägre session.timeout() (20 minuter inaktivitet är ju ganska mycket...) och kolla med session_onend. Det är nog det smartaste, och ger minst onödig kod, eftersom det ändå sköts automatiskt. Databasen måste ji ändå uppdateras, bäst att det görs automatiskt för de som lämnar, än att loopa igenom alla användare med jämna mellanrum.

(Det är ju precis detta som session_onend är till för)

Medlem sedan feb. 20011 498 inlägg
#3

Jag vill hellst inte använda mig av session_onend för att det funkar inte till 100%. Har testat med den metoden förut men det funkade aldrig då.

Så kan man inte använda sig av något annat system?

Medlem sedan apr. 2001425 inlägg
#4

lagra tiden/timestamp i en applicationvariabel-array

Kolla sedan av vilka tider som blivit för gamla, dessa är ju utloggade...

Mvh

Medlem sedan feb. 20011 498 inlägg
#5

Kan du visa med lite kod?
Fattar inte riktigt vad du menar.

Medlem sedan apr. 2001425 inlägg
#6

Detta på varje sida eller på en som refrechas via meta el.likn:
array(0,UserId)=now()

Kolla sen om man varit aktiv inom 30 sek...

IF DateDiff("s",array(0,UserId),Now) >= 30 Then 'är äldre än 30 sek ?

Medlem sedan feb. 20011 498 inlägg
#7

Hur skriver jag ut alla användare som är online då?

Medlem sedan apr. 2001425 inlägg
#8

IF DateDiff("s",array(0,UserId),Now) < 30 Then 'är nyare än 30 sek

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