Formulários HTML e PHP

Para que os formulários HTML possam realmente ter uma utilidade; para que as informações coletadas no formulários possam ser trabalhadas, é necessário utilizar de algum artifício, ou melhor, de alguma tecnologia para coletá-los e tratá-los. 

Esta tecnologia pode variar de acordo com a necessidade do desenvolvedor, podendo esta ser o uso da linguagem de script JavaScript ou uma mais robusta, como por exemplo o ASP(Java Server Pages), um aplicativo CGI, dentre outras. 

A necessidade de se apoiar em outra tecnologia, vem do princípio de solicitação de páginas hospedadas em um servidor. Se o cliente faz uma requisição a um servidor, este irá procurar o arquivo solicitado e retornará o mesmo, se existir, para o browser cliente. A "única" função do browser é interpretar e processar este código de retorno. 

Quando se envia um formulário com dados de um cadastro, por exemplo, estes serão encaminhados ao servidor, o qual não irá entender o mesmo. Para que estas informações possam ser manipuladas no lado do servidor, este deve possuir um módulo adicional para efetuar a interpretação. 

E é neste ponto que o PHP entra em cena. 

Revisão dos conceitos de formulários

A tag FORM

  • Para que se possa enviar informações a um servidor web, deve-se utilizar os formulários HTML.
  • As informações coletadas nestes formulários serão empacotadas e poderão ser enviadas de duas maneiras.
  • quando as informações/dados chegarem ao servidor, este irá extraí-las e irá encaminha-las ao mecanismo de criação de scripts (em nosso caso, o PHP).
  • os itens de controle, como campos de texto, caixas de seleção, estarão dispostos entre as tags FORM.
  • a tag FORM possui váriso atributos, mas iremos abordar somente duas: 
    • ACTION - informa ao servidor a que página ele deve se dirigir.
    <FORM ACTION= "cadastro.php">
    controles...
    </FORM>
    • METHOD - realiza o controle de envio das informações que irão para o servidor; pode ser realizado de duas maneiras, utilizando o método GET e o método POST.
     
    <FORM ACTION= "cadastro.php" METHOD=GET>
    controles...
    </FORM>
    <FORM ACTION= "cadastro.php" METHOD=POST>
    controles...
    </FORM>
    • O método GET informa ao navegador para acrescentar ao URL os valores que foram inseridos a priori no formulário. A formatação utilizada pelo navegador é a de adicionar um ponto de interrogação ao final da URL e após, serão inseridas as informações preenchidas no formulário. Estas, no formato nome=conteudo.
    http://www.mneumônico.com.br/cadastro.php?nome=Mauricio&sobrenome=de%20Paula
    • Há um conjunto de caracteres que não podem aparecer em uma URL, logo, estes precisam sofrer uma codificação. Esta codificação é feita automaticamente pelo navegador. Caracteres mais comuns:
     
    caracter
    codificação
    tab
    %09
    espaço
    %20
    !
    %21
    "
    %22
    #
    %23
    %
    %25
    &
    %26
    • Para obter uma maior "segurança" costuma-se utilizar o método POST. As informações através deste método são encapsuladas ao corpo da requisição HTTP. O método POST não permite usar bookmarks, ao contrário de GET.
Itens de controle
  • campos de texto 

  • <input type="text" name="caixa1">
     
  • áreas de texto

  • <textarea name="mensagem" rows="35" cols="60">

    Deixe aqui a sua mensagem...

</textarea>
  • caixas de seleção 

  • <input type="checkbox" name="escolha" checked>
     
  • botões de rádio 

  • <input type="radio" name="legume" value="abóbora">
     
  • caixas de listagem (listbox

  • <select name="estado">
     
    <option>RS</option>
    <option>SC</option>
    <option>PR</option>
    <option>SP</option>
    </select>
 
Há a possibilidade de seleção de mais de um item, conforme o exemplo abaixo:

<select name="area_interesse[]" multiple>

<option>IA</option>
<option>Redes</option>
<option>SO </option>
<option>Arquitetura</option>
</select>

A primeira linha "diz" ao PHP para tratar os itens da caixa de seleção como elementos de uma matriz area_interesse. Para se apresentar o múltiplo resultado, basta utilizar um echo para cada item, utilizando um índice desta matriz para a representação, como por exemplo:

<?php

echo "$area_interesse[0]";
echo "$area_interesse[1]";
echo "$area_interesse[2]";
echo "$area_interesse[3]";

?>

  • campos de formulário ocultos 

  • <input type="hidden" name="flag" value="mensagem oculta">
     
  • senhas 

  • <input type="password" name="senha">
     
  • botões 

  • <input type="submit" name="bt_enviar" value="Enviar dados">
    <input type="reset" name="bt_limpar" value="Limpar campos">