|
|
|
| "... После завершения работы с сессией сначала нужно разрегистрировать все переменные сессии, а затем вызвать функцию session_destroy...
А если тот, кто открыл сессию не хочет нажимать специальную кнопку - "Завершение сессии", - а просто взял и отключился (ну или ... связь оборвалась) , че тогда произойдет ?
Серевер удаляет такие сеансы, если да, то когда и как ??? | |
|
|
|
|
|
|
|
для: Evgen
(15.04.2006 в 22:04)
| | Да сервер неактивние ссесии удаляет, но это лазейка для хакеров =) | |
|
|
|
|
|
|
|
для: CrazyAngel
(15.04.2006 в 22:50)
| | Лазейка - это нехорошо...
А как на практике с этим борются? Не будешь же целый день нырять на сервер, чтобы посмотреть кто сейчас юзает твой сайт и какие сессии остались не закрытыми ? | |
|
|
|
|
|
|
|
для: Evgen
(16.04.2006 в 01:17)
| | Обычно такая проблема стоит, если SID сессии передаётся через GET-параметр http://www.softtime.ru/info/articlephp.php?id_article=36, иначе он передаётся через cookie и воспользоваться им быстро у злоумышленика не получится. | |
|
|
|
|
|
|
|
для: cheops
(16.04.2006 в 13:34)
| | Извиняюсь за назойливость!
Но все-таки хотелось завершить эту тему - так все же как правильно это делать?
Если не ошибаюсь, способы передачи ID определяются сервером (cookie, GET, POST), я это устанавливать не могу.
Нужно ли каким-то образом осуществлять контроль за незавершенными сессиями, или это на практике все отдается в руки серверу ?
Тогда на кой ... нужна та процедура, которая у меня приводилась в начале темы? Для себя любимого ..? | |
|
|
|
|
|
|
|
для: 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() разрегистрирует все переменные сессии и уничтожает эту самую сессию. Удалять сессию вручную можно, к примеру, для "выхода" пользователя из чата/форума посредством нажатия на ссылку "выйти". | |
|
|
|
|
|
|
|
для: Саня
(16.04.2006 в 16:48)
| | Во как!
Большое спасибо! | |
|
|
|
|
|
|
|
для: Evgen
(17.04.2006 в 15:33)
| | А можно спросить, после истечения этих 180 минут что будет с сессиями? Они удалятся с сервера, или просто станут недействительными? | |
|
|
|
|
|
|
|
для: FiX
(23.04.2006 в 00:42)
| | Они станут недействительными - файл-сессии помоему нужно самостоятельно удалять при помощи cron (могу врать)... | |
|
|
|
|
|
|
|
для: cheops
(23.04.2006 в 00:44)
| | Так значит, они все-таки собираются на сервере, и если их не удалять, то собертся куча ненужного хлама на сервере? В смысле, если нет Cron'a... | |
|
|
|
|
|
|
|
для: FiX
(23.04.2006 в 00:54)
| | Дело в том, что сервер рано или поздно перезагружается и они помоему в любом случае удаляются, а так да, может скопиться достаточно много заголовков. | |
|
|
|
|
|
|
|
для: cheops
(23.04.2006 в 11:20)
| | Кстати, а можно ли написать скрипт, который бы удалял все неактивные сессии? Думаю, если такое будет возможно, то и Cron не особо нужен - просто, например, когда посетитель входит на сайт, выполняется операция: сначала проверяется, удалялись ли сегодня сессии, а если нет - то удаляет... Ведь так реально?! | |
|
|
|
|
|
|
|
для: FiX
(23.04.2006 в 13:08)
| | Нет удалять можно только текущую сессию, т.е. её удаление будет возможно, если только посетитель вернёться на сайт, на сессии других посетителей он влиять не может. | |
|
|
|