Сессии

Форум для авторов модов для phpBB 2.0.x. Здесь можно попросить помощи в разработке у коллег.

Сессии

Сообщение Textor 17.02.2006 21:37

при визите юзера на сайт, в phpbb_sessions вносится новая запись с уникальным session_id.

Если 500 юзеров зайдут на сайт по одному разу и больше не вернутся, то не будут же их session_id захлямлять базу. Как от устаревших id избавились разработчики phpbb ?
Последний раз редактировалось Textor 18.02.2006 23:14, всего редактировалось 1 раз.
Textor
phpBB 1.0.0
 
Сообщения: 4
Зарегистрирован: 17.02.2006 21:34


Сообщение Nemo1987 18.02.2006 11:33

Textor, посмотри в модах, далее безопастность мод Max sessions
grammatica falsa non vitiat chartam
Моя хата www.vowik.ru
Аватара пользователя
Nemo1987
phpBB 2.0.13
 
Сообщения: 608
Зарегистрирован: 14.02.2006 11:20
Откуда: Москва
Предупреждения: 3

Сообщение Textor 18.02.2006 13:10

Я думал, что может кто-нить наизусь знает :)
Textor
phpBB 1.0.0
 
Сообщения: 4
Зарегистрирован: 17.02.2006 21:34

Сообщение Nemo1987 18.02.2006 14:34

Textor, ага, весь мод?
grammatica falsa non vitiat chartam
Моя хата www.vowik.ru
Аватара пользователя
Nemo1987
phpBB 2.0.13
 
Сообщения: 608
Зарегистрирован: 14.02.2006 11:20
Откуда: Москва
Предупреждения: 3

Сообщение avm 18.02.2006 14:52

Textor вам принцип изложить? Если да, то:
Удаляем все записи у которых timestamp - NOW() > 600 (период жизни сессии)
Если юзер пришел с имеющимся SID (в cookie или GET), то пытаемся апдейтить запись этого sidа в базе, при этом изменяется ее timestamp...
Если апдейт неудался ($db->sql_query == ok && $db->sql_affectedrows < 1) то сид у этого юзера - устаревший, значит в "гости" его.

Дальше я думаю уже не нужно продолжать...
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
avm
phpBB 2.0.13
 
Сообщения: 636
Зарегистрирован: 16.01.2005 11:40
Откуда: Москва

Сообщение Textor 18.02.2006 14:55

а когда происходит удаление?
p.s. да, именно принцип.
Textor
phpBB 1.0.0
 
Сообщения: 4
Зарегистрирован: 17.02.2006 21:34

Сообщение avm 18.02.2006 14:58

Удаление может происходить до всех действий с sid для всех записей у который timestamp отличается от текущего времени на длительность сессии...
При этом нужно чтобы поле timestamp было проиндексировано (иначе перебор записей начнется и база напряжет хостера)

Или вас все-таки интересует как это сделано именно в phpbb ?
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
avm
phpBB 2.0.13
 
Сообщения: 636
Зарегистрирован: 16.01.2005 11:40
Откуда: Москва

Сообщение Textor 18.02.2006 21:39

Или вас все-таки интересует как это сделано именно в phpbb ?


Да.
Textor
phpBB 1.0.0
 
Сообщения: 4
Зарегистрирован: 17.02.2006 21:34

Сообщение avm 18.02.2006 21:50

Файл includes/sessions.php:
В функции session_pagestart() вызывается функция session_clean() которая делает примерно то что я написал раньше...
выделенный сервер по цене обычного хостинга - менее 150 рублей в месяц
Благодарности принимаются в Яндекс.Деньгах на счет 4100143316948
Аватара пользователя
avm
phpBB 2.0.13
 
Сообщения: 636
Зарегистрирован: 16.01.2005 11:40
Откуда: Москва

Сообщение Slon77 30.03.2008 10:32

avm писал(а):При этом нужно чтобы поле timestamp было проиндексировано (иначе перебор записей начнется и база напряжет хостера)

Или вас все-таки интересует как это сделано именно в phpbb ?


Простите, а под timestamp'ом имеется в виду поле session_time таблицы _sessions?
у меня в этой таблице стоят следующие индексы. На что ругается?

Изображение
Slon77
phpBB 1.2.1
 
Сообщения: 21
Зарегистрирован: 15.06.2006 14:59

Сообщение Палыч 30.03.2008 13:41

На то, что поле session_id используется сразу в двух индексах, один из которых первичный.
Это предупреждение. Забей, второй индекс составной, поэтому иникальность обеспечивается.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Никогда не бойся делать то, что ты пока не умеешь. Помни, что Ковчег был построен любителем. Профессионалы строили Титаник...
Аватара пользователя
Палыч
Просто Палыч
 
Сообщения: 6448
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер

Сообщение Slon77 30.03.2008 23:15

Спасибо!
Вот Палыч - профессионал! Пишет про предупреждение, а читать приятно! :)
а не подскажите насчет отсутствия индекса "timestamp" - если я правильно понял - поля session_time ?
Slon77
phpBB 1.2.1
 
Сообщения: 21
Зарегистрирован: 15.06.2006 14:59

Сообщение Палыч 31.03.2008 14:57

В нормальных условиях - не критично.
Очистка таблицы сессий производится действительно по отбору через session_time, где оно меньше, чем разница между текущим временем и session_length.

Просто топикстартёр писал о 500 открытых сессиях.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Никогда не бойся делать то, что ты пока не умеешь. Помни, что Ковчег был построен любителем. Профессионалы строили Титаник...
Аватара пользователя
Палыч
Просто Палыч
 
Сообщения: 6448
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер

Сообщение Slon77 31.03.2008 16:08

спасибо!
извините за занудство..
у меня 407 записей в таблице _sessions
из них где-то 90% имеют session_user_id = -1 (т.е. гости?)
в свете засилья поисковых ботов и жалобы хостера я как раз сейчас начал разбираться с тем, как бы гостям не выдавать session id (ведь должно же это снизить нагрузку?).
большая таблица _session - чем-то тоже может эту нагрузку вызывать? и если sid от гостей скрыть, то таблица плавно самоочистится?
подскажите - направление мыслей правильное?
Slon77
phpBB 1.2.1
 
Сообщения: 21
Зарегистрирован: 15.06.2006 14:59

Сообщение RedNaxi 31.03.2008 17:08

Чисто теоретически любому посетителю вашего сайта открывается сессия. можно просто не заводить на него запись в таблице, но тогда невозможно будет отследить где в данный момент находятся гости, их ип и другие данные, которые храняться в этой таблице.
Программирую всякую чушь за еду.
Контакт
Над этим, и не только, я когда-то работал.
Аватара пользователя
RedNaxi
phpBB 2.0.18
 
Сообщения: 1154
Зарегистрирован: 21.02.2007 3:05
Откуда: BMK :)

След.

Вернуться в Для авторов (phpBB 2.0.x)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0