Formulário de registro PHP usando métodos GET, POST com exemplo
O que é Formulário?
Ao fazer login em um site ou caixa de correio, 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.
Um formulário é uma tag HTML que contém itens da interface gráfica do usuário, como caixa de entrada, caixas de seleção, botões de opção, etc.
O formulário é definido usando o … tags e itens da GUI são definidos usando elementos de formulário, como input.
Quando e por que estamos usando formulários?
- Os formulários são úteis no desenvolvimento de aplicativos flexíveis e dinâmicos que aceitam entradas 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
- URL de envio que processará os dados enviados
- Campos de entrada, como caixas de entrada, áreas de texto, botões, caixas de seleção, etc.
O código abaixo cria um formulário de registro 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.
AQUI,
- … são as tags de abertura e fechamento do formulário
- action=”registration_form.php” method=”POST”> especifica o URL de destino e o tipo de envio.
- 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 quando clicado envia o formulário ao servidor para processamento
Enviando os dados do formulário para o servidor
O atributo action do formulário especifica a URL de envio que processa os dados. O atributo method especifica o tipo de envio.
Método PHP POST
- Esta é a variável de array superglobal integrada do PHP que é usada para obter valores enviados via 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 de postagem do formulário na URL.
- Um bom exemplo de uso do método post é ao enviar detalhes de login ao servidor.
Possui a seguinte sintaxe.
<?php $_POST['variable_name']; ?>
AQUI,
- “$_POST[…]” é o Array PHP
- “'variable_name'” é o nome da variável URL.
Método PHP GET
- Esta é a variável de array superglobal integrada do PHP que é usada para obter valores enviados via 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 na URL.
- É ideal para formulários de mecanismos de pesquisa, pois permite que os usuários marquem os resultados.
Possui a seguinte sintaxe.
<?php $_GET['variable_name']; ?>
AQUI,
- “$_GET[…]” é o array PHP
- “'variable_name'” é o nome da variável URL.
Métodos GET vs POST
POST | ENTRE |
---|---|
Valores não visíveis no URL | Valores visíveis na URL |
Não possui limitação de comprimento dos valores, pois são enviados via corpo do HTTP | Tem limitação no comprimento dos valores geralmente 255 caracteres. Isso ocorre porque os valores são exibidos na URL. Observe que o limite superior dos caracteres depende do navegador. |
Tem desempenho inferior comparado ao método Php_GET devido ao tempo gasto no encapsulamento dos valores Php_POST no corpo HTTP | Possui alto desempenho em comparação ao método POST devido à natureza simples de anexar os valores na URL. |
Suporta muitos tipos de dados diferentes, como string, numérico, binário, etc. | Suporta apenas tipos de dados de string porque os valores são exibidos na URL |
Os resultados não podem ser marcados no livro | Os resultados podem ser marcados no livro devido à visibilidade dos valores na URL |
O diagrama abaixo mostra a diferença entre get e 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 é enviado, os valores são preenchidos no array 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.
Modificaremos o formulário de registro 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="/pt/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 nome.
Se o campo form_fobmitted não tiver sido preenchido no array $_POST[], o formulário será exibido.
Mais exemplos
Buscador simples
Projetaremos um mecanismo de pesquisa simples que usa o método PHP_GET como tipo de envio do formulário.
Para simplificar, usaremos um Instrução PHP If 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="/pt/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
Será mostrado o seguinte formulário
Digite GET em letras maiúsculas e clique no botão enviar.
Será mostrado o seguinte
O diagrama abaixo mostra o URL dos resultados acima
Observe que o URL exibiu o valor de search_term e form_submitted. Tente inserir algo diferente de GET e clique no botão enviar e veja quais resultados você obterá.
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="/pt/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
Preencha o nome e o sobrenome
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
Clique em voltar para o link do formulário e marque a caixa de seleção
Clique no botão enviar
Você obterá os seguintes resultados
Resumo
- Formulários são usados para obter dados dos usuários
- Os formulários são criados usando tags HTML
- Os formulários podem ser enviados ao servidor para processamento usando o método POST ou GET
- Os valores do formulário enviados por meio do método POST são encapsulados no corpo HTTP.
- Os valores do formulário enviados por meio do método GET são anexados e exibidos na URL.