Уважаемые пользователи!
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? Ищите ответы здесь!
Аватара пользователя
edgar
phpBB 2.0.13
Сообщения: 917
Стаж: 18 лет 9 месяцев
Откуда: с Луны свалил...

О количестве попыток регистрации

Сообщение edgar »

Почему ограничение на попытки регистрации работает только с включенным VC? Если VC отключено, то можно сколько угодно раз пытаться зарегистрироваться

Как это можно исправить?
Аватара пользователя
edgar
phpBB 2.0.13
Сообщения: 917
Стаж: 18 лет 9 месяцев
Откуда: с Луны свалил...

Сообщение edgar »

Может уважаемые гуру всё таки что-то подскажут? :)
Дело в том, что когда ставишь Anti Bot Question Hack, то AVC отключаешь, но тогда можно сколько угодно пытаться региться. Это не есть хорошо :(
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5284
Стаж: 19 лет 4 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Сообщение Siava »

edgar
Я конечно не гуру, но сдаётся мне, что где-то в usercp_register.php есть такой кусок:

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

        // Visual Confirmation
        $confirm_image = '';
        if (!empty($board_config['enable_confirm']) && $mode == 'register')
        {
                $sql = 'SELECT session_id
                        FROM ' . SESSIONS_TABLE;
                if (!($result = $db->sql_query($sql)))
                {
                        message_die(GENERAL_ERROR, 'Could not select session data', '', __LINE__, __FILE__, $sql);
                }

                if ($row = $db->sql_fetchrow($result))
                {
                        $confirm_sql = '';
                        do
                        {
                                $confirm_sql .= (($confirm_sql != '') ? ', ' : '') . "'" . $row['session_id'] . "'";
                        }
                        while ($row = $db->sql_fetchrow($result));

                        $sql = 'DELETE FROM ' .  CONFIRM_TABLE . "
                                WHERE session_id NOT IN ($confirm_sql)";
                        if (!$db->sql_query($sql))
                        {
                                message_die(GENERAL_ERROR, 'Could not delete stale confirm data', '', __LINE__, __FILE__, $sql);
                        }
                }
                $db->sql_freeresult($result);

                $sql = 'SELECT COUNT(session_id) AS attempts
                        FROM ' . CONFIRM_TABLE . "
                        WHERE session_id = '" . $userdata['session_id'] . "'";
                if (!($result = $db->sql_query($sql)))
                {
                        message_die(GENERAL_ERROR, 'Could not obtain confirm code count', '', __LINE__, __FILE__, $sql);
                }

                if ($row = $db->sql_fetchrow($result))
                {
                        if ($row['attempts'] > 3)
                        {
                                message_die(GENERAL_MESSAGE, $lang['Too_many_registers']);
                        }
                }
                $db->sql_freeresult($result);

                // Generate the required confirmation code
                // NB 0 (zero) could get confused with O (the letter) so we make change it
                $code = dss_rand();
                $code = substr(str_replace('0', 'Z', strtoupper(base_convert($code, 16, 35))), 2, 6);

                $confirm_id = md5(uniqid($user_ip));

                $sql = 'INSERT INTO ' . CONFIRM_TABLE . " (confirm_id, session_id, code)
                        VALUES ('$confirm_id', '". $userdata['session_id'] . "', '$code')";
                if (!$db->sql_query($sql))
                {
                        message_die(GENERAL_ERROR, 'Could not insert new confirm code information', '', __LINE__, __FILE__, $sql);
                }

                unset($code);

                $confirm_image = '<img src="' . append_sid("profile.$phpEx?mode=confirm&id=$confirm_id") . '" alt="" title="" />';
                $s_hidden_fields .= '<input type="hidden" name="confirm_id" value="' . $confirm_id . '" />';

                $template->assign_block_vars('switch_confirm', array());
        }
Обрати внимание, что внутри него есть именно то, что и отвечает за попытки регистрации.

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

                if ($row = $db->sql_fetchrow($result))
                {
                        if ($row['attempts'] > 3)
                        {
                                message_die(GENERAL_MESSAGE, $lang['Too_many_registers']);
                        }
                }
                $db->sql_freeresult($result);
Так вот, чтобы всё это работало и с отключенным VC, надо немного изменить первый кусок на:
... хм.. а вот тут моя уверенность в решении вопроса куда-то пропала. Чего-то я запутался :oops:
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 19 лет
Откуда: Оренбург (Южный Урал)
Благодарил (а): 3 раза

Сообщение Поручик »

Если мне не изменяет память, то когда-то я видел мод, позволяющий поставить ограничение количества регистраций на сессию с выключенным подтверждением.
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
edgar
phpBB 2.0.13
Сообщения: 917
Стаж: 18 лет 9 месяцев
Откуда: с Луны свалил...

Сообщение edgar »

Siava, Поручик
спасибо, буду искать и разбираться. Хотя вроде уже пытался это делать :)
Если найду, выложу
Аватара пользователя
AABur
phpBB 1.4.3
Сообщения: 86
Стаж: 18 лет 7 месяцев
Откуда: Москва
Благодарил (а): 2 раза

Сообщение AABur »

Нашел? Вопрос по-прежнему интересен.
Аватара пользователя
Coagulant
Former team member
Сообщения: 955
Стаж: 19 лет 4 месяца
Откуда: Москва

Сообщение Coagulant »

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