Formulário de registro PHP usando métodos GET, POST com exemplo

⚡ Resumo Inteligente

O processamento de formulários em PHP captura a entrada do usuário em formulários HTML e a processa no servidor através das superglobais $_POST e $_GET. Este tutorial cria um formulário de cadastro, explica os métodos POST e GET, compara-os e mostra como processar campos, caixas de seleção e campos de pesquisa.

  • 📝 O que os formulários fazem: Um formulário HTML coleta informações do usuário por meio de campos como caixas de texto, caixas de seleção e botões, e as envia para um script no servidor.
  • 📬 Método POST: $_POST envia valores no corpo HTTP, mantenhaping eles para fora do URL, que é adequado para logins e dados sensíveis.
  • 🔗 Método GET: $_GET anexa valores ao URLAssim, os resultados podem ser adicionados aos favoritos, o que é ideal para formulários de pesquisa.
  • ⚖️ POST vs GET: O método POST não possui limite de tamanho prático e suporta diversos tipos de dados; o método GET é mais curto, aceita apenas strings e é visível.
  • Processamento de entrada: A função isset() verifica se um campo foi enviado antes que o script leia e utilize seu valor.
  • ☑️ Caixas de seleção: Uma caixa de seleção envia um valor somente quando marcada, portanto, isset() confirma se o usuário concordou ou selecionou a opção.
  • 🤖 Assistência de IA: As ferramentas de IA podem gerar um formulário validado e seguro, além de ajudar a diagnosticar por que um formulário não está sendo enviado corretamente.

Manipulação de formulários PHP

O que é Formulário?

Ao fazer login em um site ou em sua caixa de entrada de e-mail, você está interagindo com um formulário.

Os formulários são usados ​​para obter informações do usuário e enviá-las ao servidor web para processamento.

O diagrama abaixo ilustra o processo de manipulação de formulários.

Formulário PHP

Um formulário é uma tag HTML que contém elementos de interface gráfica do usuário, como caixas de entrada, caixas de seleção, botões de opção e muito mais.

O formulário é definido usando o … As tags e os itens da interface gráfica são definidos usando elementos de formulário, como o input.

Quando e por que estamos usando formulários?

  • Os formulários são úteis quando se desenvolveping Aplicações flexíveis e dinâmicas que aceitam entrada do usuário.
  • Os formulários podem ser usados ​​para editar dados já existentes no banco de dados.

Crie um formulário

Usaremos tags HTML para criar um formulário. Abaixo está a lista mínima de coisas que você precisa para criar um formulário.

  • Abrindo e fechando tags de formulário …
  • Tipo de envio de formulário POST ou GET
  • Submissão URL que processará os dados enviados
  • Campos de entrada, como caixas de entrada, áreas de texto, botões, caixas de seleção e similares.

O código abaixo cria um formulário de inscrição simples.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST"> First name:

<input type="text" name="firstname"> <br> Last name:

<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
</body>
</html>

A visualização do código acima em um navegador da web exibe o seguinte formulário.

Crie um formulário

AQUI,

  • … são as tags de abertura e fechamento do formulário
  • action=”registration_form.php” method=”POST” especifica o destino URL e o tipo de submissão.
  • Nome/Sobrenome: são rótulos para as caixas de entrada
  • são tags de caixa de entrada
  • é a nova tag de linha
  • é um valor oculto que é usado para verificar se o formulário foi enviado ou não
  • É o botão que, ao ser clicado, envia o formulário para o servidor para processamento.

Enviando os dados do formulário para o servidor

O atributo `action` do formulário especifica o tipo de envio. URL que processa os dados. O atributo `method` especifica o tipo de submissão.

Método PHP POST

  • Esta é a variável de array superglobal integrada do PHP, usada para obter valores enviados pelo método HTTP POST.
  • A variável array pode ser acessada a partir de qualquer script do programa; tem um escopo global.
  • Este método é ideal quando você não deseja exibir os valores enviados pelo formulário no URL.
  • Um bom exemplo de utilização do método POST é o envio de dados de login para o servidor.

