webForumDet fria alternativet

Hur läser man av antal aktiva sessioner med PHP?

PHP

4 svar · 395 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

Har en liten fråga kopplat till en sida som jag konstruerar i php. Finns det möjlighet att räkna antal aktiva sessioner på min sida för att avgöra vilka användare som är online eller ej?

Medlem sedan dec. 2002258 inlägg
#2

Det smartaste är väl att spara ned de aktiva sessionerna med ett id och userId och tid i en databas. På så sätt kan du ta reda på vilka som är online.
Sedan får du upp tiden varje gång sidan laddas och se vilka som varit inaktiva i typ 10-15 min eller nåt och ta bort dessa som då antas vara inaktiva.

Medlem sedan apr. 20041 597 inlägg
#3

monAmour skrev:

Det smartaste är väl att spara ned de aktiva sessionerna med ett id och userId och tid i en databas.

Går det i PHP att få tag på ett sessionsnummer för en viss session som skapas? Som monAmour skrev tidigare skulle man kunna stoppa in detta i en databas. För att en session inte ska registreras mer än en gång vill jag ju ha ett sätt att se vilken session som är vilken!

Någon som gjort detta tidigare?

Medlem sedan mars 20032 667 inlägg
#4

Re: Hur läser man av antal aktiva sessioner med PHP?

lillebror skrev:

Finns det möjlighet att räkna antal aktiva sessioner på min sida för att avgöra vilka användare som är online eller ej?

Nej. Enklaste är att ha ett datetime-fält i din user-tabell som du uppdaterar med now() på samtliga sidor du har.

UPDATE user SET lastActive = now() WHERE userId = { SESSION['userId'] }

Sedan hämtar du alla medlemmar som varit aktiva inom en viss tid, exempelvis 5 minuter. Dessa anses vara "online".

Medlem sedan apr. 20041 597 inlägg
#5

Re: Re: Hur läser man av antal aktiva sessioner med PHP?

K@llen skrev:

lillebror skrev:

Finns det möjlighet att räkna antal aktiva sessioner på min sida för att avgöra vilka användare som är online eller ej?

Nej. Enklaste är att ha ett datetime-fält i din user-tabell som du uppdaterar med now() på samtliga sidor du har.

UPDATE user SET lastActive = now() WHERE userId = { SESSION['userId'] }

Sedan hämtar du alla medlemmar som varit aktiva inom en viss tid, exempelvis 5 minuter. Dessa anses vara "online".

Det är så som jag har nu med andra ord:

$sqlSelect = "UPDATE tblMember SET last_visit = now() WHERE username = '$uid'";
272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)