I databasen har jag en kolumn som heter LTime och i den finns den aktuella tiden då en sida uppdaterades. Nu vill jag använda den för att kolla om den aktuella tiden är större än 20 minuter från LTime och då logga ut användaren
Så är man inaktiv i 20 minuter så logga ut användaren.....nån som vet hur man skriver?
LTime idatabasen uppdateras hela tiden när användaren förflyttar sig mellan sidor, men är man inaktiv i 20 minuter så ska man förflyttas till sidan logout.asp
Hur uppdaterar du databasen med för kod?
Använder du en session med ett ID vars post du uppdaterar behövs fortfarande bara en korrekt session.timeout sättas.
Psuedokod
if isnumeric(session("userid")) then
update LTime = now() where id = session("userid")
else
skicka till login.asp
end if
<%
If Len(Session("userID")) > 0 Then
Set check=objConn.Execute("UPDATE tblUsers SET LTime = Time() WHERE userID = " & Session("UserID"))
else
response.redirect "logout.asp"
End If
%>
Men då har du allting klart ju.
Standardinställningen för en session är 20 minuter. Varje gång en användare uppdaterar sidan uppdateras även sessionen och får 20 nya minuter i livstid.
problemet är att jag inte kan skicka nån till logoutsidan efter 20 minuter, i onlinelistan så står inaktiva medlemmar som online och likadant i chatten så rä inakiva personer online i listan
Visst kan man göra så utan att det är fel.
Själv tycker jag bara att det är onödigt med två fält som ska representera ifall en användare är online eller inte.
Jag brukar i de flesta fall endast använda mig utan en datetime-kolumn i användartabellen som jag uppdaterar för varje sidladdning till nuvarande tid.
För att presentera vilka som är online listar jag bara de poster som uppdaterats de senaste minuterna.
Om en använda aktivt kan logga ut, sätter jag bara den kolumnen till defaultvärde t.ex. 1900-01-01 00:00:00 vid utloggningen.
Men det finns många metoder och den ena utesluter verkligen inte den andra. Det beror också på hur resten av systemet ser ut och vad man vill använda online-listan till.