+7

Compartilhando informações entre páginas com GET e POST

criado por Ricardo Guedes em 23/04/2003 8:27am
Por que preciso do PHP para fazer isso? Como se sabe o HTTP (protocolo) propriamente dito não armazena informações de estado, por isso se faz necessário o uso do PHP.

Vamos citar alguns casos onde eu posso compartilhar essas informações: No uso de session, usando métodos GET e POST, cookies e outras.

Como session já teve um breve comentário no artigo Validação de Usuários utilizando Sessions e MySQL do Italo Costa, que por sinal foi um dos melhores em português que já encontrei pela net, irei dar mais ênfase ao uso dos métodos POST e GET.

O método GET funciona da seguinte maneira - seus argumentos são passados em forma de string pela URI (Uniform Resource Indicator) também conhecido por muitos como URL. Certo, como sabemos a URL tem comprimento máximo de 255 caracteres então aqui está a limitação do GET! [Nota do editor] Na verdade a maioria dos browsers não tem mais esse limite de 255 caracters numa URL.

Como usar um método GET:

Como já foi dito o GET sempre acompanha a URI logo o que vocês constumam ver nos links assim deste jeito, http://www.métodoget.br/usandoget.php?ID=10, são os argumentos GET, que neste caso sempre o primeiro argumento é precedido de uma interrogação "?" e os demais de um & para separá-los. O argumento em questão é o ID e seu valor é 10;

Outro exemplo: http://www.métodoget.br/usandoget.php?ID=10&CH=Texto
Argumentos: ID e CH com valores 10 e Texto respectivamente

Você poderá utilizar o método GET nos seus link ou em formulários lembrando sempre da limitação e que estes dados serão visivéis pelos usuários pois ele sempre fica junto a URI.

Em links use:
<a href="http://www.metodoget.br/pagina.php?argumento=valor">meu link get</a>

Em formulários use:
<form action="http://www.metodoget.br/pagina.php" method="GET">
  <input name="argumento" type="text" value="valor">
  <input name="enviar" type="submit" value="enviar">
</form>

Ao executar os casos acima serão anexados ao URI as seguintes instruções respectivamente:
http://www.metodoget.br/pagina.php?argumento=valor
http://www.metodoget.br/pagina.php?argumento=valor&enviar=enviar

Os argumentos GET podem ser recuperados pelo PHP através das seguintes variáveis:

<?php
echo $HTTP_GET_VARS['nome_do_argumento'];
echo $_GET['nome_do_argumento'];
?>

Na próxima página iremos falar sobre o método POST e algumas vantagens do mesmo sobre o método GET.

Comentários:

Mostrando 1 - 10 de 26 comentários
kennedy paulo disse:
cara quero um scrip para comentar em galeria e ficar tudo em uma pagina que o internalta pode ver como os 10 utimos comentario manda resposta para meu msn se vc tem isso ai kennedipaulo@hotmail.com
30/04/2006 5:13pm (~18 anos atrás)

utilizei um listBox que postou os seguintes valores (http://servidor/sis/orcamento/TMPxitljk958x.php?lstCampoVisual=02&lstCampoVisual=03&lstCampoVisual=04&Submit=Submit)

gostaria de saber como posso recuperalas.

obrigado.
26/07/2005 5:22pm (~19 anos atrás)

Gustavo Villa disse:
Em muitas situações eu quero passar dados entre páginas (sem usar sessão) e acabo precisando usar campos hidden (o que acho inseguro). Alguém sabe se dá para enviar via POST sem ser com uso de forms?

TKS!
05/02/2004 9:44am (~21 anos atrás)

Oi Diogo,

Primeiramente, obrigado.

Bom, na época que foi feito o artigo a utilização das variáveis $_VARIÁVEL (disponível a partir do PHP 4.1.0) não era um coisa padrão ainda adotada por muitos programadores e até mesmo pelo TEAM PHP, tanto que só foi tida como padrão na versão 4.2.0. O artigo foi feito um pouco depois deste lançamento, porém postado no site PHP outros meses depois.

Para saber como iniciar o artigo fiz uma pesquisa na net para saber onde estavam os verdadeiros problemas dos iniciantes com a utilização do métodos POST e GET e então o escrevi.

Ainda hoje vejo muitos código *NOVOS* de usuários iniciantes usando $HTTP_*_VARS.

Reconheço que o artigo foi um pouco incompleto, porém os comentários referentes a ele encobriram todos os buracos, deixando-o completo.

Com relação a sua pergunta sobre o porquê de se usar as variáveis superglobais, a resposta é única SEGURANÇA.

Entendendo melhor isso acesse:
http://us4.php.net/register_globals

Quaisquer dúvidas entre em contato.

Abraços
03/09/2003 1:29am (~21 anos atrás)

Diogo Gomes disse:
Ótimo artigo, mas faltou comentar o porquê de se usar as variáveis superglobais, $_POST, etc... O famoso register_globals "off"
02/09/2003 7:11pm (~21 anos atrás)

Oi Ferdinando,

Se eu bem entendi, você possui o seguinte problema:
1. Faz a seleção dos Nomes no campo select e em seguida preenche com o endereço e telefone.
2. Em seguida tem as opções de incluir, alterar e excluir os dados.
3. Ao final de tudo isso clicando em gravar ele executaria todas as operações feitas e concluiria.

Seria isso?

Se for tenho uma pequena solução:
1. Crie uma tabela temporária.
-> id (index, primaria e autoincrementada)
-> nome
-> telefone
-> operacao

Cada clique nos botões incluir, alterar, ou excluir devem inserir estes dados na tabela temporária. Este tipo de coisa é semelhante a um sistema comprar (Submarino, Cultura... e outras)
PS: Seria interessante colocar uma listagem. (como se fosse para ver o carrinho de compras)

EX:
Nome: Ricardo
End: Av. dos Anônimos
Tel: 555-5555
-> Operação Incluir

Na tabela:
| id | Nome | Endereco | Telefone | Operacao |
1 Ricardo Av. dos Anônimos 555-5555 incluir

Quando terminar de fazer tais operações clico em gravar.

Ao clicar em gravar é feita uma leitura linha-a-linha da tabela temporária.

Primeiro selecionar a operação exclusão.
Comparar o campo nome da tabela temporária com a tabela mãe. Os dados encontrados excluir

Faça a mesma ideia para alterar e depois para incluir.

Acho que é isso...
09/07/2003 9:30pm (~21 anos atrás)

Ola, como faço para passar todo o conteudo de um campo SELECT do formulario?
Criei um FORM com os seguintes caracteristicas

Nome do cliente
Endereco
Telefone

Só que o nome do cliente esta na forma de um SELECT, carregado apartir dos dados cadastrados em um BD.

Criei 3 botoes, uma para INCLUIR, ALTERAR E EXCLUIR e um quarto para gravar..

Misturei rotinas PHP e JAVASCRIPT.

Consigo alterar os dados, excluir e incluir sem precisar sair da tela do FORM, e deixo para o final quando clicar sobre GRAVAR a devida alteração. O problema esta ai, eu preciso passar todo o conteudo existente no SELECT. Sei como acessar ele mais não sei como passar para o PHP para que o mesmo possa gravar novamente no MYSQL.
Se puder me ajudar???
09/07/2003 2:23pm (~21 anos atrás)

> Sender: André Bianchi
> Olá!
> Estava lendo o seu artigo sobre GET e POST
> e achei que talvez você pudesse resolver
> uma dúvida minha:
> Por que existe GET se POST é melhor em
> todos os sentidos?
> Até,
> André.

Caro André,

O GET existe para que você possa passar parâmetros via URI (URL) como no caso de se clicar em um link.
EX: http://www.meusite.com/index.php?palavra=1

Usando links você só consegue passar parâmetros GET.
Usando formulários consegue ambos.

É isso.

Espero ter sido claro. Em alguns caso é mais prático usar o GET.

Ricardo Guedes
03/07/2003 12:58am (~21 anos atrás)

Obrigado.
03/07/2003 12:53am (~21 anos atrás)

Muito bom o artigo, parabéns! ;-)
30/06/2003 10:17am (~21 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)