Я создаю сессию, когда пользователь входит в систему как так:
$_SESSION['id'] = $id;
Как я могу указать тайм-аут на той сессии X минут и затем иметь ее, выполняют функцию или перенаправление страницы, после того как она достигла X минут??
Править: Я забыл упоминать, что мне нужна сессия к тайм-ауту из-за неактивности.
сначала храним последний раз, когда пользователь сделал запрос
<?php
$_SESSION['timeout'] = time();
?>
при последующем запросе проверяем, как давно он сделал предыдущий запрос (в данном примере 10 минут)
<?php
if ($_SESSION['timeout'] + 10 * 60 < time()) {
// session timed out
} else {
// session ok
}
?>
Когда сессия истекает, данные больше не существуют, поэтому что-то вроде
if (!isset($_SESSION['id'])) {
header("Location: destination.php");
exit;
}
будет перенаправлять всякий раз, когда сессия больше не активна.
Вы можете установить, как долго будет жить куки сессии, используя session.cookie_lifetime
ini_set("session.cookie_lifetime","3600"); //an hour
РЕДАКТИРОВАНИЕ: Если вы откладываете сессии из-за соображений безопасности (а не удобства), используйте принятый ответ, как показывают комментарии ниже, это контролируется клиентом и поэтому небезопасно. Я никогда не думал об этом как о мере безопасности.