Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Если сессия не завершена, чего случится?
 
 автор: Evgen   (15.04.2006 в 22:04)   письмо автору
 
 

"... После завершения работы с сессией сначала нужно разрегистрировать все переменные сессии, а затем вызвать функцию session_destroy...

А если тот, кто открыл сессию не хочет нажимать специальную кнопку - "Завершение сессии", - а просто взял и отключился (ну или ... связь оборвалась) , че тогда произойдет ?

Серевер удаляет такие сеансы, если да, то когда и как ???

   
 
 автор: CrazyAngel   (15.04.2006 в 22:50)   письмо автору
 
   для: Evgen   (15.04.2006 в 22:04)
 

Да сервер неактивние ссесии удаляет, но это лазейка для хакеров =)

   
 
 автор: Evgen   (16.04.2006 в 01:17)   письмо автору
 
   для: CrazyAngel   (15.04.2006 в 22:50)
 

Лазейка - это нехорошо...

А как на практике с этим борются? Не будешь же целый день нырять на сервер, чтобы посмотреть кто сейчас юзает твой сайт и какие сессии остались не закрытыми ?

   
 
 автор: cheops   (16.04.2006 в 13:34)   письмо автору
 
   для: Evgen   (16.04.2006 в 01:17)
 

Обычно такая проблема стоит, если SID сессии передаётся через GET-параметр http://www.softtime.ru/info/articlephp.php?id_article=36, иначе он передаётся через cookie и воспользоваться им быстро у злоумышленика не получится.

   
 
 автор: Evgen   (16.04.2006 в 16:31)   письмо автору
 
   для: cheops   (16.04.2006 в 13:34)
 

Извиняюсь за назойливость!

Но все-таки хотелось завершить эту тему - так все же как правильно это делать?

Если не ошибаюсь, способы передачи ID определяются сервером (cookie, GET, POST), я это устанавливать не могу.

Нужно ли каким-то образом осуществлять контроль за незавершенными сессиями, или это на практике все отдается в руки серверу ?

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

   
 
 автор: Саня   (16.04.2006 в 16:48)   письмо автору
 
   для: Evgen   (16.04.2006 в 16:31)
 

> я это устанавливать не могу.
Можете:
<?php
ini_set
("session.use_cookies""1");
/* использовать куки для передачи SID
   (0 - не использовать куки)
*/

ini_set("session.use_only_cookies""0"); 
/* использовать ТОЛЬКО куки
   0 - нет, не использовать; 1 - да, только куки
   при значении параметра 1, и если у пользователя отключены
   куки, то сессия не стартуется
*/

ini_set("session.use_trans_sid""1");
/* передавать SID через URI */
?>


> или это на практике все отдается в руки серверу ?
Можно определить время хранения сессии самому:
<?php
ini_set
("session.cache_expire""180"); // 180 минут
?>


> Тогда на кой ... нужна та процедура, которая у меня приводилась в начале темы?
session_destroy() разрегистрирует все переменные сессии и уничтожает эту самую сессию. Удалять сессию вручную можно, к примеру, для "выхода" пользователя из чата/форума посредством нажатия на ссылку "выйти".

   
 
 автор: Evgen   (17.04.2006 в 15:33)   письмо автору
 
   для: Саня   (16.04.2006 в 16:48)
 

Во как!

Большое спасибо!

   
 
 автор: FiX   (23.04.2006 в 00:42)   письмо автору
 
   для: Evgen   (17.04.2006 в 15:33)
 

А можно спросить, после истечения этих 180 минут что будет с сессиями? Они удалятся с сервера, или просто станут недействительными?

   
 
 автор: cheops   (23.04.2006 в 00:44)   письмо автору
 
   для: FiX   (23.04.2006 в 00:42)
 

Они станут недействительными - файл-сессии помоему нужно самостоятельно удалять при помощи cron (могу врать)...

   
 
 автор: FiX   (23.04.2006 в 00:54)   письмо автору
 
   для: cheops   (23.04.2006 в 00:44)
 

Так значит, они все-таки собираются на сервере, и если их не удалять, то собертся куча ненужного хлама на сервере? В смысле, если нет Cron'a...

   
 
 автор: cheops   (23.04.2006 в 11:20)   письмо автору
 
   для: FiX   (23.04.2006 в 00:54)
 

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

   
 
 автор: FiX   (23.04.2006 в 13:08)   письмо автору
 
   для: cheops   (23.04.2006 в 11:20)
 

Кстати, а можно ли написать скрипт, который бы удалял все неактивные сессии? Думаю, если такое будет возможно, то и Cron не особо нужен - просто, например, когда посетитель входит на сайт, выполняется операция: сначала проверяется, удалялись ли сегодня сессии, а если нет - то удаляет... Ведь так реально?!

   
 
 автор: cheops   (23.04.2006 в 23:57)   письмо автору
 
   для: FiX   (23.04.2006 в 13:08)
 

Нет удалять можно только текущую сессию, т.е. её удаление будет возможно, если только посетитель вернёться на сайт, на сессии других посетителей он влиять не может.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования