2016-07-08 3 views
3

Есть ли способ установить переменную сеанса php ($_SESSION['example'), чтобы истечь через определенное количество времени. Чтобы уточнить, Я хочу сохранить сессию пользователя неповрежденной и сохранить все остальные переменные со своими значениями, я хочу, чтобы только одна переменная сеанса истекала через короткий промежуток времени (1 минута или около того). Есть ли способ установить, чтобы переменная истекала сама по себе, или мне нужно будет отслеживать время и удалить переменную, когда я определил, что время истекло? Я использую php 5 с apache2 на ubuntu. Благодарю.Завершить переменную сеанса php за период времени

+1

Это не дубликат. Я специально попросил сохранить сеанс в активном состоянии вместе со всеми другими переменными сеанса, одновременно удаляя только одну переменную. –

+0

Вы можете добиться этого с помощью куки-файлов ... не уверен, что это направление, в которое вы хотите пойти. – Confiqure

+0

Возможно, посмотрите на использование своего кеша памяти (например, Redis) в качестве средства достижения эффекта истечения срока действия. – apokryfos

ответ

2

Может быть, сделать что-то вроде:

$_SESSION['example'] = $value; 
$_SESSION['expiries']["example"] = time() + 30*60; // 30 mins 

функция Declare:

function expireSessionKeys() { 
    foreach ($_SESSION["expiries"] as $key => $value) { 
      if (time() > $value) { 
      unset($_SESSION[$key]); 
      } 
    } 
} 

Тогда где бы вы session_start() следовать с exprireSessionKeys()

Все это может быть построен в обычае session handler

Смежные вопросы