2010-04-20 4 views
2

Как узнать, сколько секунд будет до истечения срока действия php?Как узнать, какой срок действия сеанса php истекает?

Я создаю веб-приложение, в котором пользователи могут тратить много времени на ввод в большие текстовые поля, но по соображениям безопасности я все же хочу, чтобы сеансы были таймингами после достаточно короткого периода. Я хочу предупредить их, если их сессия истечет, чтобы они могли сохранить или предпринять другие действия, чтобы сохранить ее в живых.

Любые советы? спасибо!

ответ

2

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

$seconds=ini_get('session.gc_maxlifetime'); 

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

+0

Спасибо. Элегантное решение для сохранения текста в сеансе и повторной аутентификации – Steve

2

Вы можете сохранить время истечения срока действия в базе данных, а затем отобразить предупреждение, когда это произойдет. Или вы можете сохранить время истечения срока действия в файле cookie, а затем иметь javascript, который постоянно проверяет, скоро ли сеанс истекает.

+0

спасибо за быстрый ответ: как узнать, что такое время окончания сеанса? Я просканировал через php docs, но не имел большой удачи ... – Steve

+0

@Steve, где вы посмотрели? какая страница? –

+1

Вы имеете в виду время дефолта «по умолчанию»? Я думаю, что значение по умолчанию будет 1440, определяемое 'session.gc_maxlifetime' (которое начнет сбор мусора за сеанс после 1440 секунд), но файл cookie может продолжаться до тех пор, пока вы его установите (по умолчанию до закрытия браузера). Посмотрите http://www.php.net/manual/en/session.configuration.php –

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