запрет регистрации с определенной почтой

Kryl

Пользователь
Всем привет,
как релизовать запрет регистрации с почты @gmail.com ?
Или еще лучше, самому добавлять почтовые сервисы с которых можно регистрироваться .
 

Kryl

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

belomaxorka

Разработчик
Администратор
А какая именно проблема возникает? Можете продемонстрировать?
Запрет просто не решает проблему, а лишь ограничивает людей. К тому же ящики с иероглифами, да хоть с спец символами - не запрещены спецификацией.
 

Kryl

Пользователь
ДА боты видно какие то с почтой gmail регуюся, капча видно не помогает ...
 

Вложения

  • Снимок экрана (125).png
    Снимок экрана (125).png
    41.1 KB · Просмотры: 26

Pole

Пользователь
Поставил в свое время проверку на количество точек, уменьшились реги ботов в разы.
Напомните, какой файл отвечает за проверку, посмотрю код.
 
Последнее редактирование:

Pole

Пользователь
У меня такого файла нет (v2.3.0), есть \src\Legacy\Validate.php

PHP:
public static function email($email, $check_ban_and_taken = true)
    {
        global $lang, $userdata;

        if (!$email || !preg_match('#^([_a-z\d])[a-z\d\.\-_]+@(outlook\.com|gmail\.com|hotmail\.com|yahoo\.com)$#i', $email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
            return $lang['EMAIL_INVALID'];
        }
        if (\strlen($email) > USEREMAIL_MAX_LENGTH) {
            return $lang['EMAIL_TOO_LONG'];
        }

        $arr1 = str_split($email);
         for ($i = 0, $j = 0; $i < count($arr1); $i++)
        {
            if ($arr1[$i] == '.')
            {
                if($j++ == 3)
                {
                    return $lang['EMAIL_INVALID_1'];
                }  
            }
        }
В языковые файлы добавить:
PHP:
$lang['EMAIL_INVALID'] = 'Sorry, but this e-mail address is invalid. We accept only the following mail services: gmail.com, outlook.com, hotmail.com, yahoo.com';
$lang['EMAIL_INVALID_1'] = 'Sorry, but this e-mail address is invalid.';

PHP:
$lang['EMAIL_INVALID'] = 'Извините, но этот e-mail адрес неверен. Мы принимаем только следующие почтовые сервисы: gmail.com, outlook.com, hotmail.com, yahoo.com';
$lang['EMAIL_INVALID_1'] = 'Извините, но этот e-mail адрес неверен.';

Код не мой, все благодарности Dr_Brown, по моему он автор.
 
Последнее редактирование:

Kryl

Пользователь
У меня такого файла нет (v2.3.0), есть \src\Legacy\Validate.php

PHP:
public static function email($email, $check_ban_and_taken = true)
    {
        global $lang, $userdata;

        if (!$email || !preg_match('#^([_a-z\d])[a-z\d\.\-_]+@(outlook\.com|gmail\.com|hotmail\.com|yahoo\.com)$#i', $email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
            return $lang['EMAIL_INVALID'];
        }
        if (\strlen($email) > USEREMAIL_MAX_LENGTH) {
            return $lang['EMAIL_TOO_LONG'];
        }

        $arr1 = str_split($email);
         for ($i = 0, $j = 0; $i < count($arr1); $i++)
        {
            if ($arr1[$i] == '.')
            {
                if($j++ == 3)
                {
                    return $lang['EMAIL_INVALID_1'];
                } 
            }
        }
В языковые файлы добавить:
PHP:
$lang['EMAIL_INVALID'] = 'Sorry, but this e-mail address is invalid. We accept only the following mail services: gmail.com, outlook.com, hotmail.com, yahoo.com';
$lang['EMAIL_INVALID_1'] = 'Sorry, but this e-mail address is invalid.';

PHP:
$lang['EMAIL_INVALID'] = 'Извините, но этот e-mail адрес неверен. Мы принимаем только следующие почтовые сервисы: gmail.com, outlook.com, hotmail.com, yahoo.com';
$lang['EMAIL_INVALID_1'] = 'Извините, но этот e-mail адрес неверен.';

Код не мой, все благодарности Dr_Brown, по моему он автор.
Спасибо, все работает ..
 
Сверху