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 »   

> Без описания
Sergey8990
Отправлено: 26 Декабря, 2011 - 20:15:03
Post Id


Новичок


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


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




Помогите очень прошу.
На сайте поставил сессию
session_start();
$fatop=$_SESSION["username"];

организовал выход из нее
unset($_SESSION['username']);
session_destroy();

Но вот проблема, как поставить время жизни сессии 2,5 часа.
Пробовал в htaccess дописывать строку
php_value session.gc_maxlifetime 9000

Специально выждал 3 часа без активности на сайте, сделал переход и - сессия жива здорова. Как мне ее уничтожить??? Что делаю не так???
 
 Top
caballero
Отправлено: 26 Декабря, 2011 - 22:25:45
Post Id


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


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


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




А на фига ее разрушаить. Удали ненужные переменные и не занимайся фигней


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Sergey8990
Отправлено: 26 Декабря, 2011 - 22:35:02
Post Id


Новичок


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


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




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

Кто что дельное подскажет?!
 
 Top
Okula
Отправлено: 26 Декабря, 2011 - 23:24:26
Post Id



Участник


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


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




Сессия не будет жить месяц. она по истечению нескольких дней просрочится.
 
 Top
Slesher
Отправлено: 26 Декабря, 2011 - 23:36:46
Post Id


Гость


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


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




Сессия по идее даже при выходе с браузера должна уничтожится. После перезагрузки системы уже точно.
 
 Top
Sergey8990
Отправлено: 26 Декабря, 2011 - 23:44:24
Post Id


Новичок


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


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




Okula пишет:
Сессия не будет жить месяц. она по истечению нескольких дней просрочится.


Да понятно, что месяц не будет жить, я утрирую просто. И одного дня слишком много для ее жизни. Нужно для безопасности 2.5 часа.

Slesher пишет:
Сессия по идее даже при выходе с браузера должна уничтожится. После перезагрузки системы уже точно.



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

У меня уже такая ситуация сложилась, что аккаунт у одного пользователя изъял, отдал другому, а первый лазиет по своему бывшему акку, как у себя дома. А ведь может что-то натворить, разные люди бывают.

Поэтому не пытайтесь отговорить от такой задумки. А лучше поделитесь мыслями как еще можно вырубить эту сессию.
 
 Top
Coder1994
Отправлено: 27 Декабря, 2011 - 00:05:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010  
Откуда: Россия, Ростов-на-Дону


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





не пробовали?
 
 Top
Sergey8990
Отправлено: 27 Декабря, 2011 - 00:09:21
Post Id


Новичок


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


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




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

(Отредактировано автором: 27 Декабря, 2011 - 00:11:26)

 
 Top
Coder1994
Отправлено: 27 Декабря, 2011 - 00:11:50
Post Id


Частый гость


Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010  
Откуда: Россия, Ростов-на-Дону


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




Sergey8990 пишет:
Спасибо, вроде можно ей

Вообще переменные сессии нужно разрушать, только этой функцией (можете прочитать это в описании этой функции)
(Добавление)
Sergey8990 пишет:
Спасибо, вроде можно ей выкрутится, но только получается она все освободит в данный момент зареганые сессии. Что же у меня такие случаи нечастые....

Пардон, не то дал
 
 Top
caballero
Отправлено: 27 Декабря, 2011 - 01:49:35
Post Id


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


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


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




Какая разница какой функцией удалять переменную если пользователь явно не разлогинился. Эти функции просто не вызовутся.
Время жизни сессии можно настроить но это не решит проблемму. Просто юзер должен знать - если он не хочет чтобы влезли под его паролем пусть явно разлогинивается и закрывает браузер.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
PATCH
Отправлено: 27 Декабря, 2011 - 02:02:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


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




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

вы что то путаете
Сессия хранится на стороне сервера , кукисы на стороне клиента , сессия авторазрушается (поумолчанию) после закрытия браузера на стороне клиента. unset($_SESSION['var']); нормально работает при обычных настройках в php.ini вы наверно что то намутили с сессией) или же у вас не вызывается unset($_SESSION['var']); мб условие не выполняется
 
 Top
lamozavrik
Отправлено: 27 Декабря, 2011 - 02:07:18
Post Id



Частый гость


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


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




Я решал вопрос удаления сессии по истечению определенного времени следующим образом:
Например при авторизации на сайте создавал дополнительную сессионную переменную в которую записывал текущее время, потом при каждом действии пользователя обновлял время в сессионой переменной, а в начале скрипта проверял, если время в сессионной переменной + к примеру 30 минут меньше чем текущее время, то закрывал сессию, а иначе обновлял время в сессионной переменной. Вот пример кода:
PHP:
скопировать код в буфер обмена
  1.  
  2. if(time() > $_SESSION['time']+1800){
  3.     unset($_SESSION['username']);
  4. }else{
  5.     $_SESSION['time'] = time();
  6. }
  7.  


-----
Ударим крепким сном по мукам совести!
 
 Top
vidal
Отправлено: 03 Апреля, 2013 - 09:15:03
Post Id



Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Апр. 2010  
Откуда: The Republic of Belarus


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




Я понимаю, что то что напишу(ВСЕ), растяжимое понятие. Перепробовал ВСЕ, но сессия не удаляется и не удаляются переменные в ней.
Все началось с безобидного:
CODE (htmlphp):
скопировать код в буфер обмена
  1. unset($_SESSION['password']);
  2. unset($_SESSION['login']);
  3. unset($_SESSION['id']);

Но оно не работает, как выяснилось, не работает ничего что пробовал после. Может ошибка не в том, что пробую, а в том где пишу? Я бессилен.
(Добавление)
Проблема решена. В файле exit.php написал всего три строки:
 
 Top
caballero
Отправлено: 03 Апреля, 2013 - 10:15:19
Post Id


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


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


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




Цитата:
Но оно не работает,

ну да, у тысяч разработчиков работает а у тебя нее.

Цитата:
Проблема решена. В файле exit.php написал всего три строки:

чушь


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 03 Апреля, 2013 - 10:15:46
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Sergey8990 пишет:
Специально выждал 3 часа без активности на сайте, сделал переход и - сессия жива здорова. Как мне ее уничтожить??? Что делаю не так???

Сессия не предназначена для ограничения времени действия.
http://habrahabr[dot]ru/post/171151/

Okula пишет:
Сессия не будет жить месяц.

Лично видел сессию, жившую 2 месяца. Рецепт прост - продлённый gc_maxlifetime и регулярные посещения страницы этим пользователем. Но gc_maxlifetime здесь только влияет на заметность проблемы.

lamozavrik пишет:
Я решал вопрос удаления сессии по истечению определенного времени следующим образом:

И это единственный гарантированный способ. Соответственно, верный.


-----
PostgreSQL DBA
 
 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