Где и как устанавливается срок годности сессии?

Где и как устанавливается срок годности сессии?

Вопрос для профессионала, конечно, плевый. Но я не нашел это ни в FAQ, ни поиском.

Проблема в том, что я такой параметр не устанавливал. Однако, если отхожу от компьютера часа на пол, требуется по новой вводить пароль.

Буду благодарен за краткий ответ или за ссылку.
 

Ваня-Ваня

Guest
В этом и есть смысл сессии.
Протокол НТТР не может определить, открыта ли у тебя страница в браузере.
поэтому сессия и определяет живость сессии по таймауту.

Я думаю, правильнее будет тебе ставить куку, по которой сервер будет тебя вспоминать.
Так сделано на этом форуме.

Какой ты хочешь выставить таймаут?
 

ForJest

- свежая кровь
А ты уверен что проблема именно в настройке сессий? Может все же в алгоритме?
вообще это может быть либо
session.gc_maxlifetime
либо
session.cookie_lifetime

http://php.net/sessions
http://php.spb.ru/php/session.html (внизу)
 
У меня выделенная линия. Я (и еще 10 человек) работаю в сессии целый день. Это служебная зона для ввода информации в БД. Естественно часто отходишь. Вводить каждый раз логин и пароль не резон.

Уточняю, сессия не для пользователей, а для работы персонала.

сессия и определяет живость сессии по таймауту
По какому таймауту. Где установить время? Вопрос конкретный. Куки не требуются...
 
А ты уверен что проблема именно в настройке сессий?
Я ни в чем не уверен. Просто, не установив никаких сроков, сессия прекращает существование через какое-то время. Может это в настройках php у провайдера? (я на хостинге)
 

ForJest

- свежая кровь
Может это само приложение так себя ведет. Вообще сделай
скрипт
<? phpinfo(); ?>
и посмотри что у тебя там настроено в разделе настроек Session
 
ForJest

Спасибо за ссылку. Это то?

session.gc_maxlifetime
Количество секунд, через которое ПХП уничтожит у себя на диске устаревший файл сессии. По умолчанию - 1440.
 

tony2001

TeaM PHPClub
нет, это кол-во секунд, через которое РНР будет считать, что его МОЖНО удалять.
конкретное срабатывание garbage collector - это вероятностное событие.
 

Ваня-Ваня

Guest
session.cookie_lifetime тут не при чем.
а нужен Эдуарду второй параметр.
И дело действительно в настройках, поскольку по дефолту время жизни сессии - 24 минуты.

Очень жаль, что Эдуард не понимает, что такое СЕССИЯ.
Не понимает, что посидел он на сайте - сессия.
Ушел пообедать, пришел снова - уже другая сессия.

И что он смешивает две проблемы, не различая границ между ними - сессии и авторизация.

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

Но, как я вижу, чужое мнение его не интересует, так что убеждать не буду. много чести
 

tony2001

TeaM PHPClub
Эдуард:
то, что ты наблюдаешь - это не только нормально, но и вполне правильно.
именно так и задумывалось.
именно для этого и нужны сессии.
нет, приемчиков нет, раз ты ничего менять не можешь.
 

Ваня-Ваня

Guest
Тони, но разве с точки зрения скрипта- "владельца" сессии - это не точное число? Разве обработчик не сочтет сессию протухшей и без сборщика мусора?
то есть, академическую строгость твоего высказывания я понимаю.
Но сточки зрения скрипта, вроде - никакой разницы - когда мусор собирают.
 

Ваня-Ваня

Guest
приемчик я привел в самом начале.
ставишь куку на то время, которое тебе требуется и по ней, если сессия не стартована, автоматом стартуешь другую.
все просто и понятно.
 
Эх Ваня-Ваня...

Вы все противоречите друг другу.
Tony говорит, что это не то. Я же вижу, что после 24 минут приходится авторизоваться по новой.

Очень жаль, что Эдуард не понимает, что такое СЕССИЯ.
Если бы не понимал в принципе, не работал бы с сессиями
А вопрос задал, чтобы решить проблему и понять лучше.

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

Ушел пообедать, пришел снова - уже другая сессия.
Вот и я о том. Через 1440 секунд, не закрывая броузер, но и не трогая компьютер, сессия умирает сама.

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

tony2001

TeaM PHPClub
>Тони, но разве с точки зрения скрипта- "владельца" сессии - это не
>точное число? Разве обработчик не сочтет сессию протухшей и без
>сборщика мусора?
кстати, нет.
я совершенно спокойно вечером ухожу с работы, прихожу с утра и юзаю ту же сессию - а все потому, что на тестовый сервер кроме меня ходит человека 3.
т.е. за ночь никто сборщик мусора не запустил, а когда я пришел и послал ему SESSID - он посмотрел, что такая уже есть и продолжил.

на самом деле, это логично - при каждом запросе пришлось бы делать stat и проверять время последнего обращения к сессии.
а так - просто fopen() и проверяем да/нет.
 

ForJest

- свежая кровь
И дело действительно в настройках, поскольку по дефолту время жизни сессии - 24 минуты.
Это время, не меньше которого проживет сессия, а не время жизни сессии, если я таки все правильно понимаю
 
то, что ты наблюдаешь - это не только нормально, но и вполне правильно.
именно так и задумывалось.
именно для этого и нужны сессии.
нет, приемчиков нет, раз ты ничего менять не можешь.
Только что увидел это твое сообщение.

Итак. Теперь все стало на свои места.
 

Ваня-Ваня

Guest
тони, ты стопроцентно уверен в том, что ты юзашь ту же сессию?
А не тот же сид, который из куки пришел?
Дурацкий вопрос, я знаю, но все же - это очень нелогично, да и не совпадает с моим опытом.

То есть в этих сессиях сохранились все переменные.
а сервер под юниксом?
тогда это странно....
 

tony2001

TeaM PHPClub
>тони, ты стопроцентно уверен в том, что ты юзашь ту же сессию?
конечно - я же все еще авторизован с утра.

>То есть в этих сессиях сохранились все переменные.
именно.

>а сервер под юниксом?
да, но это никакой роли не играет.

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

>Дурацкий вопрос, я знаю, но все же - это очень нелогично, да и не совпадает с моим опытом.
ну почему не логично?
я же говорю - таким образом избегается лишний вызов stat();
 
Сверху