Como validar um formulário em PHP?
A validação de formulários é uma etapa essencial para garantir que os dados enviados pelos usuários sejam corretos e seguros. No PHP, podemos validar os dados diretamente no backend, prevenindo erros e ataques como SQL Injection e XSS.
Criando um formulário HTML
Primeiro, criamos um formulário básico para capturar nome e e-mail:
<form method="POST" action="processar.php">
<label for="nome">Nome:</label>
<input type="text" name="nome" id="nome" required>
<label for="email">E-mail:</label>
<input type="email" name="email" id="email" required>
<button type="submit">Enviar</button>
</form>
Esse formulário enviará os dados via POST
para processar.php
.
Validando os dados no PHP
Agora, no arquivo processar.php
, validamos os dados enviados:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nome = trim($_POST["nome"]);
$email = trim($_POST["email"]);
if (empty($nome)) {
echo "O campo Nome é obrigatório!<br>";
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "E-mail inválido!<br>";
} else {
echo "Nome: " . htmlspecialchars($nome) . "<br>Email: " . htmlspecialchars($email);
}
}
?>
Aqui, verificamos se o nome foi preenchido e validamos o formato do e-mail com FILTER_VALIDATE_EMAIL
.
Criando mensagens de erro personalizadas
Podemos armazenar mensagens de erro em um array e exibi-las dinamicamente:
<?php
$erros = [];
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nome = trim($_POST["nome"]);
$email = trim($_POST["email"]);
if (empty($nome)) {
$erros[] = "O campo Nome é obrigatório.";
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$erros[] = "E-mail inválido.";
}
if (empty($erros)) {
echo "Dados válidos!";
} else {
foreach ($erros as $erro) {
echo "<p>$erro</p>";
}
}
}
?>
Esse método melhora a experiência do usuário, exibindo múltiplos erros de uma vez.
Por que validar formulários no PHP é essencial?
A validação de formulários no PHP é um dos passos mais importantes para garantir a segurança e integridade dos dados em um sistema web. O uso de trim()
, empty()
e filter_var()
ajuda a prevenir entradas inválidas, enquanto a exibição de mensagens de erro melhora a usabilidade do formulário. É essencial validar todos os dados no backend, mesmo que haja validação no frontend.
Algumas aplicações:
- Prevenção de erros em cadastros e login
- Proteção contra ataques de injeção SQL
- Validação de dados enviados via formulários de contato
- Sanitização de informações antes de armazená-las no banco de dados
Dicas para quem está começando
- Sempre use
trim()
para remover espaços desnecessários. - Utilize
filter_var()
para validar e-mails, URLs e números. - Não confie apenas na validação do frontend, pois ela pode ser burlada.
- Exiba mensagens de erro de forma clara para o usuário.
- Evite permitir caracteres especiais em campos que não os exigem.
Contribuições de Rafael Nogueira