2011-01-28 3 views
3

У меня есть сеанс, который после 30 минут бездействия уничтожается или после 23.4 часов уничтожается.Истечение срока действия PHP

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

Поскольку сборщик мусора смотрит на измененное время, а не на время доступа, сеанс обновляется с time(), так что измененное время обновляется, когда пользователь делает что-либо на сайте.

Вот это php.ini настройки сеанса:

Directive     Local Value  Master Value 
session.cache_expire  30    30 
session.cookie_lifetime  1800   1800 
session.gc_divisor   1000   1000 
session.gc_maxlifetime  84400   84400 
session.gc_probability  1    1 
session.save_handler  files   files 

Если вам нужна любая другая сеансовых ини настройки дайте мне знать.

Любая помощь с этим была бы весьма признательна.

Благодаря

+0

Существует большое объяснение того, как оба варианта работают в этой другой StackOverflow вопрос: http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after- 30-минутный – Merijn

ответ

3

session.cookie_lifetime устанавливается на 30 минут, поэтому печенье истекает через 30 минут, он whont будет отправлено на сервер при следующем запросе (после 30 мин прошло), и PHP будет выпускать еще одну сессию поскольку он/она (php) не получил его в запросе.

+0

Является ли cookie не обновляемым при каждом запросе на сервер? – Nalum

+0

Да, cookie сеанса пересылается по каждому запросу. – arnaud576875

+0

все, у меня будет короткий тест и удалите ответ, если вы, парни, правы. –

0
  1. Не прикасайтесь к настройкам по умолчанию для сеансов. Оставьте значения по умолчанию.

  2. Проверка времени сеанса сеанса с использованием самой сессии.

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