Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Очистка сессии при закрытии браузера
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
keysi_ подозреваю что ты каждый раз перед проверкой ее устанавливаешь (Добавление)
смотри в инструменте разработчика SID
если после рестарта браузера он не изменился значит проблема в настройках
Stierus
Отправлено: 25 Апреля, 2014 - 00:09:20
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
идентификатор сессии хранится в куке, настрой время жизни сессионной куки как тебе нужно и проблема решится
keysi_
Отправлено: 25 Апреля, 2014 - 00:57:23
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2009
Помог: 1 раз(а)
Народ, в общем проблема приняла неожиданный оборот! Решение под цитатами.
LIME пишет:
keysi_ подозреваю что ты каждый раз перед проверкой ее устанавливаешь
Нет, конечно. Это же глупо :)
LIME пишет:
(Добавление)
смотри в инструменте разработчика SID
если после рестарта браузера он не изменился значит проблема в настройках
Настройки Apache перелопатил все. Браузеру пофиг.
Stierus пишет:
идентификатор сессии хранится в куке, настрой время жизни сессионной куки как тебе нужно и проблема решится
Тоже уже стал подумывать в этом направлении, как о единственном выходе. Но так как я точно знаю, что кука отвечающая за сессию должна умереть не зависимо от настроек времени жизни cookes я решил идти до конца.
Итак, я полазил в интернетах и хабрах, оказывается много где люди задают такой вопрос, и их либо не понимают и обзывают косорукими, либо вопросы остаются без ответов. На одном из форумов человек предположил решение проблемы (очень замудрённо и на англиском). Попробую сейчас расставить всё точки над i.
Итак, дело исключительно в браузерах семейства Chrome! Они совсем НЕ ОБНОВЛЯЮТ PHPSESSID на всех сайтов, если в настройках браузера стоит галочка: "Продолжать работу с того же места".
Я бы ещё понял касательно открытых, но это относится и к тем сайтам, которые были закрыты пользователем перед закрытием браузера! Подозреваю, также, что галочка "разрешить использовать браузер в фоновом режиме" (по умолчанию включена) работает точно также, а там гляди google ещё что нибудь этакое придумает.
Внимание! Поясню, как эта проблема важна для пользователей сайта. Не убиваемая сессия означает, что галочка в форме авторизации любого сайта "чужой компьютер/не запоминать" (запрет на сохранение куков) из за этой фишки также НЕ СРАБОТАЕТ. А значит, вместо привычного обновления сессии после закрытия браузера, на чужом устройстве - останутся все ваши данные сессии. Поэтому при использовании Хрома всегда нажимайте "выход" чтобы сбросить сессию средствами сайта, а для надёжности, можно ещё удалять за собой данные сессии вручную или вообще использовать режим "инкогнито".
Вот такая вот фича-баг.
Кому не жалко, принимаю "спасибы" за полезное наблюдение.
Stierus
Отправлено: 25 Апреля, 2014 - 15:30:37
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
еще раз
Цитата:
Я всегда думал что сессия должна умирать при закрытии браузера
Не должна, в этом и смысл куки
1) окрой свой браузер, открой панель управления куками и удали PHPSESSID(вроде, так она по дфолту называется). Если после этого сессия все еще останется - тогда я с тобой согласен, проблема есть.
2) попробуй выставить абсолютно любой куке время жизни до закрытия окна, закрой окно, открой снова и попробуй к ней обратиться, если кука будет доступна - это тоже проблема.
Все остальное - демагогия
LIME
Отправлено: 25 Апреля, 2014 - 18:05:33
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Stierus как можно было сказать о времени сессионной куки?
ее время сессия
стыдно товарищ)
Stierus
Отправлено: 28 Апреля, 2014 - 13:08:21
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
LIME, ты о чем сейчас? Есть сессия, у нее есть id, есть кука, которая хранит id этой сессии - сессионная кука. Сессионная кука ничем не отличается от любой другой, как и не привязана к сессии пользователя в браузере. Выставил год время жизни этой куки - она будет жить год, сколько бы ты не закрывал окно браузера.
Может, я не понял иронии, но новички ее не поняли бы тем более.
esterio
Отправлено: 28 Апреля, 2014 - 13:15:54
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
насколько я знаю, если задать время жизни равным 0, то она считаеться сессионной. тоесть если пользователь закрыл браузер ее больше не должно быть. удаляеться она или просто не отправляеться это уже не описано, но то что ее не должно быть прямо описано в спеке http://www[dot]w3[dot]org/Protocols/rfc2109/rfc2109
Цитата:
The Max-Age attribute defines the lifetime of the
cookie, in seconds. The delta-seconds value is a decimal non-
negative integer. After delta-seconds seconds elapse, the client
should discard the cookie. A value of zero means the cookie
should be discarded immediately
Stierus
Отправлено: 28 Апреля, 2014 - 13:22:02
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
И как это противоречит тому, что написал я выше?
esterio
Отправлено: 28 Апреля, 2014 - 13:25:00
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Stierus пишет:
еще раз
Цитата:
Я всегда думал что сессия должна умирать при закрытии браузера
Не должна, в этом и смысл куки
Я это имел ввиду. точнее тот факт если жизнь кукы установлено в 0, то после закритии браузера ее не должно быть
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
esterio, в посте я ни разу не встретил упоминания о времени жизни, не говоря о том, что бы автор писал, что значение стоит в 0. Более того, комментарии вида "Stierus как можно было сказать о времени сессионной куки?" наводят на мысли о том, что люди не знают о существовании подобных настроек.
Мой ответ ровно в том и состоял, что нужно проверить время жизни и паниковать только после того, как убедился, что все настроено в соответствии с желаемым.
esterio
Отправлено: 28 Апреля, 2014 - 14:12:17
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Stierus
Согласен с тем что в настройках можно подкрутить, но думаю что у ТС все стоит по дефолту. Но все таки проверить стоит.
Не поверете проверил в Хроме, все как и описано выше. Время установлено в 0. Закрыл и открыл ИД сессии старый. Такое же поведение и в огнелисе с установленым плагином "Менеджер сессий". Все таки я согласен это фича-бага
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.