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?
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.
<%
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.
<%
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.