WordPress как на ладони
wordpress jino

validate_username() WP 2.0.1

Проверяет правильность написания имени пользователя (username - логина).

Если в имени пользователя будут использованы недопустимые символы, то функция выведет ошибку — проверка не пройдена.

Допустимые символы это: алфавит (англ.), цифры и символы: _- пробел . *. Все остальное будет удалено.

Работает на основе: sanitize_user()
Хуки из функции:
Возвращает

true, если имя соответствует нормам, иначе false.

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

if( ! validate_username( $username ) ){
	// неправильный логин
}
$username(строка) (обязательный)
Имя пользователя (логин) для проверки.
По умолчанию: нет

Примеры

#1. Проверим логин вновь создаваемого пользователя и его существование в Базе Данных.

Если имя прошло проверку и такого пользователя еще нет в БД, то зарегистрируем пользователя:

<?php
	$username = $_POST['username'];
	$error = false;
	if( !validate_username( $username ) )
		$error = "В имени пользователя использованы недопустимые символы!";
	if ( !$error && username_exists( $username ) )
		$error = "Такое имя пользователя уже используется!";

	if( !$error ){
		// можно регистрировать
	}
?>

Код validate username: wp-includes/user.php WP 4.9

<?php
function validate_username( $username ) {
	$sanitized = sanitize_user( $username, true );
	$valid = ( $sanitized == $username && ! empty( $sanitized ) );

	/**
	 * Filters whether the provided username is valid or not.
	 *
	 * @since 2.0.1
	 *
	 * @param bool   $valid    Whether given username is valid.
	 * @param string $username Username to check.
	 */
	return apply_filters( 'validate_username', $valid, $username );
}

Cвязанные функции

Из раздела: Остальное

validate_username 2 комментария
  • GreenDly @

    "Если в имени пользователя будут использованы недопустимые (нестандартные) символы (теги например), то функция выведет ошибку — проверка не пройдена."
    Неплохо бы указать какие символы функции нестандартные.
    ps. во время набора сообщения несколько раз вылез алерт "не все обязательные поля заполнены" cool hi

    Ответить2.5 года назад #

Здравствуйте, !

Ваш комментарий