Тайм-аут Сессии PHP

Я создаю сессию, когда пользователь входит в систему как так:

$_SESSION['id'] = $id;

Как я могу указать тайм-аут на той сессии X минут и затем иметь ее, выполняют функцию или перенаправление страницы, после того как она достигла X минут??

Править: Я забыл упоминать, что мне нужна сессия к тайм-ауту из-за неактивности.

46
задан user342391 18 June 2010 в 10:28
поделиться

2 ответа

сначала храним последний раз, когда пользователь сделал запрос

<?php
  $_SESSION['timeout'] = time();
?>

при последующем запросе проверяем, как давно он сделал предыдущий запрос (в данном примере 10 минут)

<?php
  if ($_SESSION['timeout'] + 10 * 60 < time()) {
     // session timed out
  } else {
     // session ok
  }
?>
85
ответ дан 26 November 2019 в 20:06
поделиться

Когда сессия истекает, данные больше не существуют, поэтому что-то вроде

if (!isset($_SESSION['id'])) {
    header("Location: destination.php");
    exit;
}

будет перенаправлять всякий раз, когда сессия больше не активна.

Вы можете установить, как долго будет жить куки сессии, используя session.cookie_lifetime

ini_set("session.cookie_lifetime","3600"); //an hour

РЕДАКТИРОВАНИЕ: Если вы откладываете сессии из-за соображений безопасности (а не удобства), используйте принятый ответ, как показывают комментарии ниже, это контролируется клиентом и поэтому небезопасно. Я никогда не думал об этом как о мере безопасности.

44
ответ дан 26 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: