Formulário no PHP

Capa Curso PHP
Tempo de leitura: 4 minutos

Formulário no PHP: Formulários são elementos essenciais em qualquer aplicação web, permitindo que os usuários interajam com o sistema, enviando dados para o servidor. Em PHP, os formulários são criados utilizando HTML e processados no lado do servidor. Através deles, é possível coletar informações do usuário, como nome, email, senha, entre outros, para realizar diversas ações, desde simples validações até a inserção de dados em um banco de dados.

Neste artigo, veremos em detalhes como criar e processar formulários em PHP. Abordaremos desde a estrutura básica de um formulário HTML até a validação e o tratamento seguro dos dados enviados. Além disso, mostraremos exemplos práticos de como utilizar formulários em diferentes cenários, como login, cadastro de usuários e contato.

Criando Formulários HTML

Formulário no PHP: Um formulário HTML é definido pela tag <form>. Dentro dessa tag, são inseridos os elementos de entrada, como campos de texto, botões de rádio, caixas de seleção e botões de envio. Os atributos mais importantes da tag <form> são:

  • action: Define a página que receberá os dados do formulário quando ele for enviado.
  • method: Define o método HTTP utilizado para enviar os dados (GET ou POST).

Exemplo:

HTML

<form action="processa_formulario.php" method="post">
    <label for="nome">Nome:</label>
    <input type="text" id="nome" name="nome" required>
    <button type="submit">Enviar</button>
</form>

Enviando Dados de Formulários

Quando um usuário envia um formulário, os dados são enviados ao servidor através do método HTTP especificado no atributo method do elemento <form>. Os dois métodos mais comuns são:

GET

  • Características: Os dados são enviados na URL do formulário.
  • Limitações: A quantidade de dados que podem ser enviados é limitada pelo tamanho máximo da URL.

Exemplo:

HTML

<form action="processa.php" method="get"> 
    Nome: <input type="text" name="nome"><br> 
    Email: <input type="email" name="email"><br> 
    <input type="submit" value="Enviar"> 
</form>

PHP

echo $_GET['nome'];
echo $_GET['email'];

POST

  • Características: Os dados são enviados no corpo da requisição HTTP.
  • Vantagens: Pode enviar grandes quantidades de dados, mais seguro que GET.

Exemplo:

HTML

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

PHP

echo $_POST['nome'];
echo $_POST['email'];

Validando Dados de Formulários

A validação de dados é essencial para garantir a integridade e segurança da aplicação. Algumas técnicas de validação incluem:

  • Validação do lado do cliente: Utilizar JavaScript para validar os dados antes do envio do formulário.
  • Validação do lado do servidor: Verificar os dados recebidos no servidor utilizando funções PHP como filter_var, preg_match, etc.

Exemplo de validação:

PHP

if (empty($_POST['nome']) || empty($_POST['email'])) {
    echo "Por favor, preencha todos os campos.";
} else {
    // Validar o email
    if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        echo "Email inválido.";
    } else {
        // Processar os dados
        // ...
    }
}

Processando Dados de Formulários

Após receber os dados do formulário, é necessário processá-los. Isso pode envolver diversas ações, como:

Inserindo dados em um banco de dados:

PHP

$nome = $_POST['nome'];
$email = $_POST['email'];

// Conectar ao banco de dados usando PDO
$dsn = 'mysql:host=localhost;dbname=meu_banco';
$usuario = 'usuario';
$senha = 'senha';

try {
    $pdo = new PDO($dsn, $usuario, $senha);
    
    // Lança exceções em caso de erro
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    // Preparar e executar a consulta SQL
    $stmt = $pdo->prepare("
      INSERT INTO usuarios (nome, email) 
      VALUES (:nome, :email)
    ");
    $stmt->bindParam(':nome', $nome);
    $stmt->bindParam(':email', $email);
    $stmt->execute();

    echo "Dados inseridos com sucesso!";
} catch(PDOException $e) {
    echo "Erro: " . $e->getMessage();
}

Enviando e-mails:

PHP

$to = $_POST['email']; 
$subject = 'Exemplo de Envio de Email'; 
$message = 'Mensagem enviada pelo formulário'; 
$headers = 'From: [email protected]'; 

mail($to, $subject, $message, $headers);

Redirecionando para outra página:

PHP

header('Location: obrigado.php');
exit;

Segurança em Formulários

A segurança de formulários é crucial para proteger sua aplicação de ataques maliciosos. Algumas medidas importantes:

  • Validação de dados: Sempre valide os dados recebidos do usuário para evitar erros e ataques.
  • Escaping de dados: Utilize funções como htmlspecialchars() para escapar caracteres especiais e prevenir ataques XSS.
  • Proteção contra CSRF: Utilize tokens CSRF para verificar a origem da requisição.
  • Limitação de tamanho de entrada: Limite o tamanho dos campos de entrada para evitar ataques de DoS.
  • Input sanitization: Filtre e sanitize os dados de entrada para remover caracteres maliciosos.

Exemplo de proteção contra XSS:

PHP

$nome = htmlspecialchars($_POST['nome']);
$email = htmlspecialchars($_POST['email']);

Conclusão

Formulário no PHP: Formulários são uma parte essencial das aplicações web. Ao entender os conceitos básicos e as técnicas de segurança, você poderá criar formulários robustos e seguros. Lembre-se de sempre validar e sanitizar os dados recebidos para proteger sua aplicação de vulnerabilidades.

Toda jornada tem um início, e o início para se tornar um desenvolvedor back-end é dominar as seguintes tecnologias, que você encontra aqui mesmo:

SQL
SQL
Capa Curso PHP
PHP
Laravel
Laravel

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi