ФорумПрограммированиеPHP для идиотов → $_SESSION - время действия

$_SESSION - время действия

  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 3:04

    Думаю, все сталкивались с такой же проблемой, с которой столкнулся я.
    В документации указано, что $_SESSION будет работать пока открыт браузер (ну или как-то так, хз, уже не помню точно :) ), но в действительности в какой-то момент, пока ничего не делаешь на сайте, а потом к нему обращаешься, эта самая сессия уже сбросилась.
    Наглядный пример это авторизация пользователя. Типа когда авторизация прошла успешно, создаем, например, переменную $_SESSION['login'] = 1; и перед показом страницы проверяем сессию, если есть то показываем.
    Так вот когда браузер не активен мин 10 +-, то при попытке продолжить работу сессии уже нет.

    Вопрос: куда она девается, какого *** она туда девается и через какое время.
    А так же как можно справиться с данной проблемой или какие алтернативы (помимо куков) есть.

    Просто щас начинаю програмку для компании делать для менеджеров, нужно чтобы пока браузер открыт и все переменные были активны, хотя там скорее всего только id юзера и будет.
    from TRIAL with LOVE
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 6 февраля 2008 г. 3:09, спустя 4 минуты 38 секунд

    Время жизни сессии - это время неактивности сессии, по истечении которого сессия может быть удалена сборщиком мусора и пользователь, зайдя на сайт еще раз, получит новый идентификатор сессии и, соответственно, новую сессию. Задается время жизни в php.ini (session.lifetime). При использовании собственных обработчиков этот параметр php.ini можно игнорировать и использовать свое значение времени жизни.
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 3:12, спустя 2 минуты 32 секунды

    ini_set('session.gc_maxlifetime', [столько_сколько_нужно]);

    по-умолчанию 1440 секнуд (24 минуты)
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 3:15, спустя 3 минуты 21 секунду

    Во спасибо большое. Что-то я такого не знал. Теперь везде укажу сколько нужно.
    Кстати глупый вопрос. Если я укажу время действия 24 часа, то при закрытии браузера сессия тоже исчезнет или так и будет висеть отведенный ей срок?
    from TRIAL with LOVE
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 6 февраля 2008 г. 3:19, спустя 3 минуты 59 секунд

    Должна исчезнуть. Но в опере, например, можно продолжить потом работу с прошлой сессией.
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 6 февраля 2008 г. 3:22, спустя 3 минуты 1 секунду

    Сессия конечно никуда не исчезнет и будет хранится сколько указано.
    Но браузер при стандартных настройках потеряет идентификатор сессии, ибо сессионной куке обычно ставят время жизни 0 т.е. сессию придется заводить заново или передавать идентификатор сессии в урле.
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 3:26, спустя 3 минуты 46 секунд

    Тогда как лучше поступить в моем случае?
    Нужно чтобы сессия убивалась при закрытии браузера. Но и могла висеть если пользователе не активен и по 2-3 часа.
    from TRIAL with LOVE
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 6 февраля 2008 г. 3:28, спустя 2 минуты 47 секунд

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

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 3:30, спустя 1 минуту 34 секунды

    Ясно, спасибо. Будем пробывать :)
    from TRIAL with LOVE
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 3:50, спустя 20 минут 6 секунд

    TRIAL, проще всего в твоем случае воспользоваться куками :)
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 8:23, спустя 4 часа 32 минуты 32 секунды

    сессии + куки это надо использовать тебе TRIAL
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 6 февраля 2008 г. 8:33, спустя 10 минут 9 секунд


    сессии + куки это надо использовать тебе TRIAL


    механизм сессий и так использует куки
    adw/0
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 8:50, спустя 16 минут 45 секунд

    Я имел ввиду то что при авторизации проверять куки и стартовать сессии заново, такоим образом будет создан механизм автовхода на сайт.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 6 февраля 2008 г. 9:11, спустя 21 минуту 52 секунды


    Я имел ввиду то что при авторизации проверять куки и стартовать сессии заново, такоим образом будет создан механизм автовхода на сайт.


    а что мешает увеличить лайф-тайм сессий?
    adw/0
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 6 февраля 2008 г. 9:18, спустя 7 минут 1 секунду

    Все от задачи поставленной зависит, мы просто отошли от темы, но ничего как ты верно заметил не мешает.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!