✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Você deve estar usando funções de filtragem PHP, parte 2

8

No post anterior, falei sobre as razões pelas quais usar funções de filtragem PHP é mais útil do que não.

Resumindo, isso ajuda a fornecer um nível de validação embutido na linguagem para que não tenhamos que reescrever algo. Naturalmente, há ressalvas.

Por exemplo, se você está tendo que validar um valor que é de caracteres não latinos, então você terá que ir sozinho e implementar a validação com talvez uma expressão regular.

Mas se você estiver usando endereços de e-mail, URLs, números, endereços IP e tantas outras coisas, estará em uma boa posição para usar algo que já existe.

De qualquer forma, todos os itens acima ainda são sobre a filtragem de variáveis. Mas e as entradas? Ou seja, aqueles que vêm de $_POSTou $_GET. É possível usar uma estratégia semelhante com uma função diferente e um conjunto de filtros diferente.

Mas se você entender o básico apresentado no último post, então este post não será muito diferente.

Funções de Filtragem PHP, Parte 2: Entradas

A filtragem de entradas é feita pela filter_inputfunção. A definição para esta função específica é:

Obtém uma variável externa específica por nome e, opcionalmente, a filtra

O manual do PHP

E, como mencionado da última vez, isso soa um pouco estranho até você entender o que são os filtros. Felizmente, abordamos isso no post anterior. E embora este post se concentre especificamente POST(e muito brevemente GET).

Mas existem outros filtros. E estes incluem:

  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV

De qualquer forma, como as duas operações mais comuns que costumo ver no WordPress incluem POSTe GET, parece importante incluir essas duas aqui.

Você deve estar usando funções de filtragem PHP, parte 2

Usar essas funções é trivialmente fácil. Suponha que você tenha um valor vindo de algo que o usuário forneceu em um formulário e ele está enviando para o servidor usando uma POSTsolicitação com uma chave como firstname.

O código para verificar isso pode ser algo assim:

  • filter_input(INPUT_POST, 'firstname');

O que é fácil de entender porque simplesmente pega a chave, filtra e retorna um valor. E como ele retorna um valor, podemos configurar uma cláusula de guarda antes de avançar com mais trabalho:

1if (false === filter_input(INPUT_POST, 'firstname')) { 2  return; 3}

Se tudo der certo, podemos seguir em frente fazendo o que for necessário com as informações do usuário. Talvez precisemos associá-lo ao post atual por qualquer motivo:

1if (false === filter_input(INPUT_POST, 'firstname')) { 2  return; 3} 4  5$firstname = filter_input(INPUT_POST, 'firstname'); 6update_post_meta(get_the_ID(), 'acme-firstname', $firstname); 7  8// Other code you may use...

Além disso, você pode proteger ainda mais as informações com o uso dos diversos filtros existentes. Estes são passados ​​como um terceiro parâmetro para a filter_inputfunção.

E sobre o quê GET?

O bom dessa função é que, de um modo geral, as mesmas regras são válidas como POSTexcept em vez de usar INPUT_POST, você usará INPUT_GET.

E então você pode trabalhar com seu código da maneira que melhor se adequar às necessidades do seu projeto.

Segurança, Nonces, etc.

Lembre-se, isso não é algo para ser usado no lugar da segurança. Isso é puramente para fins de segurança de dados antes de fazer qualquer coisa com eles.

Não substitua a verificação de valores nonce apenas porque você está verificando os dados de forma diferente.

Variáveis ​​e Entradas

Lembre-se, embora essas funções sejam variáveis ​​muito semelhantes e as entradas sejam diferentes. Em outras palavras, não tente usar filter_varquando estiver trabalhando com entradas provenientes do usuário ou do navegador. Use-o sempre que estiver trabalhando com variáveis. E, da mesma forma, use ht e

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação