Aprenda a filtrar e validar dados do formulário antes de inserir no MySQL com PHP

Veja como validar e filtrar dados de um formulário antes de inseri-los no MySQL para evitar SQL Injection e erros.

Como filtrar dados de um formulário antes de inserir no MySQL com PHP?

Ao receber dados de um formulário HTML, é essencial validar e sanitizar as entradas para evitar erros e ataques como SQL Injection e XSS. Podemos utilizar funções nativas do PHP para garantir a integridade e segurança dos dados.

Criando um Formulário HTML Seguro

<form action="processa.php" method="post">
    <label>Nome:</label>
    <input type="text" name="nome" required>
    <label>Email:</label>
    <input type="email" name="email" required>
    <button type="submit">Enviar</button>
</form>

Filtrando e Validando Dados no PHP Antes de Inserir no MySQL

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING);
    $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

    if ($email === false) {
        die("E-mail inválido!");
    }

    $conexao = new PDO("mysql:host=localhost;dbname=meu_banco", "usuario", "senha");
    $sql = "INSERT INTO usuarios (nome, email) VALUES (:nome, :email)";
    $stmt = $conexao->prepare($sql);
    $stmt->bindParam(':nome', $nome);
    $stmt->bindParam(':email', $email);
    $stmt->execute();

    echo "Dados inseridos com sucesso!";
}
?>

Explicação do Código

  • filter_input() sanitiza os dados antes do processamento.
  • FILTER_SANITIZE_STRING remove caracteres especiais para evitar XSS.
  • FILTER_VALIDATE_EMAIL garante que o e-mail seja válido.
  • PDO::prepare() evita SQL Injection.

Filtrar e validar dados de formulários é uma prática essencial em qualquer aplicação web. A falta desse cuidado pode resultar em falhas de segurança, como SQL Injection e XSS, comprometendo a integridade dos dados e a privacidade dos usuários. Além de validar campos obrigatórios, é importante normalizar formatos e tratar corretamente os inputs do usuário.

Algumas aplicações:

  • Evitar ataques de SQL Injection e XSS
  • Garantir que apenas dados válidos sejam armazenados
  • Evitar erros de formatação no banco de dados
  • Melhorar a experiência do usuário ao prevenir entradas inválidas

Dicas para quem está começando

  • Use filter_input() para sanitizar os dados antes de inseri-los no banco.
  • Valide campos obrigatórios antes de processar os dados.
  • Evite inserir valores diretamente nas queries SQL, prefira prepared statements.
  • Se necessário, utilize expressões regulares para validar formatos específicos.
  • Teste com diferentes tipos de inputs para garantir que a sanitização funciona corretamente.

Contribuições de Daniel Moreira

Compartilhe este tutorial: Como filtrar dados de um formulário antes de inserir no MySQL com PHP?

Compartilhe este tutorial

Continue aprendendo:

Como fazer buscas com LIKE no MySQL e exibir os resultados no PHP?

Veja como realizar buscas com LIKE no MySQL e exibir os resultados em uma página PHP.

Tutorial anterior

Como lidar com múltiplas conexões ao MySQL no PHP?

Veja como gerenciar múltiplas conexões ao banco MySQL no PHP utilizando MySQLi e PDO de maneira eficiente.

Próximo tutorial