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

У вас есть идея для расширения функциональности phpBB 2.0.x? Расскажите о ней здесь!

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

Сообщение Паскаль 16.07.2008 13:45

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

ПС.
IP более полторы тысячи =)
Паскаль
phpBB 1.2.0
 
Сообщения: 12
Зарегистрирован: 18.06.2007 12:13


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

Сообщение Паскаль 21.07.2008 13:31

С основой разобрался
в 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
Вложения
trabla.rar
(22.25 Кб) Скачиваний: 3
Паскаль
phpBB 1.2.0
 
Сообщения: 12
Зарегистрирован: 18.06.2007 12:13

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

Сообщение Siava 21.07.2008 15:13

Паскаль
Попробуйте данную инструкцию в 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 адреса. Короче говоря, будет бан наоборот.
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.2
 
Сообщения: 2718
Зарегистрирован: 11.01.2005 15:29
Откуда: Питер

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

Сообщение Паскаль 22.07.2008 5:03

Siava
Большое спасибо =) на торрентпире маленько по другому =) но надеюсь разберусь!
Паскаль
phpBB 1.2.0
 
Сообщения: 12
Зарегистрирован: 18.06.2007 12:13


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

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

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