Уважаемые пользователи!
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
Паскаль
phpBB 1.2.0
Сообщения: 12
Стаж: 16 лет 10 месяцев

Необычный бан

Сообщение Паскаль »

Подскажите как можно сделать такое:
в базе есть таблица. в эту таблицу допустим внесен IP адрес 111.111.111.111 (больше полей там нет)
при попытке зайти на сайт (безразницы по какой ссылке(даже скачивание атача)) пользователь заходил, а если адрес посетителя не внесен в базу то он получал перенаправление на страницу error.php (безразницы по какой ссылке(даже скачивание атача))
За ранее спасибо.

ПС.
IP более полторы тысячи =)
Паскаль
phpBB 1.2.0
Сообщения: 12
Стаж: 16 лет 10 месяцев

Re: Необычный бан

Сообщение Паскаль »

С основой разобрался
в includes/page_header.php перед

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

// Online userlist
вставил

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

$gip = $_SERVER["REMOTE_ADDR"];
$sql = "SELECT * FROM bb_base_ip WHERE ip = '$gip' ";
$result = $db->sql_query( $sql );
$go = mysql_num_rows( $result );
if ( $go >= 1 )
{
}
else
{
message_die( GENERAL_ERROR, 'Ваш IP адрес не пренадлежит нашей сети!' );
}
и те пользователи чьи адреса внесены в базу попадают без проблем, а те чьи не внесены в место

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

Ваш IP адрес не пренадлежит нашей сети!
видят

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

Fatal error: message_die was called multiple times in Z:\home\site.ru\www\forum\includes\functions.php on line 1933
ПС.
у меня torrentpier 775
прилепил и page_header.php и functions.php
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5283
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: Необычный бан

Сообщение Siava »

Паскаль
Попробуйте данную инструкцию в common.php прописать.. хотя я не уверен что изменится результат. А ещё можно поискать где в коде находится проверка на бан по IP и использовать в том месте.

Добавлено спустя 2 минуты 54 секунды:
P.S.
В файле sessions.php надо копать :)

Добавлено спустя 3 минуты 18 секунд:
А ещё лучше взять оттуда код:

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

        //
        // Initial ban check against user id, IP and email address
        //
        preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);

        $sql = "SELECT ban_ip, ban_userid, ban_email
                FROM " . BANLIST_TABLE . "
                WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . "ff', '" . $user_ip_parts[1] . $user_ip_parts[2] . "ffff', '" . $user_ip_parts[1] . "ffffff')
                        OR ban_userid = $user_id";
        if ( $user_id != ANONYMOUS )
        {
                $sql .= " OR ban_email LIKE '" . str_replace("\'", "''", $userdata['user_email']) . "'
                        OR ban_email LIKE '" . substr(str_replace("\'", "''", $userdata['user_email']), strpos(str_replace("\'", "''", $userdata['user_email']), "@")) . "'";
        }
        if ( !($result = $db->sql_query($sql)) )
        {
                message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);
        }

        if ( $ban_info = $db->sql_fetchrow($result) )
        {
                if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )
                {
                        message_die(CRITICAL_MESSAGE, 'You_been_banned');
                }
        }
И переделать под свои нужды. А именно условие

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

if ( $ban_info = $db->sql_fetchrow($result) )
заменить на обратное

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

if ( $ban_info != $db->sql_fetchrow($result) )
и вместо

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

message_die(CRITICAL_MESSAGE, 'You_been_banned');
сделать свой редирект на страницу error.php.
И соответственно, в стандартной функции бана по IP, которая в админке, добавить "белые" IP адреса. Короче говоря, будет бан наоборот.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Паскаль
phpBB 1.2.0
Сообщения: 12
Стаж: 16 лет 10 месяцев

Re: Необычный бан

Сообщение Паскаль »

Siava
Большое спасибо =) на торрентпире маленько по другому =) но надеюсь разберусь!

Вернуться в «Запросы модов для phpBB 2.0.x»