Compartilhando informações entre páginas com GET e POST
As vantagens do POST em relação ao GET:
- É mais seguro que o GET porque as informações passadas pelos usuários nunca é visivel na URI.
- Limite muito maior, uns 2 kbytes de informação, podem ser passadas.
Como usar o POST:
O POST é mais utilizado para tratamento de formulários. Usa-se de forma muito semelhante ao GET em formulários, por exemplo:
Repare que agora o atributo "method" do formulário é igual a "POST". Se eu digitar algo na caixa e apertar o botão "enviar" a minha URI continuará da mesma forma pois o POST não trabalha com a URI. Certo, mais onde foram parar os dados?
Os argumentos GET podem ser recuperados pelo PHP através das seguintes variáveis:
A dica mais importante: Nunca utilize o metodo GET para formulários de login, ou para quaisquer dados sigilosos, pois os mesmos serão visíveis pela URL.
Exemplos completos: arquivo-> pagina.php
Usando POST:
Usando GET:
ou:
- É mais seguro que o GET porque as informações passadas pelos usuários nunca é visivel na URI.
- Limite muito maior, uns 2 kbytes de informação, podem ser passadas.
Como usar o POST:
O POST é mais utilizado para tratamento de formulários. Usa-se de forma muito semelhante ao GET em formulários, por exemplo:
<form action="http://www.metodoget.br/pagina.php" method="POST"> <input name="argumento" type="text" value="valor"> <input name="enviar" type="submit" value="enviar"> </form>
Repare que agora o atributo "method" do formulário é igual a "POST". Se eu digitar algo na caixa e apertar o botão "enviar" a minha URI continuará da mesma forma pois o POST não trabalha com a URI. Certo, mais onde foram parar os dados?
Os argumentos GET podem ser recuperados pelo PHP através das seguintes variáveis:
<?php echo $HTTP_POST_VARS['nome_do_argumento']; echo $_POST['nome_do_argumento']; ?>
A dica mais importante: Nunca utilize o metodo GET para formulários de login, ou para quaisquer dados sigilosos, pois os mesmos serão visíveis pela URL.
Exemplos completos: arquivo-> pagina.php
Usando POST:
<html> <body> <?php if (isset($HTTP_POST_VARS['enviar'])) { $texto = $HTTP_POST_VARS['argumento']; // será impresso o que for digitado no campo echo($texto); } else { ?> <form action="http://www.metodoget.br/pagina.php" method="POST"> <input name="argumento" type="text"> <input name="enviar" type="submit" value="enviar"> </form> <?php } ?> </body> </html>
Usando GET:
<html> <body> <?php if (isset($HTTP_GET_VARS['enviar'])) { $texto = $HTTP_GET_VARS['argumento']; // será impresso o que for digitado no campo echo($texto); } else { ?> <form action="http://www.metodoget.br/pagina.php" method="GET"> <input name="argumento" type="text"> <input name="enviar" type="submit" value="enviar"> </form> <?php } ?> </body> </html>
ou:
<html> <body> <?php if (isset($HTTP_GET_VARS['argumento'])) { $texto = $HTTP_GET_VARS['argumento']; // será impresso quando o link for clicado echo("Este é mais um ".$texto." do que o GET é capaz"); } else { ?> <a href="http://www.metodoget.br/pagina.php?argumento=exemplo">Meu Link</a> <?php } ?> </body> </html>
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)