Diferença entre POST e GET no PHP

Dois métodos que são comuns no envio de informações entre um cliente e um servidor são GET e POST.

Nós podemos definir esses dois métodos como uma forma de transferência de informações para o protocolo HTTP. A partir desses métodos, é possível que uma aplicação possa transferir dados para outra.

Método GET

Este é o método que podemos enviar um número limitado de informações para o servidor. Como este método utiliza os campos de endereço, você pode enviar no máximo 1024 caracteres de informação.

As informações podem ser visíveis para o usuário, porque ficam presentes na endereço. Veja um exemplo de envio de informações utilizando o método GET.

http://www.sistemanovo.com.br/?parametro=3&novoparametro=2

Todos os parâmetros vem depois do caractere “?”, e tem o comportamento de dicionário (chave e valor). Para adicionar um novo parâmetro, basta utilizar o caractere “&” e incrementar como o exemplo acima.

Talvez, você tenha visto alguns problemas de segurança nesta abordagem. Por exemplo, se você passar informações que são sigilosas, como o usuário e senha, seria uma enorme brecha de segurança.

Além disso, você ainda corre o risco de um usuário mal intencionado, utilizar SQL Injection e tomar ações não esperadas em seu servidor de banco de dados ou de aplicação.

Exemplo de formulário HTML utilizando o método GET

A única diferença é o valor da propriedade method que é assinalada como GET

<html>
<title>Exemplo GET</title>
<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>

 Obter dados enviados pelo método GET

É relativamente fácil obter dados enviados através do método GET.

No entanto, você precisa sempre validar os dados antes de realizar qualquer ação com eles. Lembre-se: nunca confie em um dado enviado pelo usuário.

<?php
     echo("Nome: " . $_GET['firstname'] . "<br />\n");
     echo("E-mail: " . $_GET['email'] . "<br />\n");
?>

Método POST

Este é o método mais seguro de envio de informações. Você tem uma conexão paralela, e pode passar mais informações que o método GET: não há restrição ao tamanho dos dados e não são exibidos para o usuário.

Se tivermos um formulário, onde o usuário precisará suas credenciais (usuário e senha) para logar no sistema, o método POST é o ideal para ser utilizado.

Exemplo de formulário HTML utilizando o método Post

Para utilizar o método POST, basta adicionar a propriedade method, como o exemplo abaixo.

<html>
<title>Exemplo POST</title>
<body>

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

</body>
</html>

Obter dados através de POST

<?php
   if(isset($_POST['submit']) 
   {
      echo("Nome: " . $_POST['name'] . "<br />\n");
      echo("E-mail: " . $_POST['email'] . "<br />\n");
   }
?>

 

Conclusão

A diferença principal entre os dois métodos, é basicamente, o envio de informações para o servidor.

O método GET, transfere os dados para o serviço através da URL, e a quantidade de caracteres é limitado.

Já o método POST, você pode realizar envios mais seguros, e não há limite para transmissão de informações.

Vote

Deixe um comentário