quarta-feira, 24 de agosto de 2011

Como passar parametros através dos métodos GET E POST no PHP?

Quando desenvolvemos um site que deve trabalhar com informações, geralmente temos a necessidade de passar alguns valores de uma página para a outra, para podermos, então, realizar operações como consultas e inserções no banco de dados, autenticação de usuários, etc.
No PHP os dois métodos mais utilizados para isso são o GET e POST.

GET

É o método mais simples e mais limitado para se usar. Neste caso os valores e seus respectivos identificadores são transmitidos pela URL, não sendo preciso a abertura de uma nova conexão (explicaremos melhor isso quando falarmos do método POST). Quem nunca viu uma URL desse tipo:
A imagem acima exemplifica o uso da passagem de parâmetros via GET. A presença da interrogação indica o fim do endereço e o início da declaração dos nossos valores que serão passados. Neste caso, a página index1.php receberá uma variável chamada id com o valor 2, e outra variável acao com valor “01”.
Tome cuidado! Você não pode passar tudo que é informações usando o método GET (pela URL/LINK)
Duas explicações básicas:

  • 1-       Tamanho: Como os valores são passados pela URL, há um limite para o número de bytes que serão enviados. Você poderá enviar no máximo 1024 caracteres, o que limita bastante suas possibilidades com esse método.
  • 2-       Sobre segurança: Como nesse método os dados são visíveis ao usuário, não é bom (na verdade é horrível) que se passe informação confidenciais via GET. Imagine você, navegando em um site, e de repente você vê a sua senha passeando pela URL. E o pior, sendo salva no histórico do computador.
O correto é usar o método get somente para passar parâmetros usados em pesquisas e outras informações não tão privativas.
Para evitar estes problemas temos o método POST.

POST

O método POST representa uma alternativa ao método GET para as questões de capacidade e segurança. Nesse método uma conexão paralela é aberta e os dados são passados por ela. Não há restrição referente ao tamanho e os dados não são visíveis ao usuário. Há única condição é que se use um formulário para os dados. Na tag form , temos um atributo action. Nesse atributo é que setaremos a página que receberá nossas informações. Quando o botão submit for acionado todos os dados desse formulário serão passados para a página definida no action. É uma maneira segura e com mais capacidade em termos de espaço.

Como recuperar estes dados nas páginas destinatárias?

O PHP armazena as variáveis vindas por GET e por POST em vetores associativos (vetores cujos índices são strings).
Vejamos como faríamos isso com o exemplo do método GET acima.
Foram passadas duas variáveis : id e ação.


Exemplo:

PÁGINA CONTENDO O ENVIO DOS PARAMETROS (EM HTML):
<html>
<body>
<a href= "processa.php?id=01&acao=01">Clique aqui!</a>
</body>
</HTML>
PÁGINA ONDE SERÃO PEGAS E PROCESSADAS AS VARIÁVEIS CONTENDO O ID E A ACAO (EM PHP):
<?
$meu_id = $_GET['id'];
$acao = $_GET['acao'];
echo "O valor passado pelo método GET na variável ID é: $meuid";
echo "<br>O valor passado pelo método GET na variável ACAO é: $acao";
?>

No caso do método POST, temos um vetor chamado $_POST que armazenará os dados vindos do formulário. Vale lembrar que, nesse caso, os índices do vetor serão as nomes dados aos inputs no seu formulário.
Para acessar os valores vindos de um formulário como usuário e senha, por exemplo, usamos o comando de atribuição $_POST[‘nome_do_parametro’]
$usuario = $_POST['usuario'] e $senha = $_POST['senha'];

Abaixo um exemplo de envio de informações usando o método post (código em php/HTML):
PÁGINA DO FORM EM HTML:
<HTML>
<body>
<form action="processar.php" metod="POST">
Insira seu usuário<input type="text" name="login"/>
Insira sua senha<input type="password" name="senha"/>
<input type="submit" value="Efetuar login"/>
</form>
</body>
</HTML>
PÁGINA ONDE SERÃO PEGAS E PROCESSADAS AS VARIÁVEIS CONTENDO O LOGIN E A SENHA (EM PHP):
<?
$var_login=$_POST['login'];
$var_senha=$_POST['senha'];
echo "Olá, $var_login!<BR>Sua senha é: $var_senha";
?>

Espero ter ajudado aos programadores em PHP. Se você gostou ou tem alguma dica, comente!

13 comentários:

Unknown disse...

Muito objetivo e claro!,
contribui muito para o momento do meu aprendizado.
Grato pela iniciativa.

Unknown disse...

Obrigado.
Me ajudou bastante, bem objetivo e explicativo
Parabéns!

Anônimo disse...

Depois de dias procurando, e não achando algo esclarecedor, enfim achei esse post, muito bom, Obrigado!

Unknown disse...

Cara geniall.. Parabéns..
Fazem milhões de videos aulas por ai, mas poucas são objetivas como a sua.. explicou de forma simples e objetiva, eu ja sabia a diferença de um metodo para o outro, mas com sua explicação eu consegui desenvolver algo que eu estava querendo no meu site, mas não estava conseguindo. Com sua explicação consegui entender melhor o metodo Get e aplicar no meu código..
Parabens, abraços e obrigado!

Unknown disse...

Como posso passar parâmetros usando o FOR no input?

Unknown disse...

Como posso passar os parâmetros quando uso o FOR no input? E como os recebo na outra página?

Unknown disse...

Como posso passar parâmetros usando o FOR no input?

JOÃO LAUDIR TEIXEIRA disse...

Obrigado, fico contente em poder ajudá-lo

JOÃO LAUDIR TEIXEIRA disse...

Obrigado, fico contente em poder ajudá-lo

JOÃO LAUDIR TEIXEIRA disse...

Obrigado, fico contente em poder ajudá-lo

JOÃO LAUDIR TEIXEIRA disse...

Obrigado, fico contente em poder ajudá-lo

JOÃO LAUDIR TEIXEIRA disse...

Me desculpe, não entendi sua pergunta

Fernando disse...

Esta correto, minhas aplicações funcionam bem assim, porém como fariamos se eu precisa-se passar trechos de códigos html via post ? pois tenho um componente editor de texto, e ele gera codigos em html, mas na hora de imprimir eu tenho que gerar em pdf, e a forma que tenho, é pegar o conteudo em HTML e jogar no arquivo gerador PDF, mas nao passa codigos html via POST, e agora ?

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Design Blog, Make Online Money