Possui a seguinte sintaxe.

<?php
$_POST['variable_name'];
?>

AQUI,

  • “$_POST[…]” é o Array PHP
  • “'variable_name'” é o nome do campo do formulário.

Método PHP GET

  • Esta é a variável de array superglobal integrada do PHP, usada para obter valores enviados pelo método HTTP GET.
  • A variável array pode ser acessada a partir de qualquer script do programa; tem um escopo global.
  • Este método exibe os valores do formulário no URL.
  • É ideal para formulários de mecanismos de busca, pois permite que os usuários salvem os resultados como favoritos.

Possui a seguinte sintaxe.

<?php
$_GET['variable_name'];
?>

AQUI,

  • “$_GET[…]” é o array PHP
  • “'variable_name'” é o URL nome variável.

Métodos GET vs POST

POST ENTRE
Valores não visíveis no URL Valores visíveis no URL
Não possui limitação quanto ao comprimento dos valores, visto que são enviados através do corpo da requisição HTTP. Possui uma limitação no comprimento dos valores, geralmente 255 caracteres. Isso ocorre porque os valores são exibidos no URLObserve que o limite máximo de caracteres depende do navegador.
Apresenta desempenho inferior em comparação ao método GET devido ao tempo gasto encapsulando os valores POST no corpo da requisição HTTP. Apresenta desempenho superior em comparação ao método POST devido à simplicidade de concatenar os valores no URL.
Suporta diversos tipos de dados, como string, numérico, binário e muito mais. Suporta apenas tipos de dados do tipo string, pois os valores são exibidos no URL
Os resultados não podem ser adicionados aos favoritos. Os resultados podem ser adicionados aos favoritos devido à visibilidade dos valores no URL

O diagrama abaixo mostra a diferença entre GET e POST.

Métodos GET vs POST

Métodos GET vs POST

Processamento dos dados do formulário de inscrição

O formulário de registro envia dados para si mesmo conforme especificado no atributo action do formulário.

Quando um formulário é submetido, os valores são inseridos na matriz superglobal $_POST.

Usaremos a função isset do PHP para verificar se os valores do formulário foram preenchidos no array $_POST e processar os dados.

Vamos modificar o formulário de inscrição para incluir o código PHP que processa os dados. Abaixo está o código modificado.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>
<body>

<?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted

<h2>Thank You <?php echo $_POST['firstname']; ?> </h2>

<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>

<p>Go <a href="/registration_form.php">back</a> to the form</p>

<?php else: ?>

<h2>Registration Form</h2>

<form action="registration_form.php" method="POST">

First name:
<input type="text" name="firstname">

<br> Last name:
<input type="text" name="lastname">

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>

<?php endif; ?>
</body>
</html>

AQUI,

  • Verifica se o campo oculto `form_submitted` foi preenchido no array `$_POST[]` e exibe uma mensagem de agradecimento e o primeiro nome. Se o campo `form_submitted` não estiver preenchido no array `$_POST[]`, o formulário é exibido.

Mais exemplos

Buscador simples

Vamos projetar um mecanismo de busca simples que utiliza o método GET do PHP como tipo de envio de formulário.

Para simplificar, usaremos um Instrução if em PHP para determinar a saída.

Usaremos o mesmo código HTML para o formulário de registro acima e faremos modificações mínimas nele.

<html>
<head>
<title>Simple Search Engine</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<?php if (isset($_GET['form_submitted'])): ?>

<h2>Search Results For <?php echo $_GET['search_term']; ?> </h2>
<?php if ($_GET['search_term'] == "GET"): ?>

<p>The GET method displays its values in the URL</p>

<?php else: ?>
<p>Sorry, no matches found for your search term</p>

<?php endif; ?>

<p>Go <a href="/search_engine.php">back</a> to the form</p>

<?php else: ?>

