Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011
Помог: 0 раз(а)
Как это нафига разрушать. Пользователь, если не нажмет на кнопку выход, сессия остается жить и ждет его, даже если он не появляется на сайте месяц. А его аккаунтом тем временем начинает пользоваться другой пользователь (работник). И когда тот первый пользователь снова зайдет на сайт, то ему открывается аккаунт, который уже ему не принадлежит. А этого очень не нужно. Переменку, которую использует сессия изменить нельзя, а то всю систему переписывать прийдется. Так что вот, нужно обязательно ее разрушить.
Кто что дельное подскажет?!
Okula
Отправлено: 26 Декабря, 2011 - 23:24:26
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
Сессия не будет жить месяц. она по истечению нескольких дней просрочится.
Slesher
Отправлено: 26 Декабря, 2011 - 23:36:46
Гость
Покинул форум
Сообщений всего: 69
Дата рег-ции: Дек. 2011
Помог: 0 раз(а)
Сессия по идее даже при выходе с браузера должна уничтожится. После перезагрузки системы уже точно.
Sergey8990
Отправлено: 26 Декабря, 2011 - 23:44:24
Новичок
Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2011
Помог: 0 раз(а)
Okula пишет:
Сессия не будет жить месяц. она по истечению нескольких дней просрочится.
Да понятно, что месяц не будет жить, я утрирую просто. И одного дня слишком много для ее жизни. Нужно для безопасности 2.5 часа.
Slesher пишет:
Сессия по идее даже при выходе с браузера должна уничтожится. После перезагрузки системы уже точно.
Сессия с браузера при выходе может уничтожаться только тогда, когда так настроят. Сессия хранится на стороне пользователя, поэтому через разные настройки и плагины можно ее сохранить надолго. Мне нужно удалить сессию со своей стороны, а не полагаться на авось пронесет, авось удалится.
У меня уже такая ситуация сложилась, что аккаунт у одного пользователя изъял, отдал другому, а первый лазиет по своему бывшему акку, как у себя дома. А ведь может что-то натворить, разные люди бывают.
Поэтому не пытайтесь отговорить от такой задумки. А лучше поделитесь мыслями как еще можно вырубить эту сессию.
Coder1994
Отправлено: 27 Декабря, 2011 - 00:05:28
Частый гость
Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010 Откуда: Россия, Ростов-на-Дону
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Какая разница какой функцией удалять переменную если пользователь явно не разлогинился. Эти функции просто не вызовутся.
Время жизни сессии можно настроить но это не решит проблемму. Просто юзер должен знать - если он не хочет чтобы влезли под его паролем пусть явно разлогинивается и закрывает браузер.
Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011
Помог: 22 раз(а)
Sergey8990 пишет:
Сессия с браузера при выходе может уничтожаться только тогда, когда так настроят. Сессия хранится на стороне пользователя, поэтому через разные настройки и плагины можно ее сохранить надолго. Мне нужно удалить сессию со своей стороны, а не полагаться на авось пронесет, авось удалится.
вы что то путаете
Сессия хранится на стороне сервера , кукисы на стороне клиента , сессия авторазрушается (поумолчанию) после закрытия браузера на стороне клиента. unset($_SESSION['var']); нормально работает при обычных настройках в php.ini вы наверно что то намутили с сессией) или же у вас не вызывается unset($_SESSION['var']); мб условие не выполняется
lamozavrik
Отправлено: 27 Декабря, 2011 - 02:07:18
Частый гость
Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011
Помог: 4 раз(а)
Я решал вопрос удаления сессии по истечению определенного времени следующим образом:
Например при авторизации на сайте создавал дополнительную сессионную переменную в которую записывал текущее время, потом при каждом действии пользователя обновлял время в сессионой переменной, а в начале скрипта проверял, если время в сессионной переменной + к примеру 30 минут меньше чем текущее время, то закрывал сессию, а иначе обновлял время в сессионной переменной. Вот пример кода:
Покинул форум
Сообщений всего: 28
Дата рег-ции: Апр. 2010 Откуда: The Republic of Belarus
Помог: 0 раз(а)
Я понимаю, что то что напишу(ВСЕ), растяжимое понятие. Перепробовал ВСЕ, но сессия не удаляется и не удаляются переменные в ней.
Все началось с безобидного:
Но оно не работает, как выяснилось, не работает ничего что пробовал после. Может ошибка не в том, что пробую, а в том где пишу? Я бессилен. (Добавление)
Проблема решена. В файле exit.php написал всего три строки:
Лично видел сессию, жившую 2 месяца. Рецепт прост - продлённый gc_maxlifetime и регулярные посещения страницы этим пользователем. Но gc_maxlifetime здесь только влияет на заметность проблемы.
lamozavrik пишет:
Я решал вопрос удаления сессии по истечению определенного времени следующим образом:
И это единственный гарантированный способ. Соответственно, верный.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.