Я хочу уничтожить мой сеанс через 3 минуты, но я делаю это, но проблема в том, что когда я перезагружаю страницу, она возвращает меня на предыдущую страницу, но я хочу, чтобы она автоматически перезагружала предыдущую страницу через 3 минуты (т.е. когда моя сессия будет уничтожена)
PHP:
session_start();
if($_REQUEST['btn_logout'])
{
$_SESSION['time']=time()+180;
$_SESSION['name']="";
header("location:login.php?msg=Logout Successfully");
}
if ($_SESSION['time']&&time()-$_SESSION['time']>180)
{
$d=$_SESSION['data'];
$email=$_SESSION['email'];
$count=0;
for($i=0 ;$i<count($email);$i++)
{
foreach($d as $key)
{
$count++;
if($_REQUEST['name']==$key['user_email'] && $_REQUEST['pass']==$key['user_password'])
{
if(count($email)==1)
{
session_unset();
session_destroy();
header("location:login.php?msg=Your Session got expired");
}
else
{
$arr=array_keys($_SESSION['data']);
unset($_SESSION['data'][$arr[$count-1]]);
unset($_SESSION['email'][$arr[$count-1]]);
}
}
}
}
}
Вы могли бы использовать неофициальный но широко поддерживается Refresh
заголовок:
header('Refresh: 180; url=login.php');
// ^^^ 3 minutes in seconds.
Однако было бы гораздо разумнее, чтобы клиент обрабатывал это с помощью JavaScript. Что-нибудь из слабого решения, например, буквальное ожидание 3 секунды и перенаправление на опрос сервера каждые 10-15 секунд, чтобы проверить, истек ли сеанс.
Других решений пока нет …