Уничтожить сеанс и автоматически загрузить страницу

Я хочу уничтожить мой сеанс через 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]]);
}

}
}
}

}

2

Решение

Вы могли бы использовать неофициальный но широко поддерживается Refresh заголовок:

header('Refresh: 180; url=login.php');
//               ^^^ 3 minutes in seconds.

Однако было бы гораздо разумнее, чтобы клиент обрабатывал это с помощью JavaScript. Что-нибудь из слабого решения, например, буквальное ожидание 3 секунды и перенаправление на опрос сервера каждые 10-15 секунд, чтобы проверить, истек ли сеанс.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector