Identificar requisição POST ou GET com PHP

Neste post veremos como identificar diferentes tipos de requisição, POST ou GET utilizando PHP 7

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - PHP - TUTORIAL

Última atualização em: | 44162 Visualizações

A primeira coisa que precisamos entender e como funciona e qual a melhor maneira de utilizar cada tipo de requisição, depois falaremos em como obter os valores do PHP.

Diferença entre GET e POST

Métodos GET e POST são utilizados por muitas linguagens de programação que trabalham em ambiente web. Para entender esses dois métodos vamos abordar um de cada vez.

Método GET

Este método é utilizado para passar poucas informações ao realizar uma pesquisa ou simplesmente passar uma informação para outra página através da URL (barra de endereços). A função do método GET é pura e simplesmente recuperar um recurso existente no servidor. O resultado de uma requisição GET é cacheável" pelo cliente, ou seja, fica no histórico do navegador e não ser utilizado para alteração de dados no servidor.

Exemplo:

http://receitasdecodigo.com.br/test?param=3&otherparam=2

Outro exemplo é quando você abre qualquer página no navegador, as páginas são obtidas através do método GET.

Método POST

Este método é utilizado para enviar dados de formulários, como por exemplo um login ou contato, além disso ele é mais seguro e tem uma capacidade de enviar dados muito maior que o GET. Nesse método uma conexão paralela é aberta e os dados são passados por ela. Não há restrição referente ao tamanho da requisição e os dados que devem ser enviados não são visíveis através da URL do navegador.

Exemplo:

<form action="sample.php" method="POST">
  Nome: <input type="text" name="nome" /><br />
  E-mail: <input type="text" name="email" /><br />
  <input type="submit" name="button" id="button" value="Enviar" />
</form>

Ao fazer o submit do form será enviado para a página sample.php os dados que estão no campo nome e email, permitindo que sejam recuperados dentro da página sample.php através de seus nomes.



Recuperando valores

Para recuperar os valores dentro da página você precisa utilizar $_GET e $_POST respectivamente para cada método de envio e estas são variáveis globais, você poderá utilizá-las em qualquer parte do código e ambas são do tipo array.

Podemos ver o resultado das variáveis da seguinte forma:

var_dump($_GET, $_POST);

Recuperando parâmetros GET

Para recuperar os parâmetros GET no PHP você pode utilizar o seguinte instrução:

<?php
echo $_GET['nome'];
?>

Isso irá imprimir o valor nome quando for enviado via GET, mas precisa tomar cuidado caso o parâmetro não exista, pode gerar um erro: Undefined Index, isso quando não existe no index o atributo que queremos obter, uma vez que sabemos que o $_GET retorna um array.

Para evitar isso utilize isset para verificar se o parâmetro existe

<?php
if(isset($_GET['nome'])) {
    echo $_GET['nome'];
}
?>

Isso se aplica tanto para GET quanto para POST.

Recuperando parâmetros POST

Para recuperar os parâmetros enviados via POST no PHP, utilize a seguinte instrução:

<?php echo $_POST['nome']; ?>

Da mesma forma que atributos GET, pode utilizar o isset para verificar se o parâmetro existe e evitar falha na aplicação.

<?php if(isset($_POST['nome'])) { 
	echo $_POST['nome']; 
} ?>

E se quisesse hora retornar um valor e caso ele não exista retornar null? Poderia ser utilizado um else, da seguinte forma:

<?php if(isset($_POST['nome'])) {  
	# retorna valor da variável 
} else {  
	# retorna null 
} ?>

Melhorando o código com operador ternário

Utilizando if's para verificar se o conteúdo existe ou não para retornar funciona, mas existe uma maneira melhor de fazer isso. Sem falar que é muito mais interessante termos um código mais limpo para manter.

Então vamos utilizar o operador ternário para melhorar o nosso código. O operador ternário é como um if e um else, e ele nós da um código muito mais limpo e organizado, veja:

<?php
	echo ( isset($_POST['nome']) ) ? $_POST['nome'] : null;
?>

Facilitou um pouco mais, mas para finalizar vamos criar uma nova variável com o valor que veio no parâmetro. Veja como ficou nosso código:

<?php
/* Recebemos os parâmetro no começo do script  */
$laranja = ( isset($_POST['laranja']) ) ? $_POST['laranja'] : null;

/* A partir deste ponto podemos utilizar as variáveis  */
echo $laranja;

?>

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!