PHP aula 03 – POST

Como já visto, o GET faz o envio de dados para a URL para que possamos capturar os valores.

Já o POST também faz o envio, porém, diretamente para o servidor de modo que não é necessário passar os dados pela a URL.

Quando programamos formulários, o POST se torna mais eficiente do que o GET, além de ser mais seguro ele também é transparente, ou seja, o usuário não sabe quais os dados que estão sendo passados para o servidor. Já o GET, se torna eficiente quando passamos informações de uma url para outra, portanto, é importante entender que POST e GET são utilizados em situações específicas e que um não substitui o outro. Ter domínio de programação do GET e do POST se tornam extremamente necessários para qualquer desenvolver back-end.

Prepare seu HTML para o POST

O POST somente irá ser executado se seu HTML estiver preparado para isso, podemos fazer isso de duas formas, a primeira é programando o elemento <FORM> com o atributo method=”POST”, ficando da seguinte forma:

<FORM method="POST">
    ...
    <button type="submit"> enviar dados </button>
</FORM>

Importante: Note que na estrutra acima há um botão do tipo submit (já falamos sobre ele na aula 2 – GET), assim como o GET, o POST também necessita de um dispositivo que faça o envio dos dados (submit) e que normalmente, utilizamos um botão para isso.

A segunda forma de usar o POST é usando javascript. Nós usamos JS quando não temos um botão de submit, por exemplo; você pode programar o submit clicando em uma imagem ao invés de um botão.

<input type="image" src="/img/imagem.jpg" onClick="this.form.submit()">

Exemplo:

  1. Utilizando POST, crie um formulário que receba dois números e mostre o cálculo de soma entre eles quando clicar em um botão de submit.
  2. Crie um campo onde o usuário digite seu nome e programe uma imagem para fazer o envio do dado para o servidor usando POST. Exiba o nome do usuário na tela.

Solução:

Exemplo 01.

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>POST - Exemplo 1</title>
</head>
<body>
<FORM method="POST">
<label for="num1">Digite o primeiro número</label>
<input type="number" name="num1">

<br/>

<label for="num1">Digite o segundo número</label>
<input type="number" name="num2">

<br>

<button type="submit"> Calcular </button>
</FORM>

<?php
 if ($_POST)
 {   
     $resultado = $_POST['num1'] + $_POST['num2'];
     echo("O resultado deu $resultado <br/>");
 //tamb&#xE9;m podemos escrever assim, usando aspas simples. echo(&#x27;O resultado deu &#x27; . $resultado); /* as aspas duplas consegue ler o valor da vari&#xE1;vel $resultado, as aspas simples n&#xE3;o, por isso &#xE9; necess&#xE1;rio concatenar. */
 }
 ?>

</body>
</html>

Exemplo 02.

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>POST - Exemplo 1</title>
</head>
<body>
<FORM method="POST">
<label for="num1">Digite o seu nome:</label>
<input type="text" name="nome">

<br>

<a href="#">
<input type="image" src="/img/imagem.jpg" onClick="this.form.submit()">
</a>

</FORM>

<?php
if ($_POST)
{
  $resultado = $_POST['num1'] + $_POST['num2'];
  echo("Olá $nome <br/>");

  //também podemos escrever assim, usando aspas simples.
  echo('Olá ' . $nome);

  /* as aspas duplas consegue ler o valor da variável $nome, as aspas simples não,
     por isso é necessário concatenar. */
}
?>

</body>
</html>

Exibir o echo somente quando o botão for pressionado

Note que nos exemplos acima o código PHP é executado junto com o carregamento da página e o echo é exibido. Para resolver isso, basta usar um IF. Quando um submit é executado a super variável $_POST passa a existir. Para verificarmos se uma variável existe ou não usamos o teste if ($var){ //se a variável existir }

");
		
 //também podemos escrever assim, usando aspas simples.
 echo('Olá ' . $nome);
		
 /* as aspas duplas consegue ler o valor da variável $nome, as aspas simples não, 
    por isso é necessário concatenar. */
}
?>