Identificar requisição POST ou GET com PHP

Postado em por Wolmir Cezer Garbin em PHP | 310 Visualizações
Última atualização em:

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

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;

?>
Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

Posts relacionados


Code Conference

Esta é uma conferência de código realizada na cidade de Pato Branco para dissiminar tendências e informações sobre programação e novas tecnológias

Veja mais sobre o Code Conference

Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar