Nesta aula, aprenderemos como uma página pode enviar informações para um programa PHP. Conheceremos os métodos GET e POST, criaremos formulários HTML e aprenderemos a recuperar os dados enviados utilizando $_GET e $_POST.
1. Até agora…
Nas atividades anteriores, criamos arquivos .php, utilizamos o comando echo e entendemos que o PHP é executado no servidor. Agora vamos dar um passo importante: permitir que o usuário envie informações para nosso programa.
Imagine um sistema que precisa receber o nome de um aluno, uma nota, uma senha ou os dados de um cadastro. Para isso, precisamos enviar essas informações do navegador (cliente) para o servidor, onde o PHP poderá processá-las.
O fluxo básico será:

2. Formulários HTML
Uma das maneiras mais comuns de enviar informações para o PHP é através de um formulário HTML.
Exemplo:
<form>
<input type="text" name="nome">
<button type="submit">Enviar</button>
</form>
O <input> permite que o usuário digite uma informação. O atributo name é muito importante, pois será utilizado pelo PHP para identificar o dado enviado.
Precisamos também informar para onde os dados serão enviados e qual método será utilizado:
<form action="receber.php" method="GET">
Nesse exemplo:
action→ informa qual arquivo receberá os dados;method→ informa como os dados serão enviados.
Os dois métodos que estudaremos são GET e POST.
3. Método GET
O método GET envia os dados junto ao endereço da página (URL).
Vamos criar o arquivo index.php:

Agora criaremos receber.php:

Se digitarmos:
Maria
o navegador poderá acessar um endereço semelhante a:
receber.php?nome=Maria
Percebemos que o dado enviado aparece na própria URL.
4. O que é $_GET?
O PHP disponibiliza uma variável especial chamada:
$_GET
Ela contém os dados que chegaram através do método GET.
Quando escrevemos:
$_GET["nome"]
estamos dizendo:
“PHP, pegue o valor chamado
nomeque chegou através do GET.”
O nome utilizado no PHP está relacionado ao atributo name do formulário:
<input type="text" name="nome">
Portanto:
HTML
name="nome"
⬇
PHP
$_GET["nome"]
5. Enviando mais de uma informação
Podemos enviar vários dados no mesmo formulário formulario.php:

No PHP receber.php:

A URL poderá ficar semelhante a:
receber.php?nome=Maria&idade=16
O caractere ? marca o início dos parâmetros e o & separa diferentes informações.
6. Método POST
O método POST também permite enviar informações para o servidor, mas os dados não são colocados na URL como parâmetros.
Alteramos apenas o método do formulário:

Agora precisamos alterar o PHP:

Observe a mudança:
GET
$_GET["nome"]
POST
$_POST["nome"]
Com POST, ao enviarmos Maria, o endereço continuará semelhante a:
receber.php
O nome não será colocado nos parâmetros da URL.
7. GET ou POST?
Os dois métodos enviam informações do navegador para o servidor, mas possuem características diferentes.
| GET | POST |
|---|---|
| Dados aparecem na URL | Dados não aparecem na URL |
Utilizamos $_GET | Utilizamos $_POST |
| Bom para pesquisas e filtros | Bom para formulários e cadastros |
| Pode ser facilmente compartilhado pela URL | Os dados não ficam registrados na URL da mesma forma |
| Não deve ser usado para senhas | Mais adequado para envio de senhas |
Importante: utilizar POST não significa que os dados estão criptografados. Para proteger os dados durante a transmissão pela rede, precisamos utilizar HTTPS.
8. Um exemplo para entender
Podemos pensar no GET como escrever uma informação do lado de fora de uma caixa. Quem olhar para a caixa consegue identificar aquela informação.
pesquisar.php?produto=notebook
Já no POST, a informação é colocada dentro da requisição HTTP e não aparece nos parâmetros da URL.
Mesmo assim, isso não torna o POST automaticamente seguro. Para proteger a comunicação, precisamos de HTTPS.
9. GET diretamente pela URL
Uma característica interessante do GET é que não precisamos obrigatoriamente de um formulário.
Podemos escrever diretamente no navegador:
http://localhost/receber.php?nome=Joao
E utilizar:
<?php
$nome = $_GET["nome"];
echo "Olá, " . $nome;
?>
Podemos até experimentar trocar Joao por outro nome diretamente na barra de endereços e observar o resultado.
Isso acontece porque os dados do GET fazem parte da URL.
10. Exemplo completo com POST
index.php

receber.php

11. Resumindo
Nesta aula, aprendemos que o navegador pode enviar informações para o servidor, permitindo que nossos programas PHP recebam dados fornecidos pelos usuários.
Devemos lembrar principalmente:
GET
$_GET["nome"]
Envia informações através da URL.
POST
$_POST["nome"]
Envia informações no corpo da requisição HTTP.
Formulário
<form action="receber.php" method="POST">
O action determina para onde os dados serão enviados e o method determina como eles serão enviados.
A partir desse conhecimento, conseguimos começar a criar aplicações realmente interativas, nas quais o usuário envia informações e o PHP recebe, processa e responde.
ATIVIDADE
- Sobre os métodos de envio de informações utilizados na linguagem PHP, qual a diferença entre os métodos GET e POST?
- Qual o método de envio de informações mais indicado para enviar informações secretas, como senhas e informações confidenciais? Justifique.
- Copie no seu caderno o código dos arquivos index.php e receber.php do tópico 3. Método GET.
- Copie no seu caderno o código dos arquivos formulario.php e receber.php do tópico 5. Enviando mais de uma informação.
- Copie no seu caderno o código dos arquivos formulario.php e receber.php do tópico 6. Método POST
- Copie no seu caderno o código dos arquivos index.php e receber.php do tópico 10. Exemplo completo com POST