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é.
inloggningstid
26 svar · 677 visningar · startad av Jacob
- :)
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.
låter mest klokt som skyman skriver...
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..
Det är ju en tanke, hur fungerar det.
ok!
1. på index sidan så har du koden:
<script language="javascript">
function loggaut() {
window.open('loggaut.asp','loggaut','width=125,height=30,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,copyhistory=no,resizable=no');
}
</script>
<body onUnload="loggaut()">
2. På loggaut.asp
<html>
<head>
<title>-</title>
</head>
<link rel="stylesheet" type="text/css" href="main.css">
<BODY bgcolor="#eeeeee">
<center><span class="text16blfet">Loggar ut...<br><br><br><br><br><br><br><br><br><br><br><br>
</span></center>
<script language="javascript">
window.close()
</script>
</body>
</html>
Det borde funka..
Ok, tack så mycket.
Vad finns det för nakdelar med detta sättet? (Om det nu finns några.)
Scriptet ska du använda om du använder Frames! så att man inte loggas ut om man går in på forumet på din sida exempelvis.
Jacob skrev:
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.
hmm ok, kan man komma runt dessa nakdelar på något sätt. (Jag använder inte frames + det är inte till mitt forum (det vara bara ett skolprojekt))
sett session.timeouten lågt å kör på d..
fixar inte servern session.onend så e d en kass server :P
Jymdis skrev:
sett session.timeouten lågt å kör på d..
fixar inte servern session.onend så e d en kass server :P
Nej, snarare fulbasic som suuuger och windows servrar som suuger ännu mer.
medialabs skrev:
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.
Ok!
Bästa är ju helt klart en online-tabell. En liten INSERT-fråga på varje sida är inte så farligt. :)
Dessutom loggas inte besökaren ut om webbläsaren hänger sig eller om hela datorn hänger sig... Då blir onlinetiden felaktig...