Como utilizar sanitize_user() no WordPress (PHP)2 min leitura

Explicação de como utilizar a função sanitize_user() do WordPress e um exemplo prático de código PHP para verificar se um nome de usuário fornecido é válido.

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.

Similar Posts

Você tem algo construtivo sobre este texto para dizer? Então comente abaixo