Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 25 Май, 2012, 05:04:13

Страниц: [1] 2
Печать
Автор Тема: $_SESSION - время действия  (Прочитано 3325 раз)
0 Пользователей и 1 Гость смотрят эту тему.
TRIAL    ↓ 
06 Февраль, 2008, 02:04:52
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

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

from TRIAL with LOVE
sap    ↓ 
06 Февраль, 2008, 02:09:30 , спустя 4 минуты 38 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Жмурики

Карма: 40
Сообщений: 2697
Сила слова: 1.48

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

Timur    ↓ 
06 Февраль, 2008, 02:12:02 , спустя 2 минуты 32 секунды
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

PHP
ini_set('session.gc_maxlifetime', [столько_сколько_нужно]);
по-умолчанию 1440 секнуд (24 минуты)
Записан
TRIAL    ↓ 
06 Февраль, 2008, 02:15:23 , спустя 3 минуты 21 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

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

from TRIAL with LOVE
sap    ↓ 
06 Февраль, 2008, 02:19:22 , спустя 3 минуты 59 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Жмурики

Карма: 40
Сообщений: 2697
Сила слова: 1.48

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

AlexB    ↓ 
06 Февраль, 2008, 02:22:23 , спустя 3 минуты 1 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3425
Сила слова: 2.6

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

TRIAL    ↓ 
06 Февраль, 2008, 02:26:09 , спустя 3 минуты 46 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

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

from TRIAL with LOVE
AlexB    ↓ 
06 Февраль, 2008, 02:28:56 , спустя 2 минуты 47 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3425
Сила слова: 2.6

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

TRIAL    ↓ 
06 Февраль, 2008, 02:30:30 , спустя 1 минуту 34 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 7
Сообщений: 907
Сила слова: 0.77

Ясно, спасибо. Будем пробывать :)
Записан

from TRIAL with LOVE
Timur    ↓ 
06 Февраль, 2008, 02:50:36 , спустя 20 минут 6 секунд
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

TRIAL, проще всего в твоем случае воспользоваться куками :)
Записан
disc    ↓ 
06 Февраль, 2008, 07:23:08 , спустя 4 часа 32 минуты 32 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 37
Сообщений: 844
Сила слова: 4.38

сессии + куки это надо использовать тебе TRIAL
Записан
adw0rd    ↓ 
06 Февраль, 2008, 07:33:17 , спустя 10 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17629
Сила слова: 1.67


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

механизм сессий и так использует куки
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
disc    ↓ 
06 Февраль, 2008, 07:50:02 , спустя 16 минут 45 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 37
Сообщений: 844
Сила слова: 4.38

Я имел ввиду то что при авторизации проверять куки и стартовать сессии заново, такоим образом будет создан механизм автовхода на сайт.
Записан
adw0rd    ↓ 
06 Февраль, 2008, 08:11:54 , спустя 21 минуту 52 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17629
Сила слова: 1.67


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

а что мешает увеличить лайф-тайм сессий?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
disc    ↓ 
06 Февраль, 2008, 08:18:55 , спустя 7 минут 1 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 37
Сообщений: 844
Сила слова: 4.38

Все от задачи поставленной зависит, мы просто отошли от темы, но ничего как ты верно заметил не мешает.
Записан
Страниц: [1] 2
Печать
 

Перейти в: