Como utilizar sanitize_email() e is_email() no WordPress (PHP)3 min leitura

Aprenda como funcionam as funções PHP sanitize_email() e is_email() do WordPress e qual a diferença entre elas.

Com a função PHP sanitize_email() você remove todos os caracteres inválidos de um e-mail. Veja abaixo alguns exemplos:

<?php $email = "[email protected]!"; $email_corrigido = sanitize_email( $email ); // Valor de $email_corrigido será: [email protected] $email = " [email protected] "; $email_corrigido = sanitize_email( $email ); // Valor de $email_corrigido será: [email protected] (sem espaços) $email = "[email protected]"; $email_corrigido = sanitize_email( $email ); // Valor de $email_corrigido será: (vazio) $email = "nomedominio.com.br"; $email_corrigido = sanitize_email( $email ); // Valor de $email_corrigido será: (vazio)
Code language: PHP (php)

Já a função PHP is_email() faz uma verificação básica se o conteúdo é um e-mail ou não, retornando o e-mail caso for verdadeiro e false caso não for um e-mail. É importante salientar que não é verificado se o endereço de e-mail existe ou não, somente se o formato dos caracteres na string fornecida segue o formato básico de e-mail.

Qual a diferença entre sanitize_email() e is_email()?

Veja abaixo alguns exemplos comparando o retorno de cada uma das funções para alguns diferentes valores:

Valor / Retorno da funçãosanitize_email()is_email()
[email protected][email protected][email protected]
[email protected]!!!!io.com.br[email protected]false
[email protected](vazio)false
[email protected](vazio)false
acentuaçã[email protected][email protected]false

A principal diferença entre as duas funções é que a is_email() sempre irá retornar false se o e-mail possuir qualquer caractere inválido (incluindo espaços) sem fazer qualquer alteração nele, enquanto a função sanitize_email() irá retornar uma string sem os caracteres inválidos ou vaziosempre caso o e-mail tenha um formato inválido.

Se você for salvar o e-mail em um banco de dados, como boa prática de segurança, recomendo utilizar as duas funções. Veja abaixo um exemplo onde o e-mail é recebido na variável $email:

<?php $email = "[email protected]"; // Primeiro verifica se o e-mail é válido if ( is_email( $email ) ) { // Depois garante que não há nenhum caractere inválido no e-mail $email_corrigido = sanitize_email( $email ); if ( !empty( $email_corrigido ) ) { // Adicione aqui um código que faz algo com // o e-mail utilizando a varíavel $email_corrigido } else { _e( 'O e-mail fornecido é inválido.', 'danielkossmann' ); } } else { _e( 'O e-mail fornecido é inválido.', 'danielkossmann' ); }
Code language: PHP (php)

Se não for crítico que o e-mail seja válido (como em um formulário de contato com um campo obrigatório de número de telefone), apenas a utilização da função sanitize_email() é o suficiente para garantir a segurança do código.

Se você quiser saber mais sobre quais caracteres são permitidos ou não em endereços de e-mail, recomendo o artigo da Wikipedia sobre endereços de e-mail.

Similar Posts

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