Jag tänkte visa vilka som är inloggade på en site för tillfället. Då är frågan vilket sätt som är smidigaste om man också tänker på prestanda.
1. Jag skapar ett fält i db:n som heter online och är en bolean. Sedan när någon loggar in sätter jag den till true och i session_on_end i global.asa lägger jag en update som sätter värdet till false. Eftersom namnen på de aktiva besökarna ska visas med en länk vid deras namn på varje sida måste jag hämta ut vilka som har online = true på varje sida (en include) och det faktum att jag redan har rätt mycket databas hämtningar gör att detta skulle söla ner systemet ännu mer. Det fins är att jag enkelt har infon om vilka som är online i db:n
2.När de loggar in så skickar jag deras namn samt namnid till en text fil (separerat med , tecken). Sedan hämtar jag datan från textfilen och splittar upp den efter önskemål och skriver ut det som behövs (en include). I session_on_en lägger jag sedan att de plockar bort raden med personens id ifrån textfilen.
Jo att session_onEnd inte fungerar är ett problem, men det gäller väl oavsett vilken lösning man använder.
Det enda som jag ser är att man har någon egen hantering av timeout. Det vill säga att man själv lagrar en timestamp som man uppdaterar vid besök och kontrollerar innan man visar data.
Microsoft VBScript runtime error '800a0009'
Subscript out of range: '[number: 5]'
/test/inloggade.asp, line 17
Det är raden som skriver ut UserId:t det som kommer ut på sidan är
Username: Erik Forsberg Userid: 1
Username: Bo Frederiksson Userid: 6
Username:
Microsoft VBScript runtime error '800a0009'
Subscript out of range: '[number: 5]'
/test/inloggade.asp, line 17
Vad gör jag för fel eftersom han inte hittar något värde där ? tacksam
Sedan separera den först vid * och sedan vid , tecknen. Men det verkar ändå inte smidigt, det verkar som den inte kommer in i en 2 dim. array efter allt. Någon som har mer tipps ?
Global.asa är ju ett problem eftersom den inte fungerar så ofta.
Men idé nummer 2 verkar väääldigt omständig.
Ett annat alternativ är väl att man sätter en egen gräns för hur lång tid man ska vara inloggad o sen uppdaterar ett databasfält med senaste laddningstiden hela tiden.
I onlinelista visar du sedan alla som har en tidsdiff som är mindre än typ 20 min.
269 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a