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 :: Очистка сессии при закрытии браузера

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
keysi_
Отправлено: 24 Апреля, 2014 - 21:04:43
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2009  


Помог: 1 раз(а)




Вот такой код;


Установил значение $_SESSION['login']=1
Закрываю браузер. открываю, сессия на месте!

Я всегда думал что сессия должна умирать при закрытии браузера, но она ни куда не делась.
Я что то не понимаю или так и должно работать?
 
 Top
Строитель Модератор
Отправлено: 24 Апреля, 2014 - 21:20:45
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




keysi_ пишет:
Вот такой код;


Установил значение $_SESSION['login']=1
Закрываю браузер. открываю, сессия на месте!

Я всегда думал что сессия должна умирать при закрытии браузера, но она ни куда не делась.
Я что то не понимаю или так и должно работать?


 
 Top
keysi_
Отправлено: 24 Апреля, 2014 - 21:33:51
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2009  


Помог: 1 раз(а)




Строитель, не, ну я понимаю что сессию можно убить вручную, можно даже так:
но это не подходит, так как речь идёт о том, чтобы сессия умирала про закрытии браузера.

Подозреваю, что где то косяк с сервером, но не могу найти какой параметр отвечает за смерть сессии.

(Отредактировано автором: 24 Апреля, 2014 - 21:41:13)

 
 Top
Строитель Модератор
Отправлено: 24 Апреля, 2014 - 21:48:10
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




keysi_ пишет:Строитель, не, ну я понимаю что сессию можно убить вручную, можно даже так:
но это не подходит, так как речь идёт о том, чтобы сессия умирала про закрытии браузера.

Подозреваю, что где то косяк с сервером, но не могу найти какой параметр отвечает за смерть сессии.


http://habrahabr[dot]ru/post/28418/
 
 Top
LIME
Отправлено: 24 Апреля, 2014 - 23:52:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




keysi_ подозреваю что ты каждый раз перед проверкой ее устанавливаешь
(Добавление)
смотри в инструменте разработчика SID
если после рестарта браузера он не изменился значит проблема в настройках
 
 Top
Stierus Супермодератор
Отправлено: 25 Апреля, 2014 - 00:09:20
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




идентификатор сессии хранится в куке, настрой время жизни сессионной куки как тебе нужно и проблема решится
 
My status
 Top
keysi_
Отправлено: 25 Апреля, 2014 - 00:57:23
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Окт. 2009  


Помог: 1 раз(а)




Народ, в общем проблема приняла неожиданный оборот! Решение под цитатами.

LIME пишет:
keysi_ подозреваю что ты каждый раз перед проверкой ее устанавливаешь

Нет, конечно. Это же глупо :)

LIME пишет:
(Добавление)
смотри в инструменте разработчика SID
если после рестарта браузера он не изменился значит проблема в настройках

Настройки Apache перелопатил все. Браузеру пофиг.

Stierus пишет:
идентификатор сессии хранится в куке, настрой время жизни сессионной куки как тебе нужно и проблема решится

Тоже уже стал подумывать в этом направлении, как о единственном выходе. Но так как я точно знаю, что кука отвечающая за сессию должна умереть не зависимо от настроек времени жизни cookes я решил идти до конца.

Итак, я полазил в интернетах и хабрах, оказывается много где люди задают такой вопрос, и их либо не понимают и обзывают косорукими, либо вопросы остаются без ответов. На одном из форумов человек предположил решение проблемы (очень замудрённо и на англиском). Попробую сейчас расставить всё точки над i.


Итак, дело исключительно в браузерах семейства Chrome! Они совсем НЕ ОБНОВЛЯЮТ PHPSESSID на всех сайтов, если в настройках браузера стоит галочка: "Продолжать работу с того же места".
Я бы ещё понял касательно открытых, но это относится и к тем сайтам, которые были закрыты пользователем перед закрытием браузера! Подозреваю, также, что галочка "разрешить использовать браузер в фоновом режиме" (по умолчанию включена) работает точно также, а там гляди google ещё что нибудь этакое придумает.


Внимание! Поясню, как эта проблема важна для пользователей сайта. Не убиваемая сессия означает, что галочка в форме авторизации любого сайта "чужой компьютер/не запоминать" (запрет на сохранение куков) из за этой фишки также НЕ СРАБОТАЕТ. А значит, вместо привычного обновления сессии после закрытия браузера, на чужом устройстве - останутся все ваши данные сессии. Поэтому при использовании Хрома всегда нажимайте "выход" чтобы сбросить сессию средствами сайта, а для надёжности, можно ещё удалять за собой данные сессии вручную или вообще использовать режим "инкогнито".

Вот такая вот фича-баг.
Кому не жалко, принимаю "спасибы" за полезное наблюдение.
 
 Top
Stierus Супермодератор
Отправлено: 25 Апреля, 2014 - 15:30:37
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




еще раз
Цитата:
Я всегда думал что сессия должна умирать при закрытии браузера

Не должна, в этом и смысл куки

1) окрой свой браузер, открой панель управления куками и удали PHPSESSID(вроде, так она по дфолту называется). Если после этого сессия все еще останется - тогда я с тобой согласен, проблема есть.
2) попробуй выставить абсолютно любой куке время жизни до закрытия окна, закрой окно, открой снова и попробуй к ней обратиться, если кука будет доступна - это тоже проблема.

Все остальное - демагогия Улыбка
 
My status
 Top
LIME
Отправлено: 25 Апреля, 2014 - 18:05:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Stierus как можно было сказать о времени сессионной куки?
ее время сессия
стыдно товарищ)
 
 Top
Stierus Супермодератор
Отправлено: 28 Апреля, 2014 - 13:08:21
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




LIME, ты о чем сейчас? Есть сессия, у нее есть id, есть кука, которая хранит id этой сессии - сессионная кука. Сессионная кука ничем не отличается от любой другой, как и не привязана к сессии пользователя в браузере. Выставил год время жизни этой куки - она будет жить год, сколько бы ты не закрывал окно браузера.

Хоть в php.ini выставляй время жизни куки http://www.php.net/manual/ru/ses...onfiguration.php (session.cookie_lifetime)
Хоть прям из php задавай http://ru2.php.net/manual/en/fun...ookie-params.php


Может, я не понял иронии, но новички ее не поняли бы тем более.
 
My status
 Top
esterio
Отправлено: 28 Апреля, 2014 - 13:15:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 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
 
 Top
Stierus Супермодератор
Отправлено: 28 Апреля, 2014 - 13:22:02
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




И как это противоречит тому, что написал я выше?
 
My status
 Top
esterio
Отправлено: 28 Апреля, 2014 - 13:25:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Stierus пишет:
еще раз
Цитата:
Я всегда думал что сессия должна умирать при закрытии браузера

Не должна, в этом и смысл куки

Я это имел ввиду. точнее тот факт если жизнь кукы установлено в 0, то после закритии браузера ее не должно быть

(Отредактировано автором: 28 Апреля, 2014 - 13:27:13)

 
 Top
Stierus Супермодератор
Отправлено: 28 Апреля, 2014 - 13:30:41
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




esterio, в посте я ни разу не встретил упоминания о времени жизни, не говоря о том, что бы автор писал, что значение стоит в 0. Более того, комментарии вида "Stierus как можно было сказать о времени сессионной куки?" наводят на мысли о том, что люди не знают о существовании подобных настроек.
Мой ответ ровно в том и состоял, что нужно проверить время жизни и паниковать только после того, как убедился, что все настроено в соответствии с желаемым.
 
My status
 Top
esterio
Отправлено: 28 Апреля, 2014 - 14:12:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Stierus
Согласен с тем что в настройках можно подкрутить, но думаю что у ТС все стоит по дефолту. Но все таки проверить стоит.

Не поверете проверил в Хроме, все как и описано выше. Время установлено в 0. Закрыл и открыл ИД сессии старый. Такое же поведение и в огнелисе с установленым плагином "Менеджер сессий". Все таки я согласен это фича-бага
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB