Salve ragazzi,
avrei la necessità di auto interrompere il login di un utente se non naviga nel sito per 60 secondi.
INDEX.PHP
Codice PHP:
<?php include('inc/config.php'); ?>
CONFIG.PHP
Codice PHP:
<?php
// Riduco la durata delle sessioni
ini_set('session.gc_maxlifetime','10');
session_start();
$host = '*****';
$user = '*****';
$password = '*****';
$database = '*****';
$db = mysql_connect($host, $user, $password) or die('Impossibile connettersi al server '.$host);
mysql_select_db($database, $db) or die('Impossibile connettersi al database '.$database);
// Imposto lo stato degli utenti a Offline
$query='UPDATE Utente SET Stato="Offline" WHERE ora_login<"'.date('H:i:s',$time).'"';
mysql_query($query);
?>
LOGIN.PHP
Codice PHP:
<?php
if(isset($_POST['username'])){
$query='SELECT * FROM Utente WHERE Nickname="'.$_POST['username'].'" AND Password="'.$_POST['password'].'"';
$row = mysql_query($query);
if(mysql_num_rows($row)){
$_SESSION['login']=1;
$_SESSION['nick']=$_POST['username'];
$query='UPDATE Utente SET ora_login="'.date('H:i:s',($time + ($session_limit*60))).'" WHERE Nickname="'.$_SESSION['nick'].'"';
mysql_query($query);
}else
session_destroy();
}
if($_GET['var']=='logout')
{ session_destroy();
echo '<html><head><META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0; URL=index.php\'></head></html>';
}
if($_SESSION['login']==1){
echo 'menu '.$_SESSION['login'];
echo '[url="index.php?var=logout"] logout[/url]';}
else {
?>
<form method="post" action="index.php">
[b]Username:[/b] <input type="text" name="username" class="TEXTBOX"/>
[b]Password:[/b] <input type="password" name="password" class="TEXTBOX"/>
<input type="submit" value="Login" class="PLS"/>
Non hai ancora effettuato il login!</p>
</form>
<?php
}
?>
Pur aspettando 10 secondi (Tempo di scadenza della sessione importato manualmente) la sessione non scade...