Vous êtes sur la page 1sur 4

Universidade Federal de Santa Maria

Colgio Agrcola de Frederico Westphalen


Ncleo de Educao a Distncia Curso Tcnico em Informtica para Internet
Introduo Programao para Internet (Curso Tcnico em Informtica para Internet) Prof. Bruno B. Boniati

Aula 2 - Mtodos de Envio de Dados: POST x GET

Em nossa aula anterior voc comeou a entender que as aplicaes e tecnologias web podem ser
basicamente de dois tipos: client side (quando so executadas no navegador do usurio) ou server side
(quando so executadas no servidor). Voc tambm j deve estar sabendo que o objetivo dessa nossa
disciplina de introduzi-lo programao no lado do servidor, ou seja server side. Pois bem, se voc
realizou as atividades propostas at aqui deve ter percebido que para testar um programa do tipo server
side, feito em PHP, por exemplo, necessrio que tenhamos um servidor instalado em nosso computador
ou ento que nosso cdigo seja transferido para um servidor web.
Ento fica uma pergunta: como que os usurios interagem com uma aplicao que est sendo
executada em um servidor? Como, por exemplo, que a aplicao poderia perguntar ao usurio qual o ano
que ele nasceu para calcular a idade dele? A resposta para essas perguntas a passagem de
parmetros. Ou seja... uma aplicao do lado do servidor ela no tem uma tela onde o usurio digita os
dados. Ela apenas recebe requisies parmetros e produz uma sada que interpretada pelo navegador.
Vamos tentar fazer uma pequena aplicao em PHP para calcular a mdia de duas notas, ok? Para
isso o usurio vai ter que digitar 2 notas, as notas devero ser somadas e depois divididas por 2, correto?
Pois bem, o problema j comea na primeira frase: o usurio vai ter que digitar duas notas. No temos
como fazer isso em uma aplicao servidora, pois no estamos sentados na frente do computador servidor
para digitar em seu teclado as notas. Podemos estar a quilmetros de distncia do servidor e para tanto
vamos precisar lhe enviar as notas, ao invs de digit-las diretamente na aplicao. Mas como isso
feito?
Existem duas formas de se enviar informaes para uma aplicao servidora: utilizando-se de um
formulrio HTML ou ento digitando diretamente na URL. Vamos exemplificar as duas formas, comeando
pela primeira. Observe no cdigo abaixo um formulrio HTML que contm dois campos de texto (input
type=text): nota1 e nota2 e um boto de submisso (input type=submit). O resultado do cdigo
pode ser visto ao lado.



Universidade Federal de Santa Maria
Colgio Agrcola de Frederico Westphalen
Ncleo de Educao a Distncia Curso Tcnico em Informtica para Internet
Introduo Programao para Internet (Curso Tcnico em Informtica para Internet) Prof. Bruno B. Boniati

O que vai acontecer quando o usurio clicar no boto Enviar? Neste caso os dados (nota1 e
nota2) sero empacotados e enviados para uma aplicao chamada calcular.php (que o action do
formulrio). E agora o que acontece quando trocamos o mtodo (method) de POST para GET. O browser
vai fazer a mesma coisa, porm ao invs de empacotar os dados, ele vai envi-los atravs da URL. Faa
um teste e veja voc mesmo:

http://localhost:8080/teste/calcular.php?nota1=75&nota2=63&Enviar=Enviar

Voc consegue identificar na URL as informaes que estavam na pgina HTML?

Vamos decompor a URL:

A primeira parte (http://localhost:8080/teste/calcular.php) o ACTION do formulrio, concorda? o
nome do programa que vai ser chamado quando o boto de submisso for chamado. Depois h um ponto
de interrogao (?), voc consegue identifica-lo? Este ponto de interrogao utilizado para separar a
aplicao (action) dos seus parmetros. Em seguida podemos visualizar os parmetros (inputs) e seus
valores, veja: nota1=75&nota2=63&Enviar=Enviar (veja que o smbolo de & utilizado para separ-los):
nota1=75
nota2=63
Enviar=Enviar

Ento resumindo: quando usamos o mtodo de envio POST os parmetros so enviados de forma
escondida (empacotada) e quando utilizamos o mtodo GET os dados so enviados junto com a URL.
Pegou a ideia?

Estes dias fiz uma compra pela internet e a empresa me enviou um link por e-mail para mim
rastrear o meu pedido, veja o que dizia o link:

websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&P_TIPO=001&P_COD_UNI=JL793267904BR

Eu pergunto: neste caso os Correios esto usando POST ou GET? Se voc respondeu GET
acertou, pois os parmetros esto sendo passados pela URL. E quais so os parmetros que esto sendo
passados? A resposta a essa pergunta : P_LINGUA (001), P_TIPO (001) e P_COD_UNI
(JL793267904BR).


Universidade Federal de Santa Maria
Colgio Agrcola de Frederico Westphalen
Ncleo de Educao a Distncia Curso Tcnico em Informtica para Internet
Introduo Programao para Internet (Curso Tcnico em Informtica para Internet) Prof. Bruno B. Boniati

Mas como que uma aplicao PHP recebe os dados enviados de uma pgina HTML?

bastante simples, toda aplicao PHP contm duas listas chamadas de $_GET e $_POST (os
nomes so meio esquisitos, mas isso mesmo). Vamos fazer abaixo uma aplicao PHP que recebe as
notas (nota1 e nota2), calcula e mostra a mdia. No cdigo da esquerda a aplicao foi feita esperando os
parmetros pelo mtodo POST e no cdigo da direita os parmetros so pegos pelo mtodo GET.

POST GET


Parece um jogo de 7 erros, n? Mas na verdade s h 2 linhas diferentes (trocando $_POST por $_GET).

Acabamos no conversando muito sobre o PHP n? Mas isso assunto para nossas prximas
aulas. Um detalhe importante que voc deve observar, caso queira se aventurar pelo PHP que todas as
variveis em PHP comeam com o smbolo de $ (cifro) e outro detalhe que o cdigo PHP pode ser
colocado dentro do cdigo HTML. Neste caso voc deve utilizar as tags: <?php e ?> para indicar ao
servidor web que este contedo deve ser processado pelo mesmo e no simplesmente retornado ao
usurio. Mas o PHP assunto da nossa prxima semana, por enquanto concentre-se em entender bem o
que passar um parmetro por GET e por POST.

Para avaliar o seu aprendizado nessa semana, preparamos trs atividades: na primeira delas voc
vai precisar construir um formulrio HTML para enviar a sua matricula para uma aplicao web que vai te
fazer uma charada. A charada nica para cada aluno e queremos saber se voc consegue descobrir
qual a sua. Neste caso voc vai utilizar o mtodo POST (se usar o mtodo GET no vai funcionar). A
segunda tarefa consiste em utilizar o mtodo GET para adivinhar um nmero que sorteamos para voc. O
nmero vai de 1 at 1000 e voc pode utilizar tantas tentativas quanto precisar. Ao final nos diga qual foi
nmero sorteado e nos envie a URL que voc utilizou para descobri-lo.
Universidade Federal de Santa Maria
Colgio Agrcola de Frederico Westphalen
Ncleo de Educao a Distncia Curso Tcnico em Informtica para Internet
Introduo Programao para Internet (Curso Tcnico em Informtica para Internet) Prof. Bruno B. Boniati

Por fim, a ltima tarefa uma reflexo sobre as duas primeiras: afinal, o que voc entendeu sobre
passagem de parmetros e qual a diferena de GET e POST?

Nas prximas aulas entraremos em detalhes sobre o funcionamento da linguagem PHP e para
fazer o mais simples dos programas vamos precisar passar parmetros. muito importante que voc
esteja entendendo estes conceitos e sua utilizao na prtica.
Para essa semana separamos um vdeo produzido pelo canal Discovery Chanel que fala sobre a
histria da internet. O primeiro episdio fala sobre a Guerra dos Browsers, se possvel, tire um tempo
para assisti-lo. Se tiver dificuldades ou algo no ficou claro o suficiente, no deixe de fazer contato,
teremos o maior prazer em ajud-lo. Desejamos a voc uma tima semana.

Abraos,

Bruno e Willian

Vous aimerez peut-être aussi