Jag hen en databas med några användare jag vill kunna spara hur lång tid dom är inloggade i minuter. Kan man se mha session objektet hur länge en användare varit online, eller är det någon som har en annan idé.
- :)
När användare loggar in. Spara tid och datum i en under-tabell i databasen. Sen när personen loggar ut så sparar du det datumet och jämför och ser hur länge personen var inloggad på sidan.
Problemet brukar vara ett folk inte loggar ut manuellt, och nästa problem är att session on_end i global.asa gör lite precis som den vill. Alltså är det inte lätt att få ut utloggningstidpunkten. Alternativet är att lagra aktiviteter i databasen och jämföra med senaste aktivitet istället för utloggningen.
OK, tar inte sådan mycket prestandakraft LAMP? Jag antar att man på varje sida måste logga användaren i databasen så och fur vet man att användaren är aktiv mellan sid besöken
Blir någon SQL-fråga extra per sida, men tyvärr är det (vad jag känner till) det enda sättet att få ett fungerande onlinesystem.
Du får ha en egen onlinetabell. På varje sida har du ett script som kollar i tabellen om användaren finns, finns användaren uppdaterar du uppgifterna, finns inte användaren gör du en insert. Sedan tar du bort alla poster som är äldre än en viss tid.
Ni skriver att användarna inte loggar ut manuellt!
Men varför inte lägga in ett javascript som öppnar en liten ruta som innehåller logout.asp eller vad den filen nu heter när besökaren lämnar sidan eller stänger ner webbsidan. Och eftrer 3sek så stängs den lilla rutan ner..
Ok, tack så mycket.
Vad finns det för nakdelar med detta sättet?
Den största nackdelen är väl att det innebär ett irriterande popup-fönster. Sådana blockeras dessutom av väldigt många användare med hjälp av diverse program.
Men popup fönstret kommer bara upp när man lämnar sidan och den försvinner av sig själv efter 1-2 sek.
Jo, jag såg det. Men det faktum att vissa anser popup-fönster vara extremt irriterande, samt det faktum att scriptets nytta är begränsad p.g.a. att många har popup-stoppare kvarstår. Men om dessa är tillräckliga skäl att välja en annan lösning är upp till var och en.