Tratamento de formulários PHP

As variáveis globais superiores PHP $_GET e $_POST são usadas para coletar dados do formulário (form-data).

PHP - Um formulário HTML simples

O exemplo a seguir mostra um formulário HTML simples, que contém dois campos de entrada e um botão de envio:

Exemplo

<html>
<body>
<form action="welcome.php" method="post">
Nome: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

Executar exemplo

Quando o usuário preencher este formulário e clicar no botão Enviar, os dados do formulário serão enviados para o arquivo PHP chamado "welcome.php" para processamento. Os dados do formulário são enviados pelo método HTTP POST.

Para exibir os dados enviados, você pode simplesmente imprimir (echo) todas as variáveis. O arquivo "welcome.php" é assim:

<html>
<body>
Bem-vindo <?php echo $_POST["name"]; ?><br>
Seu endereço de e-mail é: <?php echo $_POST["email"]; ?>
</body>
</html>

Saída:

Bem-vindo Bill
Seu endereço de e-mail é Bill.Gates@example.com

Você também pode obter o mesmo resultado usando o método HTTP GET:

Exemplo

<html>
<body>
<form action="welcome_get.php" method="get">
Nome: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

Executar exemplo

"welcome_get.php" é assim:

<html>
<body>
Bem-vindo <?php echo $_GET["name"]; ?><br>
Seu endereço de e-mail é: <?php echo $_GET["email"]; ?>
</body>
</html>

O código acima é simples. No entanto, o conteúdo mais importante foi omitido. Você precisa validar os dados do formulário para evitar vulnerabilidades no script.

Atenção:Atenção ao segurança ao lidar com formulários PHP!

Esta página não inclui nenhum programa de validação de formulário, ela apenas nos mostra como enviar e receber dados de formulário.

No entanto, os capítulos posteriores explicam como melhorar a segurança do formulário PHP! Validar adequadamente o formulário é crucial para se proteger contra ataques de hackers e spam.

GET vs. POST

GET e POST ambos criam arrays (por exemplo, array( key => value, key2 => value2, key3 => value3, ...) ). Este array contém pares chave/valor, onde a chave é o nome do controle de formulário e o valor é os dados de entrada do usuário.

GET e POST são considerados $_GET e $_POST. Eles são variáveis globais, o que significa que seu acesso não requer consideração de escopo - sem código especial, você pode acessá-los a partir de qualquer função, classe ou arquivo.

$_GET é o array de variáveis que são transmitidas via parâmetros da URL para o script atual.

$_POST é o array de variáveis que são transmitidas via HTTP POST para o script atual.

Quando usar GET?

Informações enviadas por meio do método GETVisível para todos(Todos os nomes de variáveis e valores são exibidos na URL)。GET tem restrições no número de informações enviadas. A restrição é de cerca de 2000 caracteres. No entanto, devido às variáveis estarem na URL, é mais fácil adicionar a página aos favoritos.

GET pode ser usado para enviar dados não sensíveis.

Comentário:Nunca use GET para enviar senhas ou outras informações sensíveis!

Quando usar POST?

Informações enviadas por meio do método POSTInvisível para outros(Todos os nomes/valores serão incorporados no corpo da solicitação HTTP),e também há restrições no número de informações enviadasIlimitado.

Além disso, POST suporta funcionalidades avançadas, como entrada multi-part binária ao enviar arquivos para o servidor.

No entanto, devido às variáveis não estarem visíveis na URL, não é possível adicionar a página aos favoritos.

Dica:Desenvolvedores preferem POST para enviar dados de formulário.

Vamos ver agora como lidar de maneira segura com formulários PHP!