Identificar requisição POST ou GET com PHP
Neste post veremos como identificar diferentes tipos de requisição, POST ou GET utilizando PHP 7
Última atualização em: | 44816 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.