Criar e validar formulários com o PHP

Nos artigos anteriores aprendemos:

  • O que é PHP;
  • Requisitos necessários para seu funcionamento em termos de software e hardware;
  • Conhecemos sua estrutura básica;
  • Constatamos que programas em PHP voltados para web geralmente trabalham intercalando PHP e HTML ao mesmo tempo;
  • Vimos como criar o programa e hospedá-lo localmente e também em algum provedor de hospedagem;
  • Aprendemos a visualizar o resultado de um programa através do navegador;
 
Nosso objetivo é apresentar o PHP de forma bem prática e objetiva, portanto, não vamos ensinar conceitos de lógica de programação e manipulação de bancos de dados, supomos que você tenha essas noções, caso contrário, sugiro que estude um pouco mais a respeito desses conceitos antes de acompanhar os próximos artigos.
 
A maioria das pessoas que buscam aprender PHP, estão a procura de algo mais dinâmico, o que o HTML não pode oferecer. Vamos então tratar agora a respeito de formulários. Veremos então:
 
  • Como criar um formulário (Usando HTML);
  • Como enviar os dados do formulário para um programa PHP;
  • Como tratar essas informações.

 

1. Criação do formulário

 
Os formulários são criados através da linguagem HTML, a qual você já deve conhecer. Para que esses formulários se tornem úteis devemos informar ao navegador para onde vai as informações. Vamos utilizar os formulários para enviar os dados para os programas em PHP.
Fazemos isso utilizando a opção action, dentro da tag <form> do HTML.
 
Ex:
 
<form action="prog_recebe_dados.php">
.
.
itens do formulário
.
</form>
 

 

2. Enviando informações para o programa PHP

 
Já vimos então como especificar qual programa irá receber os dados. Agora precisamos entender como os dados são passados ao programa.
 
Existem dois métodos de passagem de parâmetros: GET e POST.
 
O tipo de método utilizado é informado na opção method da tag <form> do HTML. Ex:
 
<form action="prog_recebe_dados.php" method="GET">
 
Entendendo cada um desses métodos:
 
GET -  É o método padrão, ou seja, se na criação do formulário se nada for especificado, automaticamente será utilizado este método para envio dos dados.
 
Seu funcionamento ocorre da seguinte forma, dado o preenchimento do formulário e após clicarmos no botão Enviar, os campos do formulário serão passados como parâmetro após o endereço de destino. Ex:
 
www.concatenar.com.br/prog_recebe_dados.php?nome=maria&cidade=saopaulo     e assim por diante....
 
Existem algumas desvantagens com esse método, primeiro seria o limite de caracteres que podem ser enviados, o que gira em torno de 2000, outra desvantagem é que o usuário visualiza através da barra de endereço todos os parâmetros.
 
A vantagem desse método seria a passagem de parâmetros por links, por exemplo em um comércio virtual poderia se utilizar desse método para se obter um link específico para um produto, uma categoria.
 
POST - Seus dados são enviados por meio do corpo da mensagem encaminhada ao servidor, não alterando assim o endereço, mostrando apenas:
 
www.concatenar.com.br/prog_recebe_dados.php
 
Uma das vantagens é que não existe limitação de tamanho dados a serem enviados.
Também através desse método podemos enviar outros tipos de dados, como imagens, para isso basta utilizar o valor file na opção type da tag <input> do HTML.
 

 

3. Como tratar as informações

 
 
Podemos tratar as informações de 2 formas:
 
- Como se fossem variáveis, colocando o simbolo $ seguido do nome do campo definido no fomulário. PS: Isso só funciona se a opção REGISTER_GLOBALS estiver habilitada no arquivo php.ini.
 
2ª - Utilizar arrays superglobais do PHP. Esses arrays são $_GET e $_POST. Ex:
 
$_GET["nome"] ou $_POST["nome"]
 
É recomendado por segurança utilizarmos a segunda opção.
 

 
Para colocarmos em prática essas informações citadas acima vamos efetuar um exercício, nele criamos um formulário de cadastro de usuários de um site qualquer e verificamos o se o preenchimento dos dados estão corretos.
 
 
Crie o código em HTML como segue abaixo e depois o salve como cadastro.html na pasta local do wampserver www ou então geralmente na public_HTML do seu provedor de hospedagem.
 
 
Visualizando o formulário no navegador ele deverá ficar como segue na imagem a seguir:
 
 
Agora basta na mesma pasta em que você salvou o formulário html, criar o programa em PHP que irá verificar se o preenchimento está correto.
 
Salve o código que será exibido na imagem a seguir com o nome verifica.php
 
 
Pronto, feito isso você já pode testar, caso acesse o formulário e deixe algum campo em branco, visualizará mensagens de erro.
 
É claro que esse exemplo é simples, você pode incrementar muito mais as opções de validação dos dados.
 
 

4. Entendendo o programa verifica.php

 
 
Dentro deste programa foram executadas algumas funções que provavelmente sejam desconhecidas. Veremos então uma rápida explicação sobre cada uma delas:
 
Função         Descrição
 
empty           Verifica se determinada string está vazia (nula).
 
strlen            Retorna o número de caracteres de uma string.
 
strstr             Acha a primeira ocorrência de uma string. Se não encontrar retorna falso (FALSE).
 
 
Agora entendendo cada umas das funções citadas acima vamos procurar entender o funcionamento do programa.
 
Na primeira parte do programa as variáveis recebem o conteúdo do formulário, através da array superglobal $_POST.
 
É definida a variável $erro a qual irá verificar ao final de todos os testes se houve ou não algum erro no preenchimento do formulário, por isso ela recebe o valor 0, pois caso no final de todas as verificações seu valor permaneça o mesmo, é informado que todos os dados foram preenchidos corretamente.
 
Na segunda parte é realizado testes utilizando o comando condicional IF, que serve para avaliar uma expressão e indicar instruções:
 
1º - Verificamos se o campo nome não está vazio e também se o nome possui o caractere espaço(se não houver , indica que não foi digitado o nome completo).
 
2º - Testamos se o email tem no mínimo 8 caracteres e possui o simbolo @.
 
3º - Constatamos se realmente o campo cidade não está em branco e em seguida se o campo estado não possui dois caracteres.
 
4º - Verificamos se o campo comentários não está vazio.
 
5º - E por último se a variável $erro permanece com o valor igual á 0, o que significa que no preenchimento não ocorreram erros, e nos retorna um resultado.
 

 
É claro que esse programa não faz nada com os dados, apenas confirma se no preenchimento das informações está correto.
 
Como nos próximos artigos, vamos entender como enviar esses dados a um banco de dados, não poderíamos deixar de entender como validar as informações antes de gravá-las, imagine se fosse gravado todos os dados que um formulário recebe sem nenhum critério de verificação, seu banco de dados ficaria cheio de erros.
 
Então até o próximo artigo.