Срок действия только одна выбранная переменная внутри $ _SESSION (вместо всей $ _SESSION)

0

Я пишу программу, в которой мне нужно выдать выбранную переменную в $_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() ) {...

Есть лучший способ сделать это? Мое решение кажется беспорядочным, поскольку оно требует создания множества ненужных переменных сеанса.

  • 1
    снята с охраны ($ _ SESSION [ 'trial_period_1']);
Теги:
session-timeout

2 ответа

1
Лучший ответ

Используйте unset. Попробуйте -

if ( $_SESSION['trial_period_credits_expire'] < time() ) {
    unset($_SESSION['trial_period_1']);
    unset($_SESSION['trial_period_credits']);
}
0

определить ключ и использовать 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.
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню