Quando o PHP foi inicialmente criado, o objectivo era trabalhar os dados de formulários. Mais tarde foi expandido para abranger praticamente tudo o resto, mas depressa se vão aperceber de que o tratamento dos dados de formulários corresponde a uma grande parte de tornar os websites dinâmicos. De cada vez que há uma interacção com um utilizador, normalmente é através de um formulário que é uma das tags de HTML que contém outras tags representando os vários elementos que um formulário pode conter (caixas de texto, checkboxes, listas, dropdown lists, etc).

php_logo

Como não estamos num tutorial de HTML, não vou entrar nos detalhes dos vários elementos de HTML, mas vamos ver a tag form, já que é importante percebermos como funciona em conjunto com o PHP. Aqui temos um formulário simples, onde usamos um pedaço de código PHP:

Trata-se de um formulário standard. A única coisa que fazemos com o PHP é usar o array $_SERVER para obtermos o nome do ficheiro actual do script e colocá-lo no atributo action do formulário. Isto assegura-nos que quando submetermos o formulário os dados são enviados exactamente para a mesma página. Também é possível enviarmos os dados para uma página diferente, mas nestes exemplo vamos enviar os dados para a mesma página, principalmente porque é menos confuso e fácil. Especificamos que o método a ser usado quando submetemos os dados do formulário é o POST. A outra alternativa é o método GET, e apesar de existirem algumas diferenças técnicas entre estes dois métodos, devem ter em mente o facto de que os dados submetidos vão ficar em sítios diferentes dependendo do método usado. A diferença mais evidente é que o método GET nos mostra os dados submetidos no endereço da página como parâmetros, enquanto que os dados submetidos com o método POST são transparentes para o utilizador.

O exemplo acima é demasiado simples, pois nem sequer faz nada, como podem ver se o testarem. Não há magia, mas realmente o PHP é excelente no funcionamento com os formulários. Vamos expandir o exemplo anterior e fazer alguma coisa com os dados submetidos através do formulário.

 

A única magia aqui é o array $_POST. De cada vez que um formulário é submetido, este array é preenchido com todos os possíveis valores do formulário submetido. Neste caso ao submetermos o formulário, o array vai conter dois items, com as chaves “txtNome” e “btnEnviar” o os seus respectivos valores. Isto é muito bom, pois dá-nos um acesso fácil aos valores submetidos pelo utilizador. É por isso que conseguimos dizer ao utilizador qual o seu nome, escrevendo o valor do array $_POST da chave “txtNome”.

Nos formulários com o método POST, os dados têm de vir de um pedido de POST para a página. Tal como mencionado acima, os formulários com o método GET colocam os dados no endereço da página, ou seja, o endereço que vemos no browser. Isto significa que não temos necessariamente de submeter os dados para o array $_GET usando um formulário. Podemos simplesmente escrever nós mesmos os dados no endereço da página. Por exemplo, esta página em que não temos um formulário:

 

Se tentarem abrir esta página no browser não vão ver nada. No entanto, tentem abrir a página, mas com o parâmetro “nome”, desta forma:

ficheiro.php?nome=Rui Miguel

Este exemplo mostra-nos como os dados de GET podem vir directamente do utilizador. Podem tentar modificar o primeiro exemplo deste artigo, e simplesmente substituam o POST por GET, e irá também funcionar.

Estes exemplos são bastante simples, mas felizmente porque é muito fácil lidar com os dados de formulários com o PHP. No entanto existem várias situações relacionadas com a segurança que devem saber. Vamos ver isso no próximo artigo.

Artigo anterior do tutorial PHP:

Cookies em PHP

Poderá gostar também de:


Tiago Ramalho

Tiago Ramalho é um profissional de Informática interessado em Internet, Programação .NET e PHP e blogging. Nos tempos livres escreve nos interessespessoais.com sobre Jardim, Saúde, Sistemas, utilitários e outros temas relacionados com informática.

More Posts - Website - Twitter - Pinterest - Google Plus

  • 15
  •  
  •  
  •  
  •  
  •  
  •