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

Started by Kryl on 2024-01-20 17:41 — 9 replies, 2642 views

#1
Всем привет,
как релизовать запрет регистрации с почты @gmail.com ?
Или еще лучше, самому добавлять почтовые сервисы с которых можно регистрироваться .
#2
Извиняюсь ))) Такой функционал уже есть ..
Вот как запретить иероглифы , бывает регистрируются, к ним в профиль не зайти, приходится через базу удалять ..
#3
А какая именно проблема возникает? Можете продемонстрировать?
Запрет просто не решает проблему, а лишь ограничивает людей. К тому же ящики с иероглифами, да хоть с спец символами - не запрещены спецификацией.
#4
ДА боты видно какие то с почтой gmail регуюся, капча видно не помогает ...
#5
Поставил в свое время проверку на количество точек, уменьшились реги ботов в разы.
Напомните, какой файл отвечает за проверку, посмотрю код.
#6
Поставил в свое время проверку на количество точек, уменьшились реги ботов в разы.
Напомните, какой файл отвечает за проверку, посмотрю код.
functions_validate.php
#7
У меня такого файла нет (v2.3.0), есть \src\Legacy\Validate.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'];
                }  
            }
        }
В языковые файлы добавить:
$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.';

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

Код не мой, все благодарности Dr_Brown, по моему он автор.
#8
Да я на старой версии сижу еще ))) Все равно спасибо !!!
#9
У меня такого файла нет (v2.3.0), есть \src\Legacy\Validate.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'];
                } 
            }
        }
В языковые файлы добавить:
$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.';

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

Код не мой, все благодарности Dr_Brown, по моему он автор.
Спасибо, все работает ..
#10
function validate_email ($email, $check_ban_and_taken = true)
Первая строка. : )