webForumDet fria alternativet

användare online?

ASP

7 svar · 502 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#1

Jag har en sida där man kan logga in med personligt konto...

Hur ska jag göra för att på bästa sätt göra för att kunna spara vilka som är online och sedan skriva ut det på sidan...

idag använder jag mig av en applikation som säger hur många som är online på sidan...

Application-kakan adderas på med 1 när Session_OnStart körs i global.asa.

På samma sätt subtraheras application-kakan med 1 när Session_OnEnd körs...

Jag tänkte att man kanske kunde spara en array i en application och sedan subtrahera den med 1 när någon loggar in på sidan och istället plussa på en annan array i en application-kaka med namn och id nummer...

Eller hur ska jag göra?

Underfråga:
Om man deklarerar en array skriver man hur många poster den ska innehålla... Hur gör man om man inte vet hur många poster man vill ha?

Medlem sedan dec. 20003 563 inlägg
#2

Har varit uppe många gånger här i forumet och den vanligaste och "bästa" metoden är att hela tiden uppdatera när en användare senast uppdaterade sidan. Sedan för att skriva ut vilka som är online väljer du bara alla användare som uppdaterat någon sida senaste 2-3 minuterna.

* Redim använder du för att omdefinera storleken på din array, med preserve för att ha kvar de äldre värderna.

Medlem sedan juli 20041 183 inlägg
#3

jaså, okej :)

Jag sökte här på sidan men måste skrivit fel eller sökt på fel saker...

Medlem sedan nov. 200810 inlägg
#4

..

Medlem sedan nov. 200810 inlägg
#5

..

Medlem sedan nov. 200810 inlägg
#6
<%
objConn.Execute("UPDATE members set online='1' WHERE id='"& (session("userid")) &"'")
%>

Sen för att skriva ut hur många som är online.

<%
Set objRS = objConn.Execute("SELECT * FROM members WHERE online='1'")
If objRS.Eof Then
Response.write "inga"
End If
Set objCount = objConn.Execute("SELECT Count(online) As onlines from members")
%>
Det är nu <%=objCount("onlines")%> medlemmar online.
Medlem sedan maj 200591 inlägg
#7

Napster skrev:

<%
objConn.Execute("UPDATE members set online='1' WHERE id='"& (session("userid")) &"'")
%>

Det där kommer ju inte funka så bra... När ska du sätta online=0 igen? Maximalt hälften av alla användare kommer trycka på logout-knappen, så det kommer inte funka.

Lagra tidpunkten för användarens senaste aktivitet istället. Sen är det bara att köra en fråga som tar fram alla rader i databasen som har en tidsstämpel som är mindre än x antal minuter.

Medlem sedan mars 20025 907 inlägg
#8

Eftersom det gått drygt 4 år sedan Lilja frågade så får vi väl nästan utgå från att problemet är löst? ;)

262 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)