Com a função sanitize_user() você remove todos os caracteres inválidos de um nome de usuário do WordPress. Ela possui dois parâmetros:

  1. $username: nome do usuário, utilizado na hora de fazer o login – obrigatório;
  2. $strict: Valor booleano para modo estrito, que permite apenas os caracteres: alfanuméricos, _, espaço, ., - e @ – Opcional, com false como valor padrão.

Veja abaixo três exemplos de como utilizá-la:

<?php
$nome_usuario = "     Daniel      Kossmann    ";
$nome_usuario_corrigido = sanitize_user( $nome_usuario );
// O valor de $nome_usuario_corrigido será "Daniel Kossmann" (sem aspas)

$nome_usuario = "Usuário / Acentuação 2021!?&%*";
$nome_usuario_corrigido = sanitize_user( $nome_usuario );
// O valor de $nome_usuario_corrigido será "Usuario / Acentuacao 2021!?&%*" (sem aspas)

// Modo estrito
$nome_usuario = "Usuário / Acentuação 2021!?";
$nome_usuario_corrigido = sanitize_user( $nome_usuario, true );
// O valor de $nome_usuario_corrigido será "Usuario Acentuacao 2021" (sem aspas)
Code language: PHP (php)

Como verificar se um nome de usuário do WordPress é válido

Um possível uso da função PHP sanitize_user() é verificar se o nome de usuário digitado é válido. Para isso, vamos comparar o que o usuário digitou com a saída da função. Veja abaixo como ficou o código:

<?php
// Verifica se foi enviado algum dado por POST
if ( isset( $_POST ) && !empty( $_POST['usuario'] ) ) {

	// Trata o valor enviado pelo formulário
	$nome_usuario_corrigido = sanitize_user( $_POST['usuario'] );	

	// Verifica se o valor digitado é o mesmo do que o retornado pela função
	if ( strcmp( $_POST['usuario'], $nome_usuario_corrigido ) === 0 ) {
		// Exibe as informações de forma que o conteúdo seja traduzível
		_e( 'O nome de usuário fornecido é válido.', 'danielkossmann' );
	} else {
		// Exibe as informações de forma que o conteúdo seja traduzível
		_e( 'O nome de usuário fornecido possui caracteres inválidos.', 'danielkossmann' );
	}
}
?>
<form method="post">
	<input type="text" name="usuario" placeholder="<?php _e( 'Digite o nome de usuário', 'danielkossmann' ); ?>">
	<input type="submit" value="<?php _e( 'Validar', 'danielkossmann' ); ?>">
</form>
Code language: PHP (php)

O código acima também utiliza a função PHP strcmp() para comparar duas strings, retornando 0 quando elas são iguais.



Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *