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

Variáveis $_GET e $_POST
Lendo o conteúdo de um arquivo TXT
Função ini_get
Mostrar todas as variáveis e valores da variável global $_POST
Classe de conexão para banco de dados PostgreSQL
Classe de conexão MySQL e PostgreSQL
Função getimagesize
Ficheiros
Salvar em um banco de dados PostgreSQL conteúdo de arquivo de texto
Armazenando arquivos binários no PostgreSQL com PHP

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:




  

Sexta, 25 de Julho de 2014




Leitura recomendada

Windows 7 Sem Limites

Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Guia Essencial do HTML5, O - Usando Jogos para Aprender HTML5 e JavaScript


Capa do livro
Crimes Cibernéticos: Ameaças e Procedimentos de Investigação


Capa do livro
Neuromancer 25





Hostnet

IMD