![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Мое почтение всем!
Есть такая проблема: Как убить переменные текущей сессии и саму сессию, если работа скрипта прервана по каким-либо причинам? Допустим если пользователь закрыл браузер, то данные всей сессии моментально автоматом убивались! Это сообщение отредактировал(а) -=Ustas=- - 21.8.2005, 11:20 -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Если пользователь закрыл браузер, то скрипт продолжает работать.
А вообще есть session_destroy и unset, который уничтожает индексы массива $_SESSION |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Mal Hack, я курсе что есть. Мне нужно унитожить сессию именно тогда, когда пользователь вышел некорректным способом, т.е. просто закрыл браузер. Или здесь уже по любому придется юзать JavaScript?! -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
В данном случае ты ничего не заюзаешь. Как ты через JS отловить момент, когда закрывается ее база, тобиь движок браузера?
Нельзя так сделать. Добавлено @ 17:55 Можно, конечно повесить на OnClose или OnExit, но это не всегда сработает. |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Я это и имел ввиду. Т.е. не всегда работает?! -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Нет, конечно. |
|||
|
||||
| Anarki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 14.3.2005 Репутация: 7 Всего: 11 |
Тестировал такие скрипты работало в Opera, Firefox, IE. при конечно включенном Javascript, это называется 'exit консоль'
|
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
А вот отсюда поподробнее... Примерчик мона? -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
А не проще выставить время работы сессии на период работы браузера? Т.е. как только пользователь закрыл браузер, сессия теряется.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
А каким же образом мне получить это время?
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| fara |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 15.3.2004 Где: С.-Петербург Репутация: 1 Всего: 2 |
А разве сессия по умолчанию не убивается когда закрывается браузер?
По крайней мере я так работал с админкой. Все отлично убивалось когда я закрываю браузер. --------------------
Крыша хлопает в ладоши -Спасибо всем за план хороший! |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Нет. Ты что имел доступ к файлам сессий и видел что их там нет? Откуда у тебя такая уверенность?! -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
-=Ustas=- делается всегда таймаут работы сессии, реализовывается программно.
|
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
Ну так это же на какой-то определенный промежуток времени только. Ладно, буду искать другие решения. Тогда у меня попутный вопрос, может и не в тему, но все же: У меня в сессии хранится имя админа, его логин, id и еще одна логическая переменная, которые после особой проверки и сравнения, если все в норме - дают доступ к админке. Ну так вот, если по каким либо причинам эта сессия останется не разрегистрированной, то можно же ее спереть и использовать в своих коварных целях?! Или же для того, чтобы ее стянуть, нужно сервак ложить? Вот, в принципе, за что я переживаю!
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| S.A.P. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 3 Всего: 71 |
По САБЖУ. Сейчас как раз этим и занимаюсь. Отслеживать закрытие браузера - ИМХО не выход лучше убивать сессии через определенный промежуток времени, если сессия в это время не была задействована (как сделано в форуме IPB). Вобще все данные сессий удобно хранить в базе данных, а для этого регистрировать обработчики сессий с помощью функции session_set_save_handler(). Сборкой мусора должен заниматься обработчик, который идет сюда последним параметром (условно назовем gc), время жизни сессий можно регулировать параметром session.gc_maxlifetime, который подается в обработчик сборки мусора.
Разумеется, если ты задумал хранить сессии в базе данных, необходимо указывать время создания или активации каждой сессии.
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |