Я пишу программу, в которой мне нужно выдать выбранную переменную в $_SESSION
.
Теперь я знаю, как истечь всю переменную $_SESSION
но моя потребность является выборочной, т. $_SESSION['trial_period_credits']
через 1 день только $_SESSION['trial_period_1']
, $_SESSION['trial_period_credits']
.
Я хочу, чтобы пользователь оставался включенным в систему, просто нужно, чтобы переменная пробного периода заканчивалась (таймаут сеанса 1 месяц).
Я думал об этом так, но решил спросить, потому что я уверен, что кто-то знает более элегантное решение этого.
$_SESSION['trial_period_credits'] = 4; $_SESSION['trial_period_credits_expire'] = time() + 86400;
Затем проверяйте его каждый раз для каждой переменной
if ( $_SESSION['trial_period_credits_expire'] < time() ) {...
Есть лучший способ сделать это? Мое решение кажется беспорядочным, поскольку оно требует создания множества ненужных переменных сеанса.
Используйте unset
. Попробуйте -
if ( $_SESSION['trial_period_credits_expire'] < time() ) {
unset($_SESSION['trial_period_1']);
unset($_SESSION['trial_period_credits']);
}
определить ключ и использовать unset
:
if ( $_SESSION['trial_period_credits_expire'] < time() ) {
unset($_SESSION['trial_period_1']);// will unset the $_SESSION for key trial_period_1 only.rest of the $_SESSION will remain.
}