Seja muito bem-vindo à Academy Code Christ!
🌍 Academy Code Christ está disponível em vários idiomas.Fique à vontade para usar o tradutor na Barra lateral (Sidebar) e aprender no seu idioma.
PHP 🐘 Etapa 08
Manipulação de Formulários
🎯 O Que São Formulários HTML
Antes de o PHP processar algo, precisamos de uma forma de coletar
dados.
Para isso, usamos formulários HTML.
Um formulário é um conjunto de campos preenchidos pelo usuário, como:
<form method="POST" action="processa.php">
Nome: <input type="text" name="nome"><br>
Email: <input type="email" name="email"><br>
<input type="submit" value="Enviar">
</form>
Esse código cria um pequeno formulário com dois campos.
Quando o usuário clica em “Enviar”, o navegador envia os dados para o arquivo especificado no atributo action (no caso, processa.php).
O atributo method
define como os dados serão enviados:
● GET → os dados vão pela URL (visíveis);
● POST → os dados vão ocultos, dentro da requisição (mais seguro).
Recebendo Dados no PHP
Agora, no arquivo processa.php, coletamos e tratamos as informações enviadas:
<?php
$nome = $_POST["nome"];
$email = $_POST["email"];
echo "Olá, $nome!<br>";
echo "Seu e-mail é: $email";
?>
Ao enviar o formulário, a página exibirá:
Olá, Marcos!
Seu e-mail é: [email protected]
O PHP guarda as informações enviadas nos arrays superglobais:
● $_GET — para formulários com método GET;
● $_POST — para formulários com método POST;
● $_REQUEST — aceita ambos (GET e POST).
Diferença Entre GET e POST
GET
<form method="GET" action="processa.php">
Os dados são enviados na URL:
processa.php?nome=João&[email protected]
Usado para pesquisas, filtros ou navegação leve.
🚫 Não recomendado para senhas ou dados sensíveis.
POST
<form method="POST" action="processa.php">
Os dados ficam ocultos, ideais para cadastros, logins e formulários mais longos.
Validando Entradas de Usuário
É essencial validar as informações que chegam antes de
usá-las.
Sem validação, qualquer pessoa pode
enviar dados incorretos — ou pior, maliciosos.
Exemplo:
<?php
if (empty($_POST["nome"]) || empty($_POST["email"])) {
echo "Por favor, preencha todos os campos!";
} else {
echo "Dados recebidos com sucesso!";
}
?>
Isso evita que campos vazios causem erros ou prejudiquem o sistema.
Você também pode validar formatos:
if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
echo "Email inválido!";
}
O PHP oferece dezenas de filtros prontos para validações seguras.
Exemplo Prático — Formulário Completo de Contato
Crie um formulário HTML básico:
<form method="POST" action="contato.php">
Nome: <input type="text" name="nome"><br><br>
Email: <input type="email" name="email"><br><br>
Mensagem:<br>
<textarea name="mensagem" rows="4" cols="50"></textarea><br><br>
<input type="submit" value="Enviar">
</form>
E o arquivo contato.php:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nome = trim($_POST["nome"]);
$email = trim($_POST["email"]);
$mensagem = trim($_POST["mensagem"]);
if (empty($nome) || empty($email) || empty($mensagem)) {
echo "Por favor, preencha todos os campos!";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Email inválido!";
} else {
echo "<h3>Mensagem Recebida!</h3>";
echo "Nome: $nome<br>";
echo "Email: $email<br>";
echo "Mensagem: $mensagem";
}
}
?>
Esse exemplo verifica:
● Se o método usado é POST;
● Se os campos estão preenchidos;
● Se o e-mail é válido. E depois exibe os resultados de forma amigável.
Exibindo Erros e Mantendo Dados Preenchidos
É muito frustrante preencher um formulário, errar um campo e
perder tudo.
Com o PHP, é fácil manter o que o
usuário digitou:
<form method="POST">
Nome: <input type="text" name="nome" value="<?php if (!empty($_POST['nome'])) echo $_POST['nome']; ?>"><br>
Email: <input type="email" name="email" value="<?php if (!empty($_POST['email'])) echo $_POST['email']; ?>"><br>
<input type="submit" value="Enviar">
</form>
Aqui o PHP insere novamente os dados digitados, caso haja erro na validação.
Trabalhando com Vários Campos (Checkbox, Radio, Select)
Formulários reais têm campos variados.
Veja como capturar esses diferentes
tipos:
Checkbox (múltiplas escolhas):
<form method="POST">
<label><input type="checkbox" name="interesse[]" value="PHP"> PHP</label><br>
<label><input type="checkbox" name="interesse[]" value="HTML"> HTML</label><br>
<label><input type="checkbox" name="interesse[]" value="CSS"> CSS</label><br>
<input type="submit" value="Enviar">
</form>
Processamento:
<?php
if (!empty($_POST["interesse"])) {
foreach ($_POST["interesse"] as $valor) {
echo "Você escolheu: $valor <br>";
}
} else {
echo "Nenhuma opção selecionada.";
}
?>
Cada checkbox selecionado é enviado dentro de um array, permitindo manipular todos os valores facilmente.
Radio (uma escolha apenas):
<input type="radio" name="genero" value="Masculino"> Masculino
<input type="radio" name="genero" value="Feminino"> Feminino
No PHP:
$genero = $_POST["genero"];
Select (lista de opções):
<select name="cidade">
<option value="sp">São Paulo</option>
<option value="rj">Rio de Janeiro</option>
<option value="mg">Minas Gerais</option>
</select>
No PHP:
$cidade = $_POST["cidade"];
Enviando e Processando Dados de Login
Simulemos um pequeno sistema de login:
login.html
<form method="POST" action="login.php">
Usuário: <input type="text" name="usuario"><br><br>
Senha: <input type="password" name="senha"><br><br>
<input type="submit" value="Entrar">
</form>
login.php
<?php
$usuario = $_POST["usuario"];
$senha = $_POST["senha"];
if ($usuario == "admin" && $senha == "1234") {
echo "Login realizado com sucesso.";
} else {
echo "Usuário ou senha incorretos.";
}
?>
Embora simples, esse exemplo mostra a base do sistema de
autenticação.
Em projetos reais, as senhas são criptografadas
e validadas com banco de dados (veremos em etapas seguintes).
Formularização e Funções
O ideal é manter o código limpo:
as funções processam as entradas
enquanto o HTML exibe os resultados.
Exemplo:
function validarCampos($dados) {
if (empty($dados["nome"]) || empty($dados["email"])) {
return "Por favor, preencha todos os dados.";
}
if (!filter_var($dados["email"], FILTER_VALIDATE_EMAIL)) {
return "Email inválido.";
}
return true;
}
if ($_POST) {
$resultado = validarCampos($_POST);
if ($resultado === true) {
echo "Tudo certo! Dados prontos para envio.";
} else {
echo $resultado;
}
}
Segurança Básica no Processamento de Formulários
Ao receber dados externos, nunca confie cegamente no
que chega.
Usuários (ou robôs) podem tentar enviar
códigos maliciosos.
Recomendações:
1.
2. Limitar tamanho dos campos com strlen().
3. Validar tipo de dado, não apenas se está preenchido.
4. Filtrar tudo antes de salvar em bancos de dados (veremos depois).
Essas práticas protegem contra ataques como XSS e injeção de código.
Upload de Arquivos com Formulário
Sim, o PHP também permite receber arquivos.
HTML:
<form method="POST" enctype="multipart/form-data">
Selecione o arquivo: <input type="file" name="arquivo"><br><br>
<input type="submit" value="Enviar">
</form>
PHP:
if (isset($_FILES["arquivo"])) {
$nome = $_FILES["arquivo"]["name"];
$temporario = $_FILES["arquivo"]["tmp_name"];
$destino = "uploads/" . $nome;
if (move_uploaded_file($temporario, $destino)) {
echo "Arquivo enviado com sucesso!";
} else {
echo "Erro ao enviar arquivo.";
}
}
⚠️ Certifique-se de criar a pasta uploads/ com permissão
de gravação.
Esse recurso é amplamente usado em
cadastros de imagens, PDFs, etc.
Sistema Completo — Cadastro com Processamento PHP
Criaremos um exemplo combinando tudo:
index.html
<form method="POST" action="cadastro.php">
Nome: <input type="text" name="nome"><br>
Email: <input type="email" name="email"><br>
Idade: <input type="number" name="idade"><br>
<input type="submit" value="Cadastrar">
</form>
cadastro.php
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$nome = trim($_POST["nome"]);
$email = trim($_POST["email"]);
$idade = (int) $_POST["idade"];
if (empty($nome) || empty($email) || empty($idade)) {
echo "Todos os campos são obrigatórios.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Email inválido.";
} else {
echo "<h3>Cadastro Realizado!</h3>";
echo "Nome: " . htmlspecialchars($nome) . "<br>";
echo "Email: " . htmlspecialchars($email) . "<br>";
echo "Idade: $idade anos";
}
}
?>
Esse tipo de estrutura é a espinha dorsal de sistemas de cadastro e consulta online.
Modularizando o Processamento de Formulários
A boa prática é separar:
● O formulário HTML;
● A lógica de validação (em funções);
● O layout de resposta.
Por exemplo:
● form.html → Formulário;
● valida.php → Funções de validação;
● resultado.php → Exibição de dados.
Essas divisões tornam os códigos limpos e reutilizáveis.
Dica de Profissional — Usando Sessões para Lembrar Dados
Em formulários longos, podemos usar sessões para salvar
progresso.
Isso é feito com:
session_start();
$_SESSION["nome"] = $_POST["nome"];
Depois, em qualquer página:
echo $_SESSION["nome"];
Sessões são fundamentais para lembrar usuários logados, carrinhos de compras e dados temporários — tema que será aprofundado nas próximas etapa.
Conclusão
Nesta etapa, você viu como o PHP interage com o usuário
de forma dinâmica.
Aprendeu:
● Como criar e processar formulários HTML;
● Diferença entre GET e POST;
● Como validar entradas e exibir mensagens amigáveis;
● Como trabalhar com campos múltiplos, rádios, selects e uploads;
● A importância da segurança ao receber dados;
● E como modularizar o processo, mantendo o sistema limpo e profissional.
A manipulação de formulários é a porta de entrada para sistemas reais — todos os próximos recursos que aprenderemos se baseiam nessa comunicação entre usuário e servidor.
👣 Próximo passo:
Sessões, Cookies
e Autenticação de Usuários, você aprenderá a controlar o estado do
usuário entre páginas, criar sistemas de login persistente, e
entenderá como funcionam os mecanismos que mantêm alguém conectado em um site.

%20-%20Copia.png)
.png)
.png)
.png)
Postar um comentário