Я работаю над сайтом, на котором я хочу выйти из системы через 30 минут, когда нет активности пользователя.
Код php-кода, который я использовал для запуска сеанса:
<?PHP
session_start();
/* Code Added (START) */
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
// last request was more than 30 minutes ago
session_unset(); // unset $_SESSION variable for the run-time
session_destroy(); // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp
/* Code Added (END) */
// Logout
if(isset($_GET['user_logout'])){
unset($_SESSION['pageadmin']);
header('location: /emailers/landing_admin.php');
exit();
}
if (!empty($_POST) && isset($_POST['user_login']) && $_POST['user_login']==1 && !isset($_SESSION['pageadmin'])){
$user_arr = array(
'page'=>'hello',
);
if(array_key_exists($_POST['user_name'], $user_arr) && $user_arr[$_POST['user_name']] === $_POST['user_pass']){
$_SESSION['pageadmin'] = true;
$_SESSION['pageadmin_user'] = $_POST['user_name'];
}else{
$_SESSION['msg'] = 'Invalid user name or password';
}
}
// Is user logged in?
if(!isset($_SESSION['pageadmin'])){
?>
<form action="/emailers/landing_admin.php" method="post">
<div style='width:400px;'>
<input type="hidden" id="user_login" name="user_login" value="1">
<fieldset>
<legend>Login</legend>
<?php if(isset($_SESSION['msg'])){echo '<div style="color:red;">'.$_SESSION['msg'].'</div>';unset($_SESSION['msg']);}?>
<div>
<label for="user_name">User Name</label>
<input type="text" name="user_name">
</div>
<div>
<label for="user_pass">Password</label>
<input type="password" name="user_pass">
</div>
<div>
<button type="submit">Login</button>
</div>
</fieldset>
</div>
</form>
<?PHP
}
Постановка проблемы:
Мне интересно, какие изменения мне нужно внести в приведенный выше код php, чтобы он выходил из системы через 30 минут посленет активности.
Я добавил следующий код в приведенный выше код, но, похоже, он не работает.
/* Code Added (START) */
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
// last request was more than 30 minutes ago
session_unset(); // unset $_SESSION variable for the run-time
session_destroy(); // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp
/* Code Added (END) */