is_email_address_unsafe()

Проверяет адрес электронной почты на наличие в списке запрещенных доменов
Функция WordPress
INT MU (3.0.0)
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Проверка наличия запрещенного домена в адресе электронной почты
  4. Определение безопасности адреса электронной почты
  5. Проверка адреса электронной почты на наличие запрещенных символов
  6. Определение допустимости адреса электронной почты
  7. Проверка адреса электронной почты на наличие запрещенных доменов
  8. Вопросы и ответы
  9. Как проверить, является ли email-адрес запрещенным?
  10. Как добавить новый запрещенный домен в список?
  11. Как удалить домен из списка запрещенных?
  12. Как получить список всех запрещенных доменов?
  13. Как изменить сообщение об ошибке при запрещенном email-адресе?
  14. Как использовать функцию is_email_address_unsafe() в своем коде?
  15. Как проверить email-адрес на безопасность без использования is_email_address_unsafe()?
  16. Как обрабатывать исключения, связанные с функцией is_email_address_unsafe()?
  17. Как добавить пользовательскую логику при обнаружении запрещенного email-адреса?
  18. Связанные элементы

Описание функции

Функция is_email_address_unsafe() проверяет, является ли указанный адрес электронной почты небезопасным путем сравнения его с списком запрещенных доменов.

Использование

is_email_address_unsafe( string $user_email ): bool

Функция принимает один обязательный параметр — строку $user_email, которая представляет собой адрес электронной почты, указанный пользователем при регистрации.

  • $user_email (string) — Адрес электронной почты, указанный пользователем при регистрации.

Функция возвращает булево значение. Возвращает true, если адрес электронной почты запрещен, и false в противном случае.

<?php
/**
 * Проверяет, является ли указанный адрес электронной почты небезопасным.
 *
 * @param string $user_email Адрес электронной почты, указанный пользователем при регистрации.
 * @return bool Возвращает true, если адрес электронной почты запрещен, и false в противном случае.
 */
function is_email_address_unsafe( $user_email ) {
    // Получить список запрещенных доменов
    $banned_domains = get_banned_email_domains();
    // Разбить адрес электронной почты на имя пользователя и домен
    list( $username, $domain ) = explode( '@', $user_email );
    // Проверить, содержит ли список запрещенных доменов указанный домен
    if ( in_array( $domain, $banned_domains ) ) {
        return true;
    }
    return false;
}
?>

В этом примере функция is_email_address_unsafe() принимает адрес электронной почты, указанный пользователем при регистрации, и проверяет, является ли он небезопасным. Сначала функция получает список запрещенных доменов с помощью функции get_banned_email_domains(). Затем она разбивает адрес электронной почты на имя пользователя и домен, используя функцию explode(). Далее функция проверяет, содержит ли список запрещенных доменов указанный домен с помощью функции in_array(). Если домен найден в списке запрещенных доменов, функция возвращает true, в противном случае — false.

Примеры использования

Проверка наличия запрещенного домена в адресе электронной почты


/**
 * Проверяет, содержит ли адрес электронной почты запрещенный домен.
 *
 * @param string $user_email Обязательный. Адрес электронной почты, предоставленный пользователем при регистрации.
 * @return bool Возвращает true, если адрес электронной почты содержит запрещенный домен, иначе false.
 */
function is_email_address_unsafe( $user_email ) {
    // Получаем список запрещенных доменов из базы данных.
    $banned_domains = get_banned_domains();
    // Проверяем, содержит ли адрес электронной почты запрещенный домен.
    foreach ( $banned_domains as $domain ) {
        if ( strpos( $user_email, $domain ) !== false ) {
            return true;
        }
    }
    return false;
}

Определение безопасности адреса электронной почты


/**
 * Проверяет, является ли адрес электронной почты безопасным.
 *
 * @param string $user_email Обязательный. Адрес электронной почты, предоставленный пользователем при регистрации.
 * @return bool Возвращает true, если адрес электронной почты безопасен, иначе false.
 */
function is_email_address_safe( $user_email ) {
    // Проверяем, содержит ли адрес электронной почты запрещенные символы.
    if ( preg_match( '/['^£$%&*()}{@#~?><>,|=+¬]/', $user_email ) ) {
        return false;
    }
    // Проверяем, является ли адрес электронной почты допустимым.
    if ( ! is_email( $user_email ) ) {
        return false;
    }
    // Проверяем, содержит ли адрес электронной почты запрещенный домен.
    if ( is_email_address_unsafe( $user_email ) ) {
        return false;
    }
    return true;
}

Проверка адреса электронной почты на наличие запрещенных символов


/**
 * Проверяет, содержит ли адрес электронной почты запрещенные символы.
 *
 * @param string $user_email Обязательный. Адрес электронной почты, предоставленный пользователем при регистрации.
 * @return bool Возвращает true, если адрес электронной почты содержит запрещенные символы, иначе false.
 */
function has_forbidden_characters( $user_email ) {
    // Проверяем, содержит ли адрес электронной почты запрещенные символы.
    if ( preg_match( '/['^£$%&*()}{@#~?><>,|=+¬]/', $user_email ) ) {
        return true;
    }
    return false;
}

Определение допустимости адреса электронной почты


/**
 * Проверяет, является ли адрес электронной почты допустимым.
 *
 * @param string $user_email Обязательный. Адрес электронной почты, предоставленный пользователем при регистрации.
 * @return bool Возвращает true, если адрес электронной почты допустим, иначе false.
 */
function is_email_valid( $user_email ) {
    // Проверяем, является ли адрес электронной почты допустимым.
    if ( ! is_email( $user_email ) ) {
        return false;
    }
    return true;
}

Проверка адреса электронной почты на наличие запрещенных доменов


/**
 * Проверяет, содержит ли адрес электронной почты запрещенные домены.
 *
 * @param string $user_email Обязательный. Адрес электронной почты, предоставленный пользователем при регистрации.
 * @return bool Возвращает true, если адрес электронной почты содержит запрещенные домены, иначе false.
 */
function has_forbidden_domains( $user_email ) {
    // Получаем список запрещенных доменов из базы данных.
    $banned_domains = get_banned_domains();
    // Проверяем, содержит ли адрес электронной почты запрещенный домен.
    foreach ( $banned_domains as $domain ) {
        if ( strpos( $user_email, $domain ) !== false ) {
            return true;
        }
    }
    return false;
}

Вопросы и ответы

Как проверить, является ли email-адрес запрещенным?

Для проверки, является ли email-адрес запрещенным, можно использовать функцию is_email_address_unsafe(). Она принимает один обязательный параметр — строку с email-адресом пользователя, который был указан при регистрации.

Пример использования:

$user_email = 'test@example.com';
if (is_email_address_unsafe($user_email)) {
    echo 'Email address is banned.';
} else {
    echo 'Email address is not banned.';
}

Как добавить новый запрещенный домен в список?

Для добавления нового запрещенного домена в список можно использовать фильтр banned_email_domains. Этот фильтр позволяет добавить новый домен в массив запрещенных доменов.

Пример использования:

function add_banned_email_domain($domains) {
    $new_domain = 'example.com';
    $domains[] = $new_domain;
    return $domains;
}
add_filter('banned_email_domains', 'add_banned_email_domain');

Как удалить домен из списка запрещенных?

Для удаления домена из списка запрещенных можно использовать фильтр banned_email_domains. Этот фильтр позволяет изменить массив запрещенных доменов, включая его удаление.

Пример использования:

function remove_banned_email_domain($domains) {
    $domain_to_remove = 'example.com';
    $key = array_search($domain_to_remove, $domains);
    if ($key !== false) {
        unset($domains[$key]);
    }
    return $domains;
}
add_filter('banned_email_domains', 'remove_banned_email_domain');

Как получить список всех запрещенных доменов?

Для получения списка всех запрещенных доменов в WordPress можно использовать функцию get_banned_email_domains(). Она возвращает массив со всеми запрещенными доменами.


$banned_domains = get_banned_email_domains();

Как изменить сообщение об ошибке при запрещенном email-адресе?

Чтобы изменить сообщение об ошибке при запрещенном email-адресе, можно использовать фильтр is_email_address_unsafe_message. Этот фильтр позволяет заменить стандартное сообщение на свое собственное.


add_filter( 'is_email_address_unsafe_message', 'my_custom_email_error_message' );
function my_custom_email_error_message() {
    return 'Ваш email-адрес запрещен!';
}

Как использовать функцию is_email_address_unsafe() в своем коде?

Функция is_email_address_unsafe() используется для проверки email-адреса на наличие в списке запрещенных доменов. Она принимает один обязательный параметр — строку с email-адресом пользователя.

Функция возвращает true, если email-адрес запрещен, и false в противном случае.


$user_email = 'test@example.com';
if ( is_email_address_unsafe( $user_email ) ) {
    echo 'Email-адрес запрещен!';
} else {
    echo 'Email-адрес разрешен.';
}

Как проверить email-адрес на безопасность без использования is_email_address_unsafe()?

Для проверки email-адреса на безопасность без использования функции is_email_address_unsafe() можно воспользоваться следующим кодом:


/**
 * Проверяет, является ли email-адрес безопасным.
 *
 * @param string $user_email The email provided by the user at registration.
 * @return bool True when the email address is safe, false otherwise.
 */
function is_email_address_safe( $user_email ) {
    // Проверяем, что email-адрес не содержит запрещенных доменов.
    $banned_domains = array( 'example.com', 'test.com' );
    $email_domain = strtolower( substr( strrchr( $user_email, '@' ), 1 ) );
    
    if ( in_array( $email_domain, $banned_domains ) ) {
        return false;
    }
    
    return true;
}

В данном примере мы создали функцию is_email_address_safe(), которая принимает email-адрес пользователя в качестве параметра. Затем мы сравниваем домен email-адреса с массивом запрещенных доменов. Если домен email-адреса присутствует в массиве запрещенных доменов, функция возвращает значение false, в противном случае — true.

Как обрабатывать исключения, связанные с функцией is_email_address_unsafe()?

Для обработки исключений, связанных с функцией is_email_address_unsafe(), можно использовать следующий код:


try {
    $is_unsafe = is_email_address_unsafe( $user_email );
    
    if ( $is_unsafe ) {
        // Обнаружен запрещенный email-адрес.
        // Выполняем необходимые действия.
    } else {
        // Email-адрес безопасен.
        // Выполняем необходимые действия.
    }
} catch ( Exception $e ) {
    // Обработка исключения.
    // Выводим сообщение об ошибке или выполняем другие действия.
}

В данном примере мы используем конструкцию try-catch для обработки исключений, которые могут возникнуть при вызове функции is_email_address_unsafe(). Если функция возвращает значение true, то выполняются действия для обнаружения запрещенного email-адреса. Если функция возвращает значение false или возникает исключение, выполняются соответствующие действия.

Как добавить пользовательскую логику при обнаружении запрещенного email-адреса?

Для добавления пользовательской логики при обнаружении запрещенного email-адреса можно использовать следующий код:


add_action( 'is_email_address_unsafe', 'custom_email_address_unsafe_action' );
function custom_email_address_unsafe_action( $user_email ) {
    // Выполняем пользовательскую логику при обнаружении запрещенного email-адреса.
    // Например, отправляем уведомление администратору или блокируем регистрацию пользователя.
}

В данном примере мы используем хук is_email_address_unsafe для добавления пользовательской логики при обнаружении запрещенного email-адреса. В функции custom_email_address_unsafe_action() можно выполнять любые необходимые действия, например, отправлять уведомление администратору или блокировать регистрацию пользователя.

Функция is_email_address_unsafe() позволяет проверить email-адрес на наличие в списке запрещенных доменов. При необходимости, можно использовать альтернативные методы проверки безопасности email-адреса, например, с помощью пользовательских функций или обработки исключений. Также можно добавить пользовательскую логику при обнаружении запрещенного email-адреса с использованием хуков WordPress.

Связанные элементы

  • Функция sanitize_email(): очищает переданный адрес электронной почты от недопустимых символов и форматирует его в соответствии с правилами.
  • Хук is_email: позволяет изменить результат проверки допустимости адреса электронной почты.
  • Хук is_email_address_unsafe: позволяет изменить результат проверки адреса электронной почты на наличие в списке запрещенных доменов.
  • Хук sanitize_email: позволяет изменить результат очистки и форматирования адреса электронной почты.
  • Класс WP_Error: используется для создания и обработки ошибок в WordPress. Может быть использован для обработки ошибок, связанных с проверкой адреса электронной почты.
Обсуждение