Compartilhando informações entre páginas com GET e POST
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:
Em formulários use:
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:
Na próxima página iremos falar sobre o método POST e algumas vantagens do mesmo sobre o método GET.
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.
Páginas:
1
2
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.
gostaria de saber como posso recuperalas.
obrigado.
26/07/2005 5:22pm
(~19 anos atrás)
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!
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
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)
Ó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...
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???
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
> 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)