<h2>Simple Search Engine - Type in GET </h2>

<form action="search_engine.php" method="GET">

Search Term:
<input type="text" name="search_term">
<br>

<input type="hidden" name="form_submitted" value="1" />

<input type="submit" value="Submit">

</form>
<?php endif; ?>
</body>
</html>

Visualize a página acima em um navegador da web.

O seguinte formulário será exibido.

Mecanismo de pesquisa simples

Digite GET em letras maiúsculas e clique no botão enviar.

A seguir será exibido.

Mecanismo de pesquisa simples

O diagrama abaixo mostra o URL pelos resultados acima.

Mecanismo de pesquisa simples

Note o URL exibiu os valores de search_term e form_submitted. Tente digitar algo diferente de GET, clique no botão enviar e veja os resultados.

Trabalhando com caixas de seleção, botões de opção

Se o usuário não selecionar uma caixa de seleção ou botão de opção, nenhum valor será enviado. Se o usuário selecionar uma caixa de seleção ou botão de opção, o valor um (1) ou verdadeiro será enviado.

Modificaremos o código do formulário de registro e incluiremos um botão de verificação que permite ao usuário concordar com os termos de serviço.

<html>
<head>
<title>Registration Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php if (isset($_POST['form_submitted'])): ?>
<?php if (!isset($_POST['agree'])): ?>
<p>You have not accepted our terms of service</p>
<?php else: ?>
<h2>Thank You <?php echo $_POST['firstname']; ?></h2>
<p>You have been registered as
<?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?>
</p>
<p> Go <a href="/registration_form2.php">back</a> to the form</p>
<?php endif; ?>
<?php else: ?>
<h2>Registration Form</h2>
<form action="registration_form2.php" method="POST">
First name:
<input type="text" name="firstname">
<br> Last name:
<input type="text" name="lastname">
<br> Agree to Terms of Service:
<input type="checkbox" name="agree">
<br>
<input type="hidden" name="form_submitted" value="1" />
<input type="submit" value="Submit">
</form>
<?php endif; ?>
</body>
</html>

Visualize o formulário acima em um navegador.

Trabalhando com caixas de seleção e botões de opção

Preencha o primeiro e o último nome.

Observe que a caixa de seleção Concordo com os Termos de Serviço não foi selecionada.

Clique no botão enviar.

Você obterá os seguintes resultados.

Trabalhando com caixas de seleção e botões de opção

Clique no link "Voltar ao formulário" e, em seguida, selecione a caixa de seleção.

Trabalhando com caixas de seleção e botões de opção

Clique no botão enviar.

Você obterá os seguintes resultados.

Trabalhando com caixas de seleção e botões de opção

Perguntas Frequentes

$_GET lê valores de URL A string de consulta, `$_POST`, lê os valores do corpo da requisição, e `$_REQUEST` mescla os dados de GET, POST e cookies. Prefira o array específico para saber exatamente de onde veio um valor.

Nunca confie em dados de entrada brutos. Valide com filter_var() ou regras para cada campo e escape a saída com htmlspecialchars() para evitar XSS. Use instruções preparadas para gravações no banco de dados para prevenir injeção de SQL.

As causas comuns são o uso do método GET em vez de POST no formulário, a ausência do atributo `name` nos campos de entrada e uma ação incorreta. URLOu talvez esteja faltando um tipo de criptografia multipart para o envio de arquivos. Verifique cada um desses itens no seu formulário.

Sim. A IA pode construir o formulário HTML, além de realizar a validação no servidor, a proteção contra CSRF e a saída com caracteres de escape. RevConsulte as regras para cada campo e confirme se as verificações de segurança correspondem à sua aplicação antes de implantá-la.

Sim. Compartilhe o formulário e o manipulador, e a IA poderá identificar uma incompatibilidade de método, um atributo de nome ausente, um caminho de ação incorreto ou uma ramificação de validação que bloqueia o envio, e então sugerir a correção.

Resuma esta postagem com: