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


Autor/fonte: Ricardo Guedes
E-mail/Url: http://www.phpbrasil.com/articles/article.php/id/324
Tags: [ get ] [ post ]



Digg del.icio.us

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:

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 da seguinte variável:

<?php
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.

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:

<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 $_POST['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($_POST['enviar'])) {
    $texto = $_POST['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($_GET['enviar'])) {
    $texto = $_GET['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($_GET['argumento'])) {
    $texto = $_GET['argumento'];
    // será impresso quando o link for clicado
    echo("Este é mais um ".$texto." do que o GET é capaz");
} else {
?>
http://www.metodoget.br/pagina.php?argumento=exemplo">Meu Link</a>
<?php
}
?>
</body>
</html>




Enviado por xKuRt em 16/01/2008 às 11:08


Itens relacionados

Classe de conexão MySQL e PostgreSQL
Mostrar todas as variáveis e valores da variável global $_POST
Classe de conexão para banco de dados PostgreSQL
Retornando a quantidade de memória alocada para PHP com a função memory_get_usage()
Salvar em um banco de dados PostgreSQL conteúdo de arquivo de texto
Lendo o conteúdo de um arquivo TXT
Calculando juros compostos e montante usando PHP
Ficheiros
Função ini_get
Quais as diferenças entre fgetc(), fread() e fgets()?

Listar todos itens relacionados

Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Quinta, 23 de Outubro de 2014




Leitura recomendada

O Codificador Limpo

Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Aprendendo JavaScript


Capa do livro
Use a Cabeça! - Desenvolvendo para iPhone


Capa do livro
Redes de Computadores para Leigos





Hostnet

IMD