Goedenmorgen mensen,

Ik heb al aardig gezocht via zoekmachines maar echt een duidelijk antwoord kan ik niet vinden op mijn vraag.

Situatie:
Gebruiker is ingelogd (SESSIE wordt aangemaakt),
Wanneer er langer dan, b.v. 15 min, geen actie is van de gebruiker moet de sessie automatisch worden destroyed. De gebruiker is dan niet meer ingelogd.

Heeft iemand hier een oplossing voor?
Bij inloggen de tijd in de session zetten en bij elke handeling kijken of het langer dan 15 minuten geleden is. Zo ja, uitloggen en zo nee tijd opnieuw in de session zetten.
Hallo SanThe,

Ik snap dat dat de oplossing is, alleen de vraag is hoe ik zoiets in de sessie toepas.

Dat is niet meer dan beginnersniveau.
<?php
// bij het inloggen
$_SESSION['time'] = time();

// de controle
if($_SESSION['time'] < (time() - 900))
{
// uitloggen
}
else
{
$_SESSION['time'] = time();
}
?>
Ik gaat het proberen.

Het kan idd beginnersniveau zijn, dat staat ook wel bij mijn naam.
Maar ik heb nooit zoiets gemaakt, vandaar.

Hartelijk dank voor je reactie.
Houd er rekening mee dat je bij elke actie van een gebruiker die tijd in de sessievariabele update. Anders zal elke gebruiker na 15 minuten weer uitgelogd worden...
Blanche schreef op 14.01.2010 13:28
Houd er rekening mee dat je bij elke actie van een gebruiker die tijd in de sessievariabele update. Anders zal elke gebruiker na 15 minuten weer uitgelogd worden...

Vond je mijn 'else' niet duidelijk genoeg? ;-)
Zou dit ook in real-time kunnen. Dus dat er echt na 15 minuten niet gebruikt naar de logout.php pagina wordt genaviigeerd. Als er bijv een vertrouwelijk scherm open blijft staan zou het handig zijn. Kan dit met AJAX o.i.d.?
@SanThe: Waarom heb ik niet verder gekeken dan de if? :-)

@Justin: dat kan zeker. Je zou een JS timer kunnen laten lopen die na 15 minuten de gebruiker doorstuurt naar een bepaalde pagina.
@Blanche: volgens mij is er een functie binnen jQuery, mousemove ofzo. Dan zou je de timer steeds opnieuw kunnen starten zodra er mousemovement plaatsvindt. Ga ik eens proberen volgende week!

Reageren