Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Как гостям запретить пользоваться поиском и еще кое что

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Slon77
phpBB 1.4.2
Сообщения: 52
Стаж: 17 лет 10 месяцев

Re: Как гостям запретить пользоваться поиском и еще кое что

Сообщение Slon77 »

интересное замечание автора мода:
by Niels on Thu Oct 24, 2002 8:09 pm

the max sessions per IP, does not work perfectly, users can avoid the counting by not making a new session, I suspect this could be different depending on the browser, but there are currently no way to fix this.

so don't trust the max session per IP, becouse it is easy to "fool", however to avoid some users making to meny connections it can be used

http://mods.db9.dk/forum/post2637.html#p2637

это он ведь про свой мод, я так понимаю?

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

Код: Выделить всё

// Begin add - Max sessions MOD
if ($user_id == ANONYMOUS) {
$sql = "SELECT session_user_id FROM ".SESSIONS_TABLE." 
			WHERE session_time >= ".( time() - 90 ) . "
			AND session_ip='".$user_ip."'". (($user_id == ANONYMOUS) ? "" :" AND session_user_id='".$user_id."'" ) ;
if( !($result = $db->sql_query($sql)) )
{
	message_die(CRITICAL_MESSAGE, 'Could not obtain users online information'.$sql, '', __LINE__, __FILE__, $sql);
}
$total_users = $db->sql_numrows($result);
if ( $total_users >= 2 )
{
	message_die(CRITICAL_MESSAGE, 'Max connections per IP reatched, 2, please use fewer open windows');
}
}
// End add - Max sessions MOD
не смог вручную смоделировать ситуацию, чтоб скрипт сработал.. как это сделать?
странно, но по совету Jovanni (http://www.phpbbguru.net/community/topi ... tml#p11254)
делал анализ запросов к БД, так вот, там вышеупомянутого запроса не нашел...
Slon77
phpBB 1.4.2
Сообщения: 52
Стаж: 17 лет 10 месяцев

Re: Как гостям запретить пользоваться поиском и еще кое что

Сообщение Slon77 »

нашел, "как скрипт работает":
он НЕ работает, если открывать страницы в новых вкладках.. даже если по правому клику выбирать "открыть в новой странице" - все равно реакции никакой.
броузер - ИЕ7
если каждый раз создавать (быстро) новую копию ИЕ, то есть шанс увидеть предупреждение о превышении..
еще замечание: похоже, выполение скриптов (проверка) прерывается не в самом начале.
вот пример среднего результата на странице с предупреждающим сообщением:

[ Время : 0.2054с ( PHP: 16% - SQL: 84% ) | SQL-запросов : 5 | Gzip : Выкл. ]

непонятная вещь: хоть и ограничение стоит как 2 "сессии" на ip, у меня в таблице phpbb_sessions скопилось больше 10 записей с одинаковым (моим) session_ip
как такой может быть?

не понял, буду очень признателен, если кто поможет - как сделать эту проверку на то, чтобы эти ограничения накладывались ТОЛЬКО на гостей?
похоже, что вышеприведенный код, вставленный в sessions.php, с ошибками; в самом начале, на проверку гость/не гость...

но даже если заменить на
// Begin add - Max sessions MOD
if ($user_id == -1) {

все равно и после логина при открытии нескольких разных окон получаю ошибку..

изначально цель была ограничить именно нелюдей.. сейчас пишу в файл ип всех, кому выдавалось предупреждение.. посмотрим, по результатам отпишу есть толк или нет..
Человек сильнее механизма! (с) :)
Slon77
phpBB 1.4.2
Сообщения: 52
Стаж: 17 лет 10 месяцев

Re: Как гостям запретить пользоваться поиском и еще кое что

Сообщение Slon77 »

и еще вопрос знатокам:

обнаружил, что среди тех, кто пытался открыть кол-во сессий больше разрешенного, оказался гуглбот..
т.е. пришел индексировать что-то, а на выходе получил не то, что ожидал..
но с кодом 200..
можно ли как-то в случае превышения допутсимых сессий по ip выдавать ошибку с соответствующим кодом в заголовке?

Вернуться в «Поддержка phpBB 2.0.x»