Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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??>
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
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...
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.