Palavra:   

Revista PHP / PHP

Pedro Monteiro

Compreender $_POST e $_GET no PHP

Provavelmente se pensa fazer um website em php irá certamente precisar de utilizar $_POST e $_GET, pois necessitará de transportar variáveis de pagina em pagina.

Então vou dar uma breve explicação de como funcionam estes dois métodos de transporte de variáveis.
Começaremos com o $_POST:

Num website muitas vezes temos formulários, seja para registo de membros, sistema de login, contactos, etc. Para guardar os campos preenchidos pelos HTML. Neste exemplo prático veremos como funciona:

Criação de formulário de registo de utilizador:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Tutorial $_POST BOTTURN.COM</title>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <table cellpadding="0" cellspacing="0" border="0">
  11. <tr>
  12. <td>
  13. <form action="teste.php" method="post" enctype="multipart/form-data">
  14. <table cellpadding="0" cellspacing="0" border="0">
  15. <tr>
  16. <td>Nome:</td>
  17. <td><input type="text" name="nome" id="nome" /></td>
  18. </tr>
  19. <tr>
  20. <td>Email:</td>
  21. <td><input type="text" name="email" id="email" /></td>
  22. </tr>
  23. <tr>
  24. <td>Descrição:</td>
  25. <td><textarea name="descricao" id="descricao" cols="45" rows="5"></textarea></td>
  26. </tr>
  27. <tr>
  28. <td><input type="submit" value="Enviar" /></td>
  29. </tr>
  30. </table>
  31. </form>
  32. </td>
  33. </tr>
  34. </table>
  35. <br />
  36. <?PHP
  37. if ($_POST) {
  38.  
  39. echo ("Nome: ".$_POST['nome']."<br>");
  40. echo ("Email: ".$_POST['email']."<br>");
  41. echo ("Descrição: ".$_POST['descricao']."<br>");
  42.  
  43. }
  44.  
  45. ?>
  46. </body>
  47. </html>

O método $_GET é usado para receber variáveis através do URL (Link que insere no browser), certamente já viu em alguns sites um link desta forma www.exemplo.com/index.php?x=1 .
Então começaremos por explicar a sintaxe:

exemplo.php?
O ponto de ? é a forma de declarar que a seguir são variáveis.

exemplo.php?x=1
Após o ? podemos começar a declarar as variáveis. neste exemplo estamos a definir a variável x com o valor 1.

exemplo.php?x=1&y=2
Podemos declarar mais que uma variável, para isso basta colocar & ente as variáveis.

Agora veremos um exemplo, que irá escrever na pagina a variável recebida através de $_GET.

  1. <?PHP
  2. $variavel = $_GET["x"];
  3.  
  4. if ($variavel) {
  5. echo "A variavel X contem ".$variavel;
  6. }else {
  7. echo "Não passou nenhuma variável através de $_GET"
  8. }
  9. ?>
  10. // Faça download do ficheiro e teste com a seguinte for exemploGet.php?x=Valor

E pronto este tutorial está terminado, aprendemos que o $_POST serve para transportar variaveis através de formulários e o $_GET através do URL.

Opções de Interação

Comentários

Nossa!!!!!
Por: cesar, 23/12/2010   13:24:36
E as questões de segurança onde ficam ???


cuidado usuários inciantes...

seguro -> $_POST

passa parâmetros de forma obscura

inseguro -> $_GET

passa parâmetros de forma insegura deve-se tomar cuidado e utilizar criptografia na passagem de parâmetros Ok ?

mas você chega lá !!!

att
Faltou informações importantíssimas
Por: Fábio, 03/03/2010   14:35:53
Amigo,seu artigo está interessante, mas algumas informações sobre segurança dos métodos GET e POST deveriam ser passadas pois poderá trazer problemas aos iniciantes.
Simples mais precisava de mais info. mesmo...
Por: Ricardo, 27/10/2009   08:55:47
Não to reclamando, mas daria pra melhorar né.. =) exemplos mesmo poderiam ser mais práticos.

e passando pro pessoal do revistaphp.com.br poxa ta fraco o redimento do site hein.. 1 artigo por trimestre.. =\

abs.
Faltou informação
Por: Cleyvison, 25/10/2009   22:37:19
Caro amigo, muito bom o post mas faltou informação sobre a limitação da qtd de caracteres entre os metodos e sobre a forma de envio dos dados. Tenha uma boa noite.
GET e POST
Por: Bruno, 14/10/2009   11:37:16
Caro Pedro Monteiro!
Sou novato em PHP, estou estudando atraves de apostilas que conseguir pela net.
Seguite,
não estou conseguindo passar uma variavel para outra pagina, mesmo usando o comando GET nem o POST.
Teria como eu enviar os arquivos feito por mim para vc analisar?
Vc pode testar por esse site:
http://lojaphp.t36.com/ex1311.php