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.
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?
<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.