С регистрацией или без от выбранных стран

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
yordanp
phpBB 1.2.1
Сообщения: 22
Стаж: 16 лет 9 месяцев

С регистрацией или без от выбранных стран

Сообщение yordanp »

Подскажите, как можно реализовать следующее? Хочу сделать так, чтобы для посетителей определенного государства (например Болгарии) необходима была регистрация, чтобы создавать темы или писать в них. А для всех остальных, чтобы вход был свободным, т.е. чтобы могли создавать темы, а так же оставлять свои сообщения без обязательной регистрации.
MAzZY
Бывший член :)
Сообщения: 2925
Стаж: 21 год 4 месяца
Благодарил (а): 79 раз
Поблагодарили: 69 раз
Забанен: Бессрочно

Re: С регистрацией или без от выбранных стран

Сообщение MAzZY »

По какому признаку будете делить посетителей?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: С регистрацией или без от выбранных стран

Сообщение rxu »

Если ваши посетители ходят только с "честных" IP-адресов, без проблем. Иначе - никак.
Изображение
Аватара пользователя
yordanp
phpBB 1.2.1
Сообщения: 22
Стаж: 16 лет 9 месяцев

Re: С регистрацией или без от выбранных стран

Сообщение yordanp »

MAzZY писал(а):По какому признаку будете делить посетителей?
Хочу сделать свободный доступ для общения без обязательной регистрации для всех кроме определенного государства. Так как форум на тему туризма в определенной стране, просто хочу избежать безразборного постинга скрытой рекламы или недобросовестной антирекламы со стороны заинтересованных (в живущих и работающих данном регионе).

MAzZY писал(а):Если ваши посетители ходят только с "честных" IP-адресов, без проблем. Иначе - никак.
Да именно на базе IP- адресов. (которая у меня имеется)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: С регистрацией или без от выбранных стран

Сообщение rxu »

Смотря сколько диапазонов адресов нужно учесть. В общем виде, в posting.php находите строки

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

    case 'post':
        if ($auth->acl_get('f_post', $forum_id)) 

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

    case 'reply':
        if ($auth->acl_get('f_reply', $forum_id)) 
В условия по $auth добавляете через && условия вида

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

!in_array(ip2long($user->ip), range(ip2long('77.85.0.0'), ip2long('77.85.255.255'))) 
Это если для одного диапазона.
Последний раз редактировалось rxu 03.06.2010 14:22, всего редактировалось 1 раз.
Причина: По ошибке забыто ip2long($user->ip)
Изображение
Аватара пользователя
yordanp
phpBB 1.2.1
Сообщения: 22
Стаж: 16 лет 9 месяцев

Re: С регистрацией или без от выбранных стран

Сообщение yordanp »

Подскажите пожалуйста почему выдает ошибку "syntax error" ?

error.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: С регистрацией или без от выбранных стран

Сообщение Палыч »

yordanp
скобки

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

if (условие)
а у вас

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

if  (условие1) и (условие2)
нужно

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

if  ((условие1) и (условие2))
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
yordanp
phpBB 1.2.1
Сообщения: 22
Стаж: 16 лет 9 месяцев

Re: С регистрацией или без от выбранных стран

Сообщение yordanp »

Я заменил код так как вы указали, но все осталось без изменений. Экспериментально вписал свой IP диапазон, но все равно свободно мне разрешило добавлять новые темы и посты без какой-либо регистрации или авторизации. Может я что-то с кодом опять перепутал?

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

        case 'post': 
            if (($auth->acl_get('f_post', $forum_id))
            && !in_array($user->ip, range(ip2long('77.85.0.0'), ip2long('77.85.255.255')))) 

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

        case 'reply':
            if (($auth->acl_get('f_reply', $forum_id))
            && !in_array($user->ip, range(ip2long('77.85.0.0'), ip2long('77.85.255.255')))) 
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: С регистрацией или без от выбранных стран

Сообщение rxu »

yordanp
Моя ошибка, несомненно, $user->ip также необходимо преобразовать в целое, т.е.

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

        case 'post': 
            if ($auth->acl_get('f_post', $forum_id)
            && !in_array(ip2long($user->ip), range(ip2long('77.85.0.0'), ip2long('77.85.255.255'))))  

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

        case 'reply':
            if ($auth->acl_get('f_reply', $forum_id)
            && !in_array(ip2long($user->ip), range(ip2long('77.85.0.0'), ip2long('77.85.255.255'))))  
Изображение
Аватара пользователя
yordanp
phpBB 1.2.1
Сообщения: 22
Стаж: 16 лет 9 месяцев

Re: С регистрацией или без от выбранных стран

Сообщение yordanp »

Что-то никак ни получается достичь желаемого результата.
Вписываю для пробы свой IP адрес. Пробую создать новую тему или написать сообщение, соответно система отправляет меня зарегистрироваться или авторизоваться. Но и после авторизации все равно не разрешает оставлять сообщения.
Пробовал входить по разному включительно и как Админ, результат тот же: “Вы не можете добавлять сообщения в этом форуме”. Получается что-то типа бана по IP.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: С регистрацией или без от выбранных стран

Сообщение rxu »

Н-дас. Пробуем по такой схеме

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

        case 'post': 
            if ($auth->acl_get('f_post', $forum_id) && !$user->data['is_registered']
            && !in_array(ip2long($user->ip), range(ip2long('77.85.0.0'), ip2long('77.85.255.255'))))    

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

        case 'reply':
            if ($auth->acl_get('f_reply', $forum_id) && !$user->data['is_registered']
            && !in_array(ip2long($user->ip), range(ip2long('77.85.0.0'), ip2long('77.85.255.255'))))    
Изображение
Аватара пользователя
yordanp
phpBB 1.2.1
Сообщения: 22
Стаж: 16 лет 9 месяцев

Re: С регистрацией или без от выбранных стран

Сообщение yordanp »

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

            case 'post': 
                if ($auth->acl_get('f_post', $forum_id) && !$user->data['is_registered']
                && !in_array(ip2long($user->ip), range(ip2long('77.85.0.0'), ip2long('77.85.255.255'))))    

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

            case 'reply':
                if ($auth->acl_get('f_reply', $forum_id) && !$user->data['is_registered']
                && !in_array(ip2long($user->ip), range(ip2long('77.85.0.0'), ip2long('77.85.255.255'))))    
Все осталось по-прежнему. Сделал всё, как Вы написали. :(
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: С регистрацией или без от выбранных стран

Сообщение rxu »

По-прежнему - это как? И в зарегистрированном виде не позволяет отвечать?
Изображение
Аватара пользователя
yordanp
phpBB 1.2.1
Сообщения: 22
Стаж: 16 лет 9 месяцев

Re: С регистрацией или без от выбранных стран

Сообщение yordanp »

По-прежнему - это как? И в зарегистрированном виде не позволяет отвечать?
Вписываю для пробы свой IP адрес. Пробую создать новую тему или написать сообщение, соответно система отправляет меня зарегистрироваться или авторизоваться. Но и после авторизации все равно не разрешает оставлять сообщения.
Пробовал входить по разному включительно и как Админ, результат тот же: “Вы не можете добавлять сообщения в этом форуме”. Получается что-то типа бана по IP.
Аватара пользователя
MIT
Former team member
Сообщения: 2500
Стаж: 17 лет 6 месяцев
Откуда: 56°20′02″ с. ш. 36°42′45″ в. д.
Благодарил (а): 3 раза
Поблагодарили: 351 раз

Re: С регистрацией или без от выбранных стран

Сообщение MIT »

Не сильно вникал в топик, но если надо узнать факт наличия элемента в массиве, то почему !in_array-то? «!» — это отрицание.

Добавлено спустя 2 минуты 8 секунд:
И вроде как там не && надо, а ||, т.е. типа так:

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

                if (($auth->acl_get('f_post', $forum_id) && !$user->data['is_registered'])
                || in_array(ip2long($user->ip), range(ip2long('77.85.0.0'), ip2long('77.85.255.255'))))   

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