Campo sem validação == Caos

Sabe o que acontece quando você deixa o usuário livre para digitar o que quiser dentro de um campo inocente, como por exemplo, o nome da cidade onde mora?

j
J
Jioinville
Jionville
JIONVILLE
jJoinville
Jlle
JLLE
Joiinville
JOIINVILLE
JOIMVILLE
Joinille
JOINILLE
Joiniville
JOINIVILLE
JOINIVLLE
JOINVIILE
JOINVIILLE
joinvile
Joinvile
JOINVILE
JOINVILEE
Joinvilkle
joinville,
Joinville
Joinvill.e
Joinville.
Joinville'
JOINVILLE
JOI NVILLE
JOINVILLE`
JOINVILLE.
JOINVILLE[
JOINVILLE]
JOINVILLE**
Joinvilles
Joinvillle
JOINVILLLE
Joinvillr
Joinvlle
JOINVLLE
JOINVVILLE
Joiville
JOIVILLE
JOIVVILLE
Joniville
JONIVILLE
Jonville
JONVILLE
Jooinville
JOOINVILLE
JOONVILLE

Estas foram as 52 variações para o nome “Joinville”, que encontrei num banco de dados de um sistema usado por pessoas de… Joinville.

É cômico e triste constatar que a pessoa não sabe escrever o nome da própria cidade onde mora, ou simplesmente não se preocupa em conferir o que acabou de digitar.

Por isso, amigo programador, evite usar campos de texto livre, sem validação, em seus sistemas. Nunca subestime a “criatividade” dos seus usuários, pois eles irão te surpreender e te frustrar, e seu banco de dados ficará uma bagunça.

O que você pode fazer é limitar a entrada dos dados. Um exemplo é usar menus em vez de campos textuais, para que o usuário escolha um item pré-determinado em vez de digitar livremente. Ou então atrelar o campo de texto a um conjunto de dados conhecidos, mostrando as alternativas válidas conforme ele vai digitando (autocomplete).

Mas atenção: mesmo com estas restrições na entrada, ainda é recomendado que você faça uma validação antes de gravar os dados no banco.

  • E se o usuário desligou o JavaScript no navegador?
  • E se o usuário usou a ferramenta “Inspecionar elemento” para alterar o código HTML do site?
  • E se outro programa (como o curl) for usado para fazer o POST do formulário?
  • E se os dados estão vindo de outro sistema, via webservice?

Criar um campo de texto é fácil. Mas garantir que ele seja confiável, dá trabalho.

Dica: No site do IBGE tem pra baixar uma planilha com a lista completa das cidades e estados brasileiros, que é atualizada anualmente. Importe-a para o seu banco e use estes dados para montar os menus, autocompletes e validações. Pelo menos para os clássicos campos Cidade e UF, não tem mais desculpa, hein? :)

— EOF —

Gostou desse texto? Aqui tem mais.