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:
- $username: nome do usuário, utilizado na hora de fazer o login – obrigatório;
- $strict: Valor booleano para modo estrito, que permite apenas os caracteres: alfanuméricos,
_
, espaço,.
,-
e@
– Opcional, comfalse
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.
Deixe um comentário