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
Форумы портала PHP.SU :: Версия для печати :: вопрос ос сесии
Форумы портала PHP.SU » » HTTP и PHP » вопрос ос сесии

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

1. dadli - 07 Июня, 2011 - 11:54:41 - перейти к сообщению
привет пхписти, мне такои вопрос
я хачу што после session_start() ета сесся бил "живои" до закритя броузера,
я хочу вот етава:
если после авторизации, броузер открит на продалжении 10 минут, - сессии била "живои" тоже на продалжении 10 минут.
если после авторизации, броузер открит на продалжении 5 часов, - сессии била "живои" тоже на продалжении 5 часов.
если закрил ползовател броузер, сесся "умер".

как ето сделатъ? как я понимаю, нада просто не трогат (не реализоватъ) таймаут сесии и всо будет работатъ как я на верху писал. скажите пожалуиста ето так?
2. DlTA - 07 Июня, 2011 - 12:05:03 - перейти к сообщению
насколько я помню
сессия продолжает существовать еще минут 20-30 (в зависимости от настройки сервера)
после очередного запроса к серверу и не зависит от того открыт ваш браузер при этом или нет.
3. demot - 07 Июня, 2011 - 12:17:27 - перейти к сообщению
по-умолчанию сессии хранятся в tmp 30 минут, для того чтобы продлить время жизни сессии необходимо сменить папку хранения и установить время вручную.
PHP:
скопировать код в буфер обмена
  1. ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'] .'../sessions/');
  2. ini_set('session.gc_maxlifetime', 86400);//через сутки данные будут считаться мусором и удаляться
  3. ini_set('session.cookie_lifetime', 0); //сессия живет пока не закроется браузер
4. dadli - 07 Июня, 2011 - 12:30:19 - перейти к сообщению
а можно как нибудъ сделат так, што не смотря сушествует или нет запрос (то ест какоита силка нажата да?), сесся бил "живои" до закритя браузера.
можно ета реализоватъ? (без исползовании куки).
5. DeepVarvar - 07 Июня, 2011 - 12:32:56 - перейти к сообщению
dadli это без куки - это только сессия
6. Давит - 07 Июня, 2011 - 13:05:52 - перейти к сообщению
можно так реализоватъ
время жизни сессии постав больше пример 2 час
добавляйте поля в таблице сессии datetime

на тех файлах где проверится присутствие сессии,
если есть сесия
добавь запрос чтобы обновила время в поле datetime на текущий время,
пример
PHP:
скопировать код в буфер обмена
  1. $query = "UPDATE session SET datetime = NOW() WHERE";
  2.  mysql_query($query);


потом удали те серии которые старше чем 45 мин последний активации.
пример
PHP:
скопировать код в буфер обмена
  1.  $query = "DELETE FROM session WHERE datetime < NOW() -  INTERVAL '45' MINUTE";
  2.   mysql_query($query);
7. dadli - 07 Июня, 2011 - 13:37:41 - перейти к сообщению
ок, всем спасибо балшои за ответах

 

Powered by ExBB FM 1.0 RC1