O Método GET e as URL’s

maio 3rd, 2009 | by DragaO~ |

Hoje vou falar sobre um assunto que talvez seja pouco abordado, devido tamanha sua facilidade, o método GET
o (método) GET funciona da seguinte maneira: enviamos as variáveis e seus valores pela URL para então, utilizar seus valores dentro de um script PHP
neste exemplo iremos aprender a criar uma calculadora básica para entendermos o funcionamento do método GET, para isso, vamos criar o seguinte formulário, como segue abaixo:

calculadora.php

1
2
3
4
5
<form action="mostra_resultado.php" method="get" enctype="application/x-www-urlencoded">
    Valor 1 : <input type="text" name="valor1" />
    Valor 2 : <input type="text" name="valor2" />
    <input type="submit" />
</form>

pronto, temos o nosso formulário, agora, vamos explicar as linhas :)

1
<form action="mostra_resultado.php" method="get" enctype="application/x-www-urlencoded">

nesta linhas estamos criando o nosso formulário, dizendo qual a página responsável por tratar os dados e o tipo de envio desses dados

  • “action”: diz ao formulário qual vai ser a página responsável por “pegar” os dados informados no nosso formulário
  • “method” diz ao formulário o método de envio que vamos utilizar, no nosso caso, o GET (lembre-se de colocá-lo em minúsculo); existe também o método POST, porém, não será abordado neste post ;)
  • “enctype” diz ao formulário o tipo de encode que vai ser utilizado para enviar o formulário; existem dois tipos, o “application/x-www-urllencoded” e “multpart/form-data”, neste post é o primeiro que nos interessa :)

tendo feito isso, já temos o nosso formulário pronto para ser utilizado, porém devo lembrar que os navegadores possuem um padrão para cada parâmetro que não seja informados, são eles :

  • action : enviar para o próprio documento
    • explicação : os dados serão tratados pelo próprio arquivo que está sendo executado caso não seja informado um action
  • method : o padrão é GET
    • explicação: os dados serão enviados pela URL e serão visíveis ao(s) usuário(s)
  • enctype : o padrão é “application/x-www-urlencoded”
    • explicação: veremos adiante

Bom, tendo este formulário pronto e acessando ele, vamos ver apenas um simples formulario, com um campo ao lado do outro e um botao para enviar os dados, nada de assustador

vamos fazer o seguinte, vamos criar o arquivo “mostra_resultado.php” e deixá-lo vazio por enquanto (isso é apenas para não gerar o erro de arquivo não existente no servidor), e depois, no valor um vamos informar “10″ e no valor dois vamos informar “20″ e clicar em enviar

Agora voltemos nossa atenção à URL que foi gerada:

mostra_resultado.php?valor1=10&valor2=20

nessa URL estamos vendo que ela possui o nome do nosso arquivo que vai tratar os dados do formulário (”mostra_resultado.php”) e também vemos varias outras coisas, vamos ver agora o que significa cada uma dessas “coisas” :)

tudo que vem após o “?” (ponto de interrogação) são variáveis

é isso aí que você leu, aquilo ali são as variáveis do nosso script PHP
o que acontece é que, no caso de um formulário, o servidor web cria “automaticamente” as variáveis com o nome do conteudo do atributo “name” de um campo
ficou complicado? basta simplesmente olhar novamente o nosso formulário :

1
2
3
4
5
<form action="mostra_resultado.php" method="get" enctype="application/x-www-urlencoded">
    Valor 1 : <input type="text" name="valor1" />
    Valor 2 : <input type="text" name="valor2" />
    <input type="submit" />
</form>

note que, o nosso campo onde colocamos o nosso primeiro número possui o atributo “name” definido como “valor1″, e leeeeeeeembra que nós havíamos colocado “10″ neste campo? pois é, se a gente olhar pra nossa URL após a interrogação vamos ver a nossa variável seguido do valor dela, no caso “valor1=10″, o mesmo vale para o nosso segundo número, “valor2=20″

ah, você deve estar se perguntando sobre aquele “&” ali no meio das variáveis né? bom, esse “&” nada mais é do que um “separador de variáveis”, ou seja, para se passar múltiplas variáveis pela URL, basta separar elas (as variáveis) com o “&”, assim :

arquivo.php?var1=valor1&var2=valor2&var3=valor3&var4=valor4

aliás, lembra que eu havia dito que iria explicar o que significava o “method=”application/x-www-urlencoded”” em nosso formulário? pois é, eu não esqueci :D
ele simplesmente “diz” ao nosso navegador que é pra tratar os dados do formulário enviando-os pela URL, ou mais corretamente, manda o navegador (ao menos até onde sei é o navegador quem faz, qualquer coisa corrijam-me) criar uma “palavra” com todas as variáveis e seus valores, separando-os por “&”, exatamente como a gente viu (aliás, aquela parte toda depois do “?” na URL, chama-se “query string“)

entendido isso, vamos dar uma olhada no nosso arquivo “mostra_resultado.php”
atualmente o arquivo está vazio, por isso, quando clicamos no botão submit do nosso formulário, o resultado é…nada :)
bom, vamos abrir o arquivo “mostra_resultado.php” e vamos adicionar algumas coisinhas nele :

1
2
3
4
<?
$resultado = $_GET['valor1'] + $_GET['valor2'];
echo "o resultado eh: " . $resultado;
?>

experimentem salvar esse script e acessem novamente o formulário preenchendo com “10″ e “20″ (ou qualquer outro valor, desde que seja numérico), ao clicar no botão, o que vemos é algo parecido com isso :

o resultado eh: 30

agora, vamos explicar as linhas :)

2
$resultado = $_GET['valor1'] + $_GET['valor2'];

vamos com muita calma aqui :D
primeiramente, existe um array superglobal (eu disse isso no inicio deste post, não?) chamado GET, que pode ser acessado assim :

$_GET

acontece que, como o “$_GET” é um array, quer dizer que ele possui posições, mais ou menos assim :

variavel $_GET :
+------------------------------------------------------------------+
|    posição 0    |    posição 1    |    posição 2    |     ...    |
+------------------------------------------------------------------+

ok, não sou bom com desenhos, mas aquilo ali em cima é (ou era para ser) um desenho de como funciona a variável $_GET
acontece que, o PHP nos permite criar variáveis “sem mais nem menos”, apenas chamado-a durante a execução, o mesmo acontece com os arrays
como o array $_GET é um uma superglobal, ele pode ser acessado de qualquer lugar em qualquer script, bastando apenas “chamar” o array
bom, o que quero explicar, é que, leeeeeembra daquele nosso famoso formulário? então, lembra que os atributos “name” deles possuíam nomes que eu disse que virariam variáveis? então, eles não viram variáveis, mas sim posições do array $_GET
para simplificar, o nosso valor do campo “valor1″ pode ser “encontrado” no seguinte local

$_GET['valor1']

e o valor 2 em

$_GET['valor2']

se por um acaso tivéssemos criado um input de name “abobrinha”, o valor informado nesse input seria encontrado em

$_GET['abobrinha']

ah, lembre-se que o PHP é case-sensitive, ou seja, “IssO” difere de “ISSo” que difere de “iSSO” e assim por diante; meu conselho: utilize sempre letras minúsculas
ah, e mais importante que isso, NÃO utilize espaços e nem caracteres “especiais” (acentuação, cedilha, etc; limite-se apenas ao alfanumérico e “_” (underline))

bom, tendo isso em mente fica mais fácil de entender o que foi feito nessa linha :

2
$resultado = $_GET['valor1'] + $_GET['valor2'];

simplesmente foi efetuada a soma de dois valores (”$_GET['valor1']” e “$_GET['valor2']) e o resultado dessa equação foi armazenada na variavel “$resultado”; preciso explicar o que o sinal de mais (”+”) faz ali? :)

próxima linha:

3
echo "o resultado eh: " . $resultado;

nesta linha estamos apenas mostrando um texto e, através do ponto (”.”), concatenando a variável “$resultado” ao “echo

Pronto, espero que tenha tirado todas as dúvidas sobre o que é e como funciona o método GET em PHP :)

Lembre-se:
dúvidas? pergunte
achou um erro? mostre

Até o próximo post

VN:F [1.4.3_701]
Rating: 7.0/10 (3 votes cast)


Postagens parecidas/interessantes:

  1. 4 Responses to “O Método GET e as URL’s”

  2. By claudio on mai 8, 2009 | Reply

    Show de bola essa sua explicação amigo.
    Realmente facil de se entender.

    Quote

    VA:F [1.4.3_701]
    Rating: 0.0/5 (0 votes cast)
  3. By claudio on mai 8, 2009 | Reply

    Apropósito se eu criasse uma enquete por exemplo. e no final do script eu pegasse o valor dos resultados tipo:
    voto=1
    voto=2
    voto=3
    voto=4
    e adicionasse o comando :

    sairia a soma total de todos os votos contabilizados ?

    Quote

    VA:F [1.4.3_701]
    Rating: 0.0/5 (0 votes cast)
  4. By claudio on mai 8, 2009 | Reply

    ops naoa saiu o codigo la em cima heheh .

    $resultado = $_GET['votos=1'] + $_GET['votos=2'] + $_GET[''votos=3'] + $_GET['votos=4'];
    echo “o resultado eh: ” . $resultado;

    Quote

    VA:F [1.4.3_701]
    Rating: 0.0/5 (0 votes cast)
  5. By DragaO~ on mai 8, 2009 | Reply

    obrigado pelo elogio :)
    mais ou menos isso, mas lembre-se que, para isso, tu necessitaria armazenar os votos em algum lugar, pois o metodo GET serve apenas para passar variáveis de uma página para a outra, portanto, elas deixam de existir ao final do script ;)

    no teu caso, se tu rodasse isso, (muito provavelmente) o resultado mostrado seria sempre “1″, pois a pessoa faz um voto por vez

    Quote

    VN:F [1.4.3_701]
    Rating: 0.0/5 (0 votes cast)

Deixe um comentário

Vai postar algum código? Leia isso antes