webForumDet fria alternativet

Klurigt inaktivitetsproblem med automatisk utloggning

ASP

3 svar · 356 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Att göra en funktion som loggar ut en person efter exempelvis 20 minuters inaktivitet där inaktivitet menas med att man inte surfat runt på nån sida på exempelvis 20 min är ju ganska enkelt.

Men man kan ju t.ex vara på en sida och skriva ett foruminlägg som tar längre än 20 min och tänk er då om man suttit och skrivit ett monsterinlägg och klickar på submit så loggas man ut?

Sen kan man ju stå på forumsidan och inte göra ett smack då ska man ju loggas ut efter 20 min.

Sen skulle jag vilja att varje användare ska kunna ställa in efter hur många minutersinaktivitet den ska loggas ut efter.

Har ni några idéer på en bra lösning?

Medlem sedan dec. 20003 887 inlägg
#2

Tja... varje gång användaren accessar en sida måste detta lagras i en tabell. Med detta värde lagras även vilken typ av aktivitet användaren pysslar med.
När din automatiska utloggning ska köras måste den givetvis först kolla mot nämnda tabell om användaren håller på att skriva ett inlägg eller liknande.

Det kan ju vara en början ivarjefall. Hur sker den automatiska utloggningen? Har du en refresh var 20:e minut eller liknande?

Medlem sedan maj 200125 inlägg
#3

Kanske detta kan vara något!?

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
var up,down;
var min1,sec1;
var started = 0;
var cmin1,csec1,cmin2,csec2;
var timeStr;
var pagetitle = document.title;

function Display(min,sec)
{
	var disp;
	if (min <= 9)
	{
		disp = " 0";
	}
	else
	{
		disp = " ";
		disp += min + ":";
	}
	
	if (sec <= 9)
	{
		disp += "0" + sec;
	}
	else
	{
		disp += sec;
		return(disp);
	}
}

function Down()
{
	cmin2 = "20" // antal minuter
	csec2 = "00" // antal sekunder
	started = 1;
	DownRepeat();
}

function DownRepeat()
{
	csec2--;
	if (csec2 == -1)
	{ 
		csec2 = 59;
		cmin2--; 
	}

	timeStr = Display(cmin2,csec2);
	window.parent.status = pagetitle + "Tid kvar: " + timeStr; // skriver ut tiden nere på status raden

	if ((cmin2 == 0) && (csec2 == 0))
	{
		alert("Du har nu varit inaktiv i mer än 20 minut,\nvilket göra att du automatiskt har blivit utloggad.");
		location.href = "login.asp" // till inloggningssidan
	}
	else
	{
		down = setTimeout("DownRepeat()",1000); 
	}
}
</SCRIPT>
</head>
<body onload="Down();">
</body>
</html>

Sedan så anropar du "Down();" när användaren ändrar något på sidan.

Medlem sedan jan. 20013 406 inlägg
#4

Skulle man inte kunna göra något funktion på framesetet som onmouseMove så är den aktiv typ?

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)