Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lorena85

$_GET, $_POST, $_REQUEST qual a diferença?

Recommended Posts

Ola galerinha

 

sei que eu vou falar e uma coisa meio que besta mas queria saber qual diferença entre esses métodos $_GET, $_POST, $_REQUEST

 

*se existe o $_REQUEST que faz o trabalho do get e do post juntos, para que existe então get e post?

*usando o $_REQUEST será um pouco mais lento??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sempre me fiz a mesma pergunta. Não tem muita lógica de ela existir, já que você pode usar $_GET, $_POST e $_COOKIE.

 

Só vejo utilidade disso em casos onde você atende por requisições GET e POST. Apesar de você poder resolver com um simples if, você pode evitar esse if e usar $_REQUEST

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola galerinha

 

sei que eu vou falar e uma coisa meio que besta mas queria saber qual diferença entre esses métodos $_GET, $_POST, $_REQUEST

 

*se existe o $_REQUEST que faz o trabalho do get e do post juntos, para que existe então get e post?

*usando o $_REQUEST será um pouco mais lento??

 

Fala Lorena, tudo bem?

 

Bom eu não sou expert no assunto, posso estar falando bobagem, mas o que eu vivi eu posso compartilhar. Realmente o $_REQUEST faz o papel de todos, mas não recomendo a sua utilização.

 

Imagine só você está em uma big api php e precisa encontrar um valor de um POST, você vai usar $_REQUEST? Eu não, pois a busca seria muito maior, pois $_REQUEST seleciona todos os POSTS, GETS e COOKIES. Por questão da "minha lógica" e de organização eu prefiro utilizar o método em si, não o REQUEST.

 

Com o método POST as informações enviadas são "invisíveis" e com o GET elas são enviadas via URL. Os COOKIES tem uma ótima utilização, principalmente quando você precisa armazenar dados para a utilização em domínios diferentes (enviar um dado de seusite.com.br para mail.seusite.com.br, por exemplo), como já ocorreu comigo de uma vez só o GET e o COOKIE funcionarem pra mim.

 

Bom, não sei se ajudou, mas está ai o que eu sei. Claro que pessoas aqui podem dar respostas mto melhores!

 

Sucesso

Compartilhar este post


Link para o post
Compartilhar em outros sites

somente use o request quando você não tiver outra opção ou quando se você precisar usar os dois, você precisará duplicar muito código... pois ele eh realmente mais lento... fora isso... use sempre $_POST e $_GET...

 

além de ser menos seguro tb...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade $_REQUEST também pega os dados de $_COOKIE.

 

Eu sempre fui meio preconceituoso com esse superglobal. Mas é até que justificável.

 

Até onde me consta, é impossível de se ter uma requisição, por exemplo, POST e GET ao mesmo tempo. Podem até apontarem para um mesmo URI, cada qual atuando para um ação, mas sempre em requisições separadas.

 

Sendo assim, Se é POST, usemos $_POST. Se é GET, usemos $_GET. Precisamos de algum cookie? $_COOKIES

 

Teoricamente, a queda de performance poderia se dar em termos de milésimos de segundos quando houvessem MUITOS dados armazenados. Mas muitos mesmo, pra lá de 10 mil (ou mais). :o

 

Como é meio improvável uma aplicação ter tantas informações dos três tipos suportados pelo superglobal em questão ao mesmo tempo, não existem estudos conhecidos a respeito, então ficamos apenas com o problema de usá-lo:

 

Imagina uma situação na qual você coincidentemente tem uma variável de nome X que DEVE transitar exclusivamente via GET e outra, também chamada X, exclusivamente por POST.

 

Usando $_GET e $_POST, você pode perfeitamente utilizar os nomes idênticos. Mesmo que não pareça muito certo, às vezes, por harmonia léxica (sou tarado por isso com programo :P) é justificável.

 

Mas se você codificar seu script inteiramente com $_REQUEST, um sobrescreverá o outro e pela sutileza do procedimento, o debug seria complicado.

 

Veja um exemplo bem porco que fiz correndo ilustrando isso:

 

var_dump( $_REQUEST, $_POST, $_GET );

echo '<form method="post">';
echo '<input type="hidden" name="nome" value="Bruno" />';
echo '<input type="submit" value="Vai" />';
echo '</form>';

Ao acessar a página pela primeira vez haverão três arrays vazios, afinal não existe informação ainda.

 

Colocando um parâmetro GET nome na URL (Bruno Augusto, para ilustrar), você verá Bruno Augusto saindo de $_REQUEST e outro (terceiro) de $_GET. O segundo, referente à $_POST, continuará vazio.

 

Submeta o formulário. Será mostrado Bruno duas vezes e Bruno Augusto uma.

 

Isso porque o $_REQUEST mescla tudo e, graças à ordem das variáveis, o Bruno oculto vindo de $_POST sobrescreverá o Bruno Augusto vindo de $_GET, porque nos arrays superglobais, possuem o mesmo índice.